深度學習(2)——感受野

最近在組會講解框架時,在感受野這個小知識點,大家開始產生歧義,今天我就簡單的給大家講解下這個小知識點,也給初學者帶來一個對Receptive Field嶄新的認識,如果對只是有深入了解的你,就可以直接跳過O(∩_∩)O~~!

現在開始進入正題!!!

以前我的理解就是,感受野嘛,其實那就是一個視覺感受區域大小。對於單層網路來說,下一層的一個像素點其感受野大小也就是卷積層濾波器的大小,想想其實很明了的就理解了,但對於多層,那就有一點點(也就那麼一點點複雜而已)!

正式定義:

在神經網路中,感受野的定義是:卷積神經網路的每一層輸出的特徵圖(Feature ap)上的像素點在原圖像上映射的區域大小。

自己隨便畫了一個例圖,主要看內容,O(∩_∩)O謝謝!

鏈接: pan.baidu.com/s/1nvMzrO 密碼: 2ehd

有讀者說有動圖就好了,我就截取了一個,請大家欣賞!

現在就開始來說怎麼計算吧!(看點來了)其實很簡單!

首先可以簡單知道(前面也提及到了),第一層卷積層的輸出特徵圖像素的感受野的大小就等於等於卷積層濾波器的大小;然後其繼續進行前向傳播,這樣的話,後面深層的卷積層感受野大小就和之前所有網路層的濾波器大小和步長有關係了,在計算的時候,忽略圖像Padding的大小。網路中的每一個層有一個strides,該strides是之前所有層stride的乘積,即:

strideleft( i
ight) =stride(1)ast stride(2)ast ...ast strideleft( i-1 
ight)

查資料知,感受野大小的計算採用從深層到前層的方式計算, 即先計算最深層在前一層上的感受野,然後逐漸反饋到第一層,公式具體記如下:

V^{

其中V^{為得的感受野大小, V_{receptive field} 為最後層在前一層的感受野大小,Size_{Conv}  為卷積層濾波器大小。

通過這樣反覆迭代就可以得到每一層的感受野。具體代碼我看網上也有,我就順便附一下吧,原件請在鏈接里下載,謝謝!

鏈接: pan.baidu.com/s/1jIHLGJ 密碼: ayuc

具體模擬結果我是用Windows版的Python 3.5 (32-bit)運行得到的,具體如下圖:

推薦閱讀:

用深度學習玩圖像的七重關卡
Coursera吳恩達《卷積神經網路》課程筆記(1)-- 卷積神經網路基礎
「深度學習+自然語言處理(NLP)」專欄索引
看我AK甩槍,舊文重讀《Playing FPS Games with Deep Reinforcement Learning》

TAG:深度学习DeepLearning | 机器学习 |