1. 程式人生 > >Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing

Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing

cep 處理 根據 margin 單獨 cross rop 滑動 mage

Sparse Interactions, Receptive Field and Parameter Sharing是整個CNN深度網絡的核心部分,我們用本文來具體分析其原理。

首先我們考慮Feedforward Neural Network,L層的輸出矩陣,等於L層的輸入矩陣與L層的權重矩陣做矩陣乘法,而後進行非線性變換。也就是說,L層的每一個輸出數據,與L層的每一個輸入數據都有關系。若輸入數據是m維,輸出數據是n維,則存在m*n個權重項來表征輸入與輸出間的關系。所以,Forward-propagation的時間復雜度是O(m*n)。

根據在機器學習方面的實際經驗看來,weight過多導致的問題主要有:難以訓練,overfitting等。所以CNN引入Sparse Interactions來解決稠密權重(Dense Weight)的問題。以一個核寬度為3的網絡來舉例:下一層的輸出S3

,只與3個輸入x2,x3,x4有關。

技術分享圖片

x2,x3,x4稱為s3的Receptive Field,這其實是一個從神經科學舶來的概念。這裏引用wikipedia關於Receptive Field的一段原文吧:

“Work by Hubel and Wiesel in the 1950s and 1960s showed that cat and monkey visual cortexes contain neurons that individually respond to small regions of the visual field. Provided the eyes are not moving, the region of visual space within which visual stimuli affect the firing of a single neuron is known as its receptive field. Neighboring cells have similar and overlapping receptive fields. Receptive field size and location varies systematically across the cortex to form a complete map of visual space. The cortex in each hemisphere represents the contralateral visual field.”

在位於枕葉(Occiptal Lobe)的大腦視覺皮質(Visual Cortex)中,存在一些神經元,每個單獨的神經元對應一個Receptive Field。這也是Biological Neural Network在圖像處理方面啟發Artificial Neural Network的地方。如果僅僅到此為止,我們的確降低了模型的復雜度,並且把Weight Matrix縮小至k*n,k是kernel的大小。也就是說,在下一層中共有n個neurons,每一個neuron僅僅與上一層的k個值有關。

但Weight Sharing概念的引入,則將模型進一步簡化,從而達到:weight的個數僅僅與kernel的大小有關。對於Kernel 和 Weight Sharing,可以這樣理解:L層與L-1層之間並沒有固定的連接線,而是采取動態綁定,在兩層之間存在一個小小的window,稱為kernel。透過該窗口可以看到原圖像的一小部分,隨著窗口不斷從左到右,從上到下滑動,整個圖片都被掃描。而掃描到的圖片區,和kernel來做卷積,生成feature map。而整張圖片,共享的weight其實就是kernel的值,如果kernel改變,整張圖的掃描結果(feature map)將會改變。過程如下圖:

技術分享圖片

技術分享圖片

到這一步,我個人認為已經可以解決第一個W即what的問題了,但是關於Why、How,後續還需要很多篇幅和時間,慢慢來學習和分析。此為CNN之二,未完待續。

Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing