日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

【学习记录】卷积神经网络常用概念

發布時間:2023/12/14 卷积神经网络 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习记录】卷积神经网络常用概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、卷積與池化

卷積本身來自于信號處理領域,是一項廣泛應用于信號處理的技術,在數學上指的是函數經過反轉和平移再次求乘積的積分的過程。

在傳統的圖像處理中,卷積核一般是人為設定,使用不同的卷積核可以提取出不同的特征,但是卷積核本身是固定的,并沒有改進的空間,如果要改進,那么只能是依靠人的數學計算,設計出能夠提取出特定特征的卷積核,典型的卷積核有提取邊緣的sobel算子等。

而在深度學習領域,卷積核的參數變成了可以修改的,也就是作為待優化參數的一部分,納入到正向傳播反向優化之中。最簡單的情況是單通道卷積,輸入是一個單通道二維圖像,使用卷積核與對應位置計算并拼接,我們將一次卷積得到的輸出稱為特征圖(feature map)。

從圖示中可以看出,卷積帶來的一個副作用就是輸入維度在卷積之后變小了,這個問題主要是由于在卷積計算過程中,邊緣的部分不能完全參與計算,如果不加以任何修正,那么一方面多次卷積之后特征圖的規模會越來越小,另一方面,這種卷積計算對于邊緣的像素是不公平的,明顯中間像素參與計算的次數要多于邊緣像素,從而會導致邊緣信息丟失的問題。

針對這一點,我們使用對邊緣補充0的方法來修正,也就是padding,這樣子能夠讓邊緣的像素也能公平地進行卷積運算,一般來說當padding取p時,輸入的維度就會變成(W+2P,H+2P),值得一提的是,這里補充的0,主要還是為了讓邊緣像素也能夠作為中心和卷積核參與一次運算,所以維度變化的時候會加2P。為了讓卷積之后的特征圖輸入的長和寬保持一致,對于長寬為k的卷積核,一般取padding為k/2向下取整,這樣讓輸入的形狀與輸出的長寬保持一致。

輸出的特征圖有時候還需要考慮移動的方法,也就是步長stride,它表示每個幾個位置計算一次。

在單通道卷積的基礎上,又延伸出了多通道卷積,二者本身是一樣的,只不過卷積核和輸入都需要考慮一個深度問題,輸入層和卷積核必須要有相同的深度,而在移動的過程中依然是保持兩個方向的移動,得到的結果最后被壓縮到一維,依然符合層數只與卷積核數量有關的規律。

可以看到,這個過程雖然是多通道的,但是其本質還是2D的卷積過程,卷積核的每一層和輸入的每一層對應位置做運算,之后多層的計算結果累加在一起成為一層的輸出。但是對于整體而言,依然是一個卷積核產生了一層的輸出,如果要想對多通道卷積的輸出的層數做改變,我們依然需要增加卷積核的數量。

對于一個H×W×C維度的輸入,卷積核大小為k,填充值padding為p,步長為s,我們計輸出為H’×W’×C’,那么二者的計算關系滿足:

卷積一般與池化一起出現,池化的主要目的是降維,從而減小計算量,并且在訓練初期提供一些平移不變性,根據輸出的類型,池化操作一般有兩類:平均池化和最大池化。通過池化,滑窗內的元素能夠聚和為一個元素,從而起到下采樣的作用。
對于多通道的輸入,池化在每一個通道內獨立進行,彼此互不干涉,所以不會改變輸入的通道數,只會改變每一個通道內長寬的值。

二、卷積神經網絡

卷積神經網絡是將卷積層與池化層堆疊得到的,它的結構我們可以分為兩部分:一部分是由卷積核池化層交替堆疊得到的骨干網絡,這部分主要是負責從輸入中提取豐富的特征;另一部分是全連接層,用于將卷積得到的特征圖展開,全連接層將特征圖的空間信息完全丟棄,聚合全局信息將其映射到輸出空間。
如果我們丟棄骨干網絡,也就是退化為只有全連接層的多層感知機,那么我們必須將整個圖像在一開始就完全展開為一個一維向量,這會導致計算量特別大,而且有過擬合的風險,另外由于一開始就將圖像特征的空間信息丟棄,其效果也會大打折扣。

卷積神經網絡主要有三個特點:局部連接、權值共享以及層次化表達。

局部連接

