在卷積神經(jīng)網(wǎng)絡(luò)中,有一個非常重要且繞不開的概念叫做卷積的“感受野”。
我剛開始學(xué)習(xí)卷積的時候,僅僅把“感受野”理解為感受視野,沒錯就是文字上的理解。
但隨著后來工作的深入,慢慢發(fā)現(xiàn)感受野這一概念,竟然和很多神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和特性都有著千絲萬縷的關(guān)系,讓人不禁感嘆算法的奇妙。
今天就來簡單聊一聊我所理解的卷積“感受野”。
1、什么是卷積的感受野
我們知道卷積算法是在輸入圖像上滑動一個小窗口(通常是3x3或5x5的矩陣),然后對窗口內(nèi)的像素進(jìn)行加權(quán)求和,最終生成輸出圖像,卷積計(jì)算過程如下所示。
那么,卷積的感受野是什么呢?感受野指的是輸出圖像中的一個像素與輸入圖像中的哪些像素有關(guān)。
換句話說,它表示一個輸出像素“看到”的輸入圖像中區(qū)域的大小,注意是從輸出來看的。如果你將卷積操作比作窗戶,那么感受野就是一個輸出像素透過這個窗戶可以看到的輸入圖片的范圍。
上圖中,第一個輸出左上角的像素點(diǎn)12.0,透過3x3的矩陣看到的是輸入圖像左上角的3x3的像素矩陣;最后一個輸出14.0,透過3x3的矩陣看到的是輸入圖像右下角的3x3的像素矩陣,這個3x3的像素矩陣就是這個卷積的感受野。
2、卷積的感受野在卷積算法中有什么重要意義
可以說,感受野影響了神經(jīng)網(wǎng)絡(luò)對于圖像的理解和圖像特征的提取。
一個大的感受野使得神經(jīng)網(wǎng)絡(luò)可以看到輸入圖像上更大的像素范圍,從而更好地理解圖像的全局信息,從而提取全局特征,如物體的形狀和輪廓。
而較小的感受野只能捕捉到圖像的局部特征,如邊緣或紋理。
因此,在很多神經(jīng)網(wǎng)絡(luò)中,往往會出現(xiàn)不同大小的卷積核,就是為了提取不同尺度范圍內(nèi)的特征,讓神經(jīng)網(wǎng)絡(luò)既可以學(xué)到圖像的細(xì)節(jié)、又可以看到圖像的輪廓。
3、為什么2個3x3的卷積可以替換一個5x5的卷積
看論文的時候經(jīng)常會看到一個操作,那就是為了優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將其中一個大的卷積核用幾個小的卷積核來代替。
比如,將一個5x5的卷積用兩個3x3的卷積來代替。
之所以可以這樣做,是因?yàn)閺妮敵鱿袼貋砜,兩個3x3的卷積和一個5x5的卷積,具有相同的感受野!
而這樣做,又會有很多其他的好處:
好處1:兩個3x3的卷積所需要的參數(shù)量要比一個5x5的卷積參數(shù)量少。忽略channel 的數(shù)值,兩個3x3的卷積核參數(shù)量為 3x3 + 3x3 = 18,而一個5x5的參數(shù)量則為25。
好處2:一個卷積變?yōu)閮蓚卷積,加深了神經(jīng)網(wǎng)絡(luò)的層數(shù),從而在卷積后面需要引入更多非線性層,增加卷積神經(jīng)網(wǎng)絡(luò)的非線性能力。
這兩點(diǎn)好處,其實(shí)在《面試官問,1x1 的卷積有什么用?》有提到過,所以關(guān)于卷積的很多算法都是類似的,要么是為了減少參數(shù)量,要么是為了提升非線性能力。
總的來說,卷積感受野就像是一扇窗戶。
你站在小窗戶前,就只能看到窗外的一小部分景色,此時你就是一個局部感知。但如果你站在大窗戶前,你可以看到更廣闊的景色,此時你擁有一個更大的感受野,你就擁有一個全局感知。
一個大的卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,就是通過網(wǎng)絡(luò)中或大或小的不同尺寸的卷積核,來提出不同尺度的下的特征,最終通過一個全連接來將特征進(jìn)行融合,達(dá)到圖像識別的目的的。