爲什麼“卷積”神經網絡

一直在接觸卷積神經網絡,今天就說一下爲什麼會有卷積卷積會帶來什麼好處CNN中如何使用卷積

爲什麼會有卷積

(這裏主要解釋下卷積具有什麼意義,爲什麼人們會想到卷積。有些人一提到卷積可能首先想起來的是局部連接、參數共享呀等等,這些只是它帶來的好處。如果一個方法對於我們的問題本身沒有什麼意義,即使它會帶來一大堆的好處人們應該也是不會去使用的。)

19世紀60年代,科學家通過對貓的視覺皮層細胞研究發現,每一個視覺神經元只會處理一小塊區域的視覺圖像,即感受野(Receptive Field)。卷積神經網絡的概念即出自於此。簡單說這樣做保留了圖像的空間信息

在卷積神經網絡中,一個卷積層可以有多個不同的卷積核(也可以說是濾波器),而每個卷積核在輸入圖像上滑動且每次只處理一小塊圖像。這樣輸入端的卷積層可以提取到圖像中最基礎的特徵,比如不同方向的直線或者拐角;接着再組合成高階特徵,比如三角形、正方形等;再繼續抽象組合,得到眼睛、鼻子和嘴等五官;最後再將五官組合成一張臉,完成匹配識別。即每個卷積層提取的特徵,在後面的層中都會抽象組合成更高階的特徵。

圖像具有很強的空間相關性。其中每一個卷積核濾波得到的圖像就是一類特徵的映射,即一個Feature Map。和SIFT算法等類似,CNN訓練的模型同樣對縮放、平移、旋轉等具有不變性(關於這一塊,參考:卷積神經網絡提取圖像特徵時具有旋轉不變性嗎?, 池化,有着很強的泛化能力。

卷積會帶來什麼好處

卷積層的兩個要點:局部連接(Local Connection)權值共享(Weight Sharing)

局部連接:每個神經元只與上一層的一個局部區域連接,該連接的空間大小叫做神經元的感受野(receptive field)。
權值共享:當前層在深度方向上每個channel的神經元都使用同樣的權重和偏差。這裏作了一個合理的假設:如果一個特徵在計算某個空間位置(x,y)的時候有用,那麼它在計算另一個不同位置(x2,y2)的時候也有用。

局部連接和權值共享降低了參數量,使訓練複雜度大大下降,並減輕了過擬合。同時權值共享還賦予了卷積網絡對平移的容忍性。

(簡單提一下,卷積神經網絡中一般還包含有池化層(Pooling)。池化層的降採樣輸出參數量,並賦予了模型對輕度形變的容忍性,提高了模型的泛化能力。)

CNN中如何使用卷積

在卷積層種有3個超參數控制着輸出數據體的尺寸:深度(depth),步長(stride)和零填充(zero-padding)。不再贅述。
下面給個LeNet-5模型的卷積參數量,可以看到它比全連接少了許多。網址:http://yann.lecun.com/exdb/lenet/
這裏寫圖片描述
(手寫爲每一個卷積層的參數計算)

參考:
CS231n課程筆記翻譯:卷積神經網絡筆記
黃文堅《TensorFlow實戰》5.1節 卷積神經網絡簡介

發佈了419 篇原創文章 · 獲贊 248 · 訪問量 125萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章