圖像具有局部相關性,而卷積運算中圖像也是在不斷分部分和卷積核做運算,所以卷積的過程體現了局部計算的特點,輸入和輸出具有局部連接。我們經常用感受野來形容特征圖上的一個輸出和多大的區域的輸入有關,我們可以通過卷積核反向擴大來直觀地理解感受野,感受野一般是反向得到輸入之后行或者列的大小。

權值共享

由于在卷積運算中,不同區域使用了同樣的卷積核,一方面減少了參數,另一方面還實現了平移不變性。平移不變性是指不管輸入向什么方向平移,總可以得到相同的輸出。按道理池化也可以實現一定的平移不變性,因為一個區域內的值最后變為了一個值,在這個區域內的平移是不會受到影響的。

層次化表達

卷積神經網絡中,層是一個重要的概念,層數越多,提取到的特征就越豐富越抽象,每一層都是對前面一層的變換,越高層的特征就越抽象。一般來說,低層次的特征會更加通用,高層次的特征則更加具體更加抽象。對于人來說,最直觀的感受就是低層次提取出來的特征還可能能看懂,但是高層次的特征人可能就理解不了了。

三、特殊的卷積形式

1×1卷積

這個卷積形式在子豪兄講解的CS231N中有過很好的比喻,就是用一個錐子,將特征圖的不同通道之間插起來。顧名思義該卷積的卷積核大小為1×1,具體操作起來與之前的卷積操作沒有什么區別。
這種特殊的卷積形式主要是有兩個功能,一方面采用這種卷積方法可以起到信息聚合的作用,同時還可以增加非線性,因為1×1卷積可以看作是對所有通道的信息進行線性加權,同時在卷積之后還可以使用非線性激活,可以一定程度上增加模型的表達能力;另一方面1×1卷積還可以用于通道數的變換,可以增加或者減少輸出特征圖的通道數。

轉置卷積

之前看過的一篇論文里提到過轉置卷積,那篇論文提到轉置卷積本身是一種上采樣的方法,但是其計算開銷很大,所以在那篇論文里將上采樣的方法修改為像素拖拽。

轉置卷積是語義分割任務中必不可少的部分,一般的語義分割模型都分為兩部分:編碼器和解碼器,前者將原始的圖像輸入映射到低維空間,這個過程需要編碼目標的特征信息和位置信息,以正確地預測每個像素的類別;后者則將編碼的低維特征映射回像素空間,從而對每個像素的具體類別做判斷。可以認為編碼器和解碼器是上采樣和下采樣的一種形式。解碼器的部分由于需要將低維空間映射回高維空間,所以使用前面提到過的最基礎的卷積操作是不可行的,所以就換用可以增加寬度的轉置卷積。

轉置卷積相當于在輸入外補了幾圈0,之后再進行標準卷積,這種卷積方法也可以設置填充和步長,但是這里步長的意義發生了改變,步長這時表示卷積元素之間插入0的個數,如果步長為s,那么在卷積元素之間插入s-1個0。

對于轉置卷積中輸入維度、卷積核大小、填充和步長與輸出維度的關系,可以用下式來表示:

空洞卷積

空洞卷積在之前看的論文中也出現過,當時的理解是在特征圖的卷積的區域內插空,這本書上則對空洞卷積做了準確的介紹。空洞卷積是在卷積核元素之間插入空格來擴張卷積核,擴張的程度本身是一個超參數,叫做空洞率r,指的是在卷積核中間插入r-1個0,也就是說原本大小為k的卷積核,在使用空洞卷積之后,大小會變為k+(k-1)(r-1),卷積核的擴大必然也會帶來感受野的擴大,所以空洞卷積是一種不增加參數量而且可以快速擴大感受野的方法。

當堆疊多層空洞卷積組成的層時,感受野會快速擴大,從而獲得更多的局部信息。

分組卷積

分組卷積個人感覺本身是神經網絡發展初期算力不足的輔助方法,這種卷積方法通過將輸入沿著深度方向劃分為g組,將一個輸入拆分為多個輸入,同時將卷積核也按照同樣的劃分方法拆分為多個組,每個組進行卷積,最后再拼起來,得到的就是一個完整的卷積結果。從整體結果來看,相當于進行了g個并行的卷積過程,如果計算參數的話可以看出參數量比標準卷積減少了g倍,可以說是通過拆分的方法減小參數量。

深度可分離卷積

深度可分離卷積相比于標準卷積,減少了參數量,而且降低了計算量、提高了運算效率。這種卷積方法由兩部分組成,一部分是沿著深度的逐層卷積,另一部分是1×1卷積。前者本身相當于分組卷積的一種特殊情況,當上圖中g=C1=C2的時候,分組卷積相當于變成了為每一個輸入通道設定了一個卷積核分別進行卷積,但是這種卷積只利用了單個輸入通道,相當于只利用了空間位置上的信息,而沒有使用通道間的信息,所以在后面又補充了一個1×1卷積來增加通道間的信息。

