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