一、卷積
卷積神經網絡(Convolutional Neural Networks)是一種在空間上共享參數的神經網絡。使用數層卷積,而不是數層的矩陣相乘。在圖像的處理過程中,每一張圖片都可以看成一張“薄餅”,其中包括了圖片的高度、寬度和深度(即顏色,用RGB表示)。

在不改變權重的情況下,把這個上方具有k個輸出的小神經網絡對應的小塊滑遍整個圖像,可以得到一個寬度、高度不同,而且深度也不同的新圖像。

卷積時有很多種填充圖像的方法,以下主要介紹兩種,一種是相同填充,一種是有效填充。

如圖中紫色方框所示,左邊是有效填充,右邊是相同填充。在相同填充中,超出邊界的部分使用補充0的辦法,使得輸入輸出的圖像尺寸相同。而在有效填充中,則不使用補充0的方法,不能超出邊界,因此往往輸入的尺寸大於輸出的尺寸。
下圖展示了以3x3的網格在28x28的圖像上,使用不同步長、填充方法填充所得到的輸出圖像的尺寸:

下面借助兩個動圖來理解一下卷積的過程:
第一種是以3x3的網格在5x5的圖像上進行有效填充的卷積過程:

第二種是使用3x3的網格在5x5圖像上進行相同填充的卷積過程,動圖在:http://cs231n.github.io/convolutional-networks/

回顧整個過程,就是一層一層地增加網絡深度,最終得到一個又深又窄的表示,然后把其連接到全連接層,然后訓練分類器。

二、局部連接與權重共享

總體而言,局部連接和權重共享都是減少參數的辦法,使得特征提取更為有效。
上圖中左半部分,是全連接神經網絡的示例。圖中是一個1000x1000的圖像,下一隱藏層有$10^6$個神經元,那么就會有1000x1000x$10^6$=$10^{12}$個參數。
上圖右半部分,是局部連接神經網絡的示例。圖中依然是一個1000x1000的圖像,下一隱藏層有$10^6$個神經元,但是使用了一個10x10的卷積核,連接到了10x10的局部圖像,那么則會有10x10x$10^6$=$10^8$個參數。
可見局部連接可以很大幅度減少參數的數量。

在實際應用中,有一些情況比較特殊,涉及到了統計不變性的問題。比如我們想識別圖像中的動物類別,那么動物在圖片中的位置(左上角、中間或是右下角)是不重要的,這叫平移不變性;再比如說,在識別數字的過程中,數字的顏色並不影響結果;又或者說,在語言處理中,一些詞匯在句子中的位置並不影響其代表的含義。當兩種輸入可以獲得同樣的信息,那么我們就應該共享權重而且利用這些輸入來共同訓練權重。
在上圖中的左半部分,是未使用權重共享的局部連接神經網絡的示例。
在上圖中的右半部分,則使用了權重共享。圖中是一個1000x1000的圖像,有100個10x10的卷積核,最終會有100x10x10=10k個參數。使用局部連接和權重共享都大大地減小了參數數量。而共享權重使得統計不變性問題得到了有效解決。
三、池化

通過卷積后,為了引入不變性,同時防止過擬合問題或欠擬合問題、降低計算量,我們常進行池化處理。池化過程如上圖所示。因此池化過后,通常圖像的寬度和高度會變成原來的1/2。
其中包括了Max pooling 、 Mean pooling和Stochastic pooling三種池化方法。
兩種較為常用的是:Max pooling和Mean pooling。Max pooling是選擇kernel范圍之內的最大值;Mean pooling則是選擇kernel范圍之內的平均值。
四、LeNet-5中的卷積與池化分析

在LeNet-5中,輸入層是32x32的尺寸。
在第一次卷積中,使用了6個卷積核,得到了C1:6張28x28的特征圖。
然后進行下采樣,得到S2:特征圖寬、高變為原來的1/2,即28/2=14,特征圖尺寸變為14x14,特征圖張數不變。
再進行第二次卷積,使用了16個卷積核,得到了C3:16張10x10的特征圖。
然后進行下采樣,得到S4:特征圖寬、高變為原來的1/2,即10/2=5,特征圖尺寸變為5x5,特征圖張數不變。
之后進入卷積層C5,120張1x1全連接后的特征圖,與S4全連接。
本文圖片及內容均參考或來自如下資料:
[1]Udacity的Deep Learning課程:https://cn.udacity.com/course/deep-learning--ud730
[2]Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks[J]. Advances in Neural Information Processing Systems, 2012, 25(2):2012.
[3]Lecun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[5]http://www.jeyzhang.com/cnn-learning-notes-1.html
[6]http://blog.csdn.net/stdcoutzyx/article/details/41596663
[7]CS231n: Convolutional Neural Networks for Visual Recognition
[8]http://ibillxia.github.io/blog/2013/04/06/Convolutional-Neural-Networks/
本文是個人的學習筆記,水平有限,如有疏漏,敬請指出,不勝感謝。