3D卷積

這個是書上本身沒有提到的內容,在看別的卷積的時候突然想起來的,在網上一查確實有這種卷積方法。前面提到的卷積,都是2d的方法,也就是拿一個二維的片片在圖像上面掃,那么按道理當卷積核變為3d的時候,就會出現3d卷積。

3d卷積采用同樣的移動方法,卷積核在深度、高度、寬度三個方向上自由移動,兩個立方體之間的每一層進行卷積然后再在深度上逐元素相加,得到一個數據,形成一個平面后,卷積核向深度方向移動,繼續卷積,于是就輸出了一個3D的Feature map。也就是說,卷積核作為一個立體方塊和輸入中的一個立體方塊中對應位置元素計算后求和,變成特征圖輸出中的一個元素,不斷移動然后計算,最后得到的就是一個立體的特征圖。
在這種情況下,卷積核的深度就不一定要等于輸入的深度,只需要滿足卷積核深度小于等于輸入深度即可,但依然滿足卷積核數目等于特征圖的數目。區別于多通道卷積的地方在于,3d卷積輸出的特征圖是一個立體的帶有深度的特征圖,而多通道卷積由于卷積核的深度和輸入的深度相等,所以只會產生一維的特征圖,從這個角度來說,多通道卷積屬于3d卷積的一種特殊情況。

多尺度卷積

多尺度卷積層就是用不同大小的卷積核對某一時刻所得到的特征圖進行卷積操作,得到新的大小不同的特征圖,之后針對不同大小的特征圖上采樣到輸入特征圖的大小。也就是說,多尺度卷積層不會改變原有特征圖的大小,只是通過不同卷積核的卷積操作,豐富了圖像的特征,從全局的視角對圖像中的感興趣的特征信息進行編碼解碼,進而提高圖像的分割性能。

多尺度卷積在使用CNN進行特征提取之后,對特征圖使用不同程度的池化,從而得到了不同級別的池化后的特征圖,隨后再在不同的特征圖上各自進行特征學習,上采樣后再串聯起來,最后卷積處理。也就是說通過大小不同的卷積核,提取到不同尺度下的感受野信息,再對不同尺度的特征進行學習,達到更好的效果,和特征提取的高斯金字塔有點類似。

四、表示學習

表示學習指的是從數據中學習有用的特征,并可以直接用于后續具體任務的方法,表示學習的價值在于減少機器學習對特征工程的以來,從而可以將機器學習應用到更多的領域,個人的理解就是說將特征提取與機器學習掛鉤,讓特征提取本身成為學習的一部分,比如說之前看的線特征提取之類的算法,這些算法是人為設計的,表示學習個人感覺就是將這部分也交給神經網絡進行學習。

在機器學習中對一個對象的表示有兩種常用的方法,一種是獨熱向量編碼,他將對象的全體表示為一個向量,向量在某個維度為1表示這個對象符合一個要求,假設一共有n個漢字,那么一個漢字就需要n維的向量,因此總共需要n×n維的矩陣才可以表示全部的漢字。與這種方法相對應的是分布式表示,它通過某種方式得到一個低維稠密向量來表示研究對象,最典型的就是顏色,顏色使用RGB表示法,用空間去表示顏色,使得表示的開銷大大降低。獨熱向量編碼簡單,只需要列出全部內容即可,但是會丟失大量的語義信息;分布示表示可以解決數據稀疏問題,而且一定程度上保留語義信息。

自編碼器是一種表示學習里面很出名的模型,簡單來說它的思路是將輸入映射到某個空間,再從這個特征空間映射回輸入空間進行重構,它有編碼器和解碼器兩部分組成,編碼器可以視作下采樣,反之解碼器可以視作上采樣,編碼器用于從輸入數據中提取特征,解碼器用于從提取的特征中重構出輸入數據,這種編碼-解碼的思想在神經網絡模型中很常見。

最簡單的自編碼器可以有三層組成:1個輸入層、1個隱含層和1個輸出層,其中輸入層到隱含層的部分稱為編碼器,隱含層到輸出層的部分稱為解碼器。

自解碼器通過最小化輸入與輸出之間的重構誤差進行訓練,也就是說自編碼器是不需要額外的標簽信息進行監督學習,這類網絡的損失函數可以表示為:

通過不斷進行梯度下降優化,來優化兩層的權值和偏置項一共四組參數:

在上面的圖中,中間隱含層的神經元數目要少于輸入和輸出的神經元數目,這種編碼器我們稱之為欠完備自編碼器,它在一定程度上可以得到類似于主成分分析的效果,本質上就是一個降維再升維的過程。如果我們放開這個限制,也就是說讓中間隱含層的神經元數目多于輸入輸出,這樣的編碼器就叫做過完備自編碼器,對于這類編碼器,如果我們不加以任何限制,有可能不會學習到數據的任何有用的信息,甚至有可能只是將輸入完全復制到輸出,這是因為我們讓編碼器的維度過高,也就是給予了他們過強的能力,編碼器會更加傾向于將輸入拷貝到輸出,而不會進行特征的學習,因此我們一般會設置一些正則化的約束。

這里我們介紹兩類比較典型的正則化自編碼器:

去噪自編碼器

去噪自編碼器的改進在于在原始的輸入上,增加了一些噪聲作為編碼器的輸入,所以解碼器需要重構出一個不含噪聲的原始輸入x,正是因為加入了這個去噪的過程,使得編碼器不能直接照搬輸入,必須從有噪聲的數據中學習出恢復原始數據的方法。

具體做法是隨機將輸入的x的一部分值設為0,這樣就得到了有噪聲的數據作為輸入,但是在計算損失函數時,依然要使用不帶噪聲的項參與殘差的計算:

稀疏自編碼器

這類方法是在損失函數上增加正則項來提高學習能力,稀疏編碼器通過提高神經元的稀疏性來提高學習能力。我們定義神經元的活躍度為它在所有樣本上取值的平均值,我們通過設定期望的活躍度,來讓過于活躍或者過于不活躍的神經元受到懲罰,從而得到稀疏的編碼特征,加入正則化項之后,損失函數變為:

由于稀疏性可以看作抑制神經元的激活,所以稀疏自編碼器個人理解就是讓一部分神經元受抑制,如果大多數的神經元都處于激活的狀態,那么在傳遞的過程中,每個特征都會傳遞到下一層進行細化,也就是說最終判斷的結果,會更加趨向于用所有的特征來判斷,而這些特征中有很多代表性很強的特征,按道理用這些更有代表性的特征進行判斷效果不會更差,所以個人感覺稀疏自編碼器就是在抑制神經元,讓這些有代表性的特征能夠一定程度上凸顯出來。

五、卷積網絡在圖像分類中的應用

VGG

VGG基于AlexNet做了改進,使用兩層小尺寸的卷積核來代替一層大的卷積核,從而減少參數量,此外還重復使用簡單的卷積塊來堆疊得到模型,它的基礎卷積塊為兩層或多層卷積加上一層池化。VGG由于其結構簡單而且效果較好,現在也嘗嘗唄用作其他網絡的骨干網絡。

Inception V1

首次使用并行結構,而且采用多個大小不同的卷積核,一個Inception塊的多個不同的卷積核可以提取到不同類型的特征,同時每個卷積核的感受野也不一樣,因此可以獲得多尺度的特征。

Inception V2

針對Inception V1做了改進,將大尺寸的卷積核進行分解,從而減少參數量并降低計算的復雜度。這種拆分卷積核的方法可以在不改變感受野大小的情況下,降低參數量,而且能夠降低過擬合的風險,一定程度上還擴展了模型的表達能力。

ResNet

殘差網絡的提出是對深度學習的一個質的飛躍,可以說殘差網絡是目前最流行的網絡結構。網絡的深度對模型的性能來說十分重要,網絡層數增加意味著模型可以進行更加復雜的特征模式提取,但是增加到一定程度,反而會導致模型退化問題,這主要是因為優化困難導致的。而殘差網絡從網絡結構上來解決這個問題,它在一個塊的輸入和輸出之間,增加一條直接到通路,這條通路叫做跳躍連接。

跳躍連接的引入,使得信息的流通更加順暢,一方面前向傳播時輸入與輸出的信息融合能夠更加有效地利用特征,另一方面反向傳播時,總有一部分梯度通過跳躍連接直接反應到輸入上,從而緩解了梯度消失的問題。

六、神經網絡常用概念

BN層

全稱是batch normalization層,是一種常用的數據歸一化方法,常用在卷積層之后,用于重新調整數據的分布。由于神經網絡在訓練的過程中,輸入的數據一般希望能夠滿足獨立同分布,但是由于神經網絡的層級結構導致高層的數據分布會受到低層參數的影響,在輸入時滿足獨立同分布并不代表數據傳遞到高層之后依然滿足,所以研究者創造出歸一化的方法,通過采取不同的變換方式使得各層的輸入數據接近滿足獨立同分布的假設條件。也就是說在卷積層之后接BN層,就是為了調整卷積層結果的數據分布,讓分布能夠重新回到獨立同分布的狀態。

參考鏈接:BN層詳解

正則化

正則化是深度學習中減小泛化誤差的方法,一定程度上可以用于過擬合的避免,正則化技術中比較常用的有下面幾種:
①參數懲罰
簡單來說就是在損失函數上增加范數約束,一般在深度學習中,都是對權重參數添加約束,而不對偏置項增加約束,主要原因是偏置項的收斂只需要很少一部分數據就可以實現,如果再加約束,容易導致欠擬合。
常用的范數懲罰是L2范數懲罰,加入之后損失函數變為:

直觀上理解就是L2正則化是對于大數值的權重向量進行嚴厲懲罰,這個損失函數在求導之后,會有一個權值項,它對應的是上一層的輸出結果,也就是說對于大的輸出對應的權值,其導數值會增加加以懲罰。除了L2正則化,還有L1正則化,也就是增加L1范數懲罰,其損失函數為:

L1正則常被用來進行特征選擇,主要原因在于L1正則化會使得較多的參數為0在參數比較小的時候,會直接縮減至0,從而產生稀疏解,我們可以將0對應的特征遺棄,進而用來選擇特征。一定程度上L1正則也可以防止模型過擬合。
②dropout
這種方法屬于深度學習防止過擬合里面老生常談的內容了,dropout層通過隨機丟棄一部分輸入,使得這部分輸入對應的參數不再進行更新,實現了隨機殺死一部分神經元的作用,從而顯著降低了過擬合。
③提前停止
提前停止是指在驗證誤差不再提升后,提前結束訓練,而不是一直等待驗證誤差到最小值,該方法優勢在于不需要改變損失函數,簡單而且執行效率高,但是需要一個額外的空間來備份參數。
④樣本擴充
這個方法是解決過擬合最有效的方法,訓練集越大過擬合的概率越小,但是有些領域本身數據的量就不可能太大,所以這個方法在一些領域上不是很適用。

attention 注意力機制

注意力機制是指讓神經網絡具有將注意力集中到一部分輸入(或特征)的能力。這一點也符合人腦的注意力機制,屬于是腦科學的又一次應用延伸。

使用這種注意力機制主要是因為兩方面的限制:
計算能力的限制:當要記住很多“信息“,模型就要變得更復雜,然而目前計算能力依然是限制神經網絡發展的瓶頸。
優化算法的限制:雖然局部連接、權重共享以及pooling等優化操作可以讓神經網絡變得簡單一些,有效緩解模型復雜度和表達能力之間的矛盾;但是,如循環神經網絡中的長距離以來問題,信息“記憶”能力并不高。可以借助人腦處理信息過載的方式,例如Attention機制可以提高神經網絡處理信息的能力。

個人理解所謂的注意力機制,就是根據某個分布,選擇一部分輸入送入神經元中計算,而不是讓所有輸入都送入神經元計算。注意力機制一般可以分為三步:一是信息輸入;二是計算注意力分布;三是根據計算的注意力分布來對輸入信息進行處理。注意力根據選擇的方法可以分為軟性注意力和硬性注意力,軟性注意力是指在選擇信息的時候,不是從全部輸入中只選擇一個,而是計算所有輸入的加權平均。而硬性注意力是說只選擇輸入序列中某一個位置上的信息,也就是只選一個。

參考鏈接:
神經網絡中的注意力機制
神經網絡注意力機制
神經網絡注意力機制

看到這的時候想起了入坑看的第一篇論文RandLA-Net,那里面使用的注意力池化機制,和這里的注意力機制是相通的,這里順便回顧一下RandLA-Net。

注意力機制在網絡結構的右上方,可以看到輸入的點云有N個,每個點用3+d維的向量來表示,其中3表示空間坐標,對應向量綠色的部分,對于采樣的一個點,用kNN找出最近的k個點,于是變成了k個3+d維的向量,取出其中空間位置的部分,通過相對位置編碼將3維變成d維,與原來的d維拼接起來,形成k個2d維度的點特征向量,這部分表示的是采樣點周圍的狀態,對這部分點計算注意力得分,用注意力得分進行加權處理,得到的k個2d維向量求和并經過共享感知機處理,得到一個d‘維的向量,這個向量就是這個點的編碼結果。雖然這里的注意力池化可能和池化不太沾邊,但是確實是用到了注意力機制,通過注意力將臨近點中比較重要的特征突出出來,讓其在編碼中占據多的內容。

七、目標檢測常用概念

R-CNN系列

目標檢測分為典型的兩個系列,一個系列是從R-CNN到Fast-RCNN再到Faster-RCNN,這一個系列我們稱為R-CNN系列,它們都是提取候選框,再進行分類與回歸。傳統的R-CNN通過對輸入圖像做區域提取,提取后將每個建議框拉伸送入CNN中,一方面拉伸會導致圖像的變形失真進而變成信息丟失,另一方面,提取多個區域獨立送入CNN的方式過于冗余。

SPP層是對失真的解決方法,SPP層全稱是空間金字塔池化層,一開始是用在目標檢測時圖像歸一化,對于大小不同的目標框,為了放置到大小一樣的全連接層中,必須要進行拉伸等操作,但是拉伸會導致圖像的變形失真,進而導致信息的丟失,所以引入了SPP層,它本質上是一種特殊的池化層,它實現了將輸入的任意尺度的特征圖組合成特定維度的輸出,簡單來說就是不管輸入到SPP層的圖像的大小,SPP層都會給出一個固定大小的輸出。

從SPP層的實現來看,它更像是一個多尺度池化的疊加,最原始版本的SPP層中,每一維的特征圖都被拆分為三個池化結構,分別為4×4、2×2和1×1,也就是將一維特征圖劃分為16、4、1個格子,對每個格子內做最大池化,從而得到16+4+1=21維度的表示,也就是說一維的特征圖不管大小都可以變為21維的向量,所以對于一個(h,w,c)的特征圖輸入,經過SPP層之后,就會變成(21,c),與輸入的hw無關。

除了統一維度,由于對輸入圖像的不同縱橫比和不同尺寸,SPP同樣可以處理,所以提高了圖像的尺度不變(scale-invariance)和降低了過擬合(over-fitting) ,在具體的任務中,SPP層的設計也有所區別,其本身可以放在最后一層卷積層的后面,對網絡結構不會產生影響。參考鏈接

Fast-RCNN就是利用了SPP的原理來解決失真問題,設計出了ROI pooling,兩者起到的作用是相同的,把不同尺寸的特征輸入轉化為相同尺寸的特征輸出。SPP針對同一個輸入使用了多個不同尺寸的池化操作,把不同尺度的結果拼接作為輸出;而ROI Pooling可看作單尺度的SPP,對于一個輸入只進行一次池化操作。

除此之外,Fast-RCNN還改善了重復利用神經網絡的問題。

Fast RCNN中只需要把原始圖片送入網絡提取一次特征即可,通過感受野的對應關系,把不同大小的候選框直接映射到最后一層卷積輸出的feature map上,而ROI Pooling的作用就是把feature map上對應的不同大小的框,轉換為相同大小作為下一層全連接的輸入。也就是說,Fast RCNN依然是需要用selective search來獲得建議框,但是不再需要一個一個將框放入神經網絡,而是直接將整個圖像送入,根據框的位置與層的關系來進行投影從而得到特征圖的興趣區域ROI,再用ROI pooling將區域整合為統一大小。參考鏈接

這兩種方法都使用了selective search來獲得建議框,這種方法由于其低效的實現方法,所以存在算力的浪費,在此基礎上又改進出了Faster-R-CNN,這里直接將selective search也優化掉了,利用神經網絡自己學習生成候選區域。
也就是說,最原始的R-CNN,使用selective search獲得建議框,對建議框拉伸縮放到統一大小之后依次送入神經網絡進行學習,改進的Fast-RCNN利用SPP層的思路,依然用selective search提取建議框,之后將整個圖送入神經網絡,利用建議框與特征圖之間的對應關系實現一圖多用,最后Faster-RCNN直接將selective search也優化掉,用神經網絡自己去提取建議框,進一步提升了效率。

one stage目標檢測方法

R-CNN系列都需要經過兩步,以YOLO為代表的方法則沒有顯式的候選框提取的過程,使用一個神經網絡,直接將整張圖輸入網絡然后預測出bounding box的坐標和物體的類別、置信度。
YOLO參考鏈接1
YOLO參考鏈接2

總結

以上是生活随笔為你收集整理的【学习记录】卷积神经网络常用概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。