1. 卷積神經網絡(CNN)簡介
19世紀60年代,科學家通過對貓的視覺皮層細胞研究發現,每一個視覺神經元只會處理一小塊區域的視覺圖像,即感受野(Receptive Field)。卷積神經網絡的概念即出自於此。簡單說這樣做保留了圖像的空間信息。
2012年是卷積神經網絡崛起之年。這一年,Alex Krizhevsky帶着卷積神經網絡參加了ImageNet競賽(其重要程度相當於奧運會)並一鳴驚人,將識別錯誤率從26%降到了15%。
從那開始,很多公司開始使用深度學習作爲他們服務的核心。比如,Facebook在他們的自動標記算法中使用了它,Google在照片搜索中使用了,Amazon在商品推薦中使用,Printerst應用於爲他們的家庭飼養服務提供個性化定製,而Instagram應用於他們的搜索引擎。
爲什麼CNN比普通的神經網絡效果更好呢?
2. 卷積神經網絡的結構
2.1 卷積
卷積是指向圖像應用濾波器(Kernel)的過程,通過在原始圖像上平移來提取特徵。
以圖片處理爲例子,卷積使得神經網絡不再僅對一個像素點處理,而是對一小塊兒區域進行處理。這種做法,使得神經網絡可以看到圖形,而不是某一個點,從而加深了對圖片的理解。
在卷積神經網絡中,一個卷積層可以有多個不同的卷積核(也可以說是濾波器),而每個卷積核在輸入圖像上滑動且每次只處理一小塊圖像。這樣輸入端的卷積層可以提取到圖像中最基礎的特徵,比如不同方向的直線或者拐角;接着再組合成高階特徵,比如三角形、正方形等;再繼續抽象組合,得到眼睛、鼻子和嘴等五官;最後再將五官組合成一張臉,完成匹配識別。即每個卷積層提取的特徵,在後面的層中都會抽象組合成更高階的特徵。
卷積層有兩個特點:局部連接(Local Connection)和權值共享(Weight Sharing)。局部連接:每個神經元只與上一層的一個局部區域連接,該連接的空間大小叫做神經元的感受野(receptive field)。權值共享:當前層在深度方向上每個channel的神經元都使用同樣的權重和偏差。局部連接和權值共享降低了參數量,使訓練複雜度大大下降,並減輕了過擬合。同時權值共享還賦予了卷積網絡對平移的容忍性。
2.2 池化(降採樣)(子採樣)
池化(pooling)是對圖片進行壓縮(降採樣)的一種方法。
池化主要的作用是壓縮數據和參數的量(保持最顯著的特徵),通過去掉Feature Map中不重要的樣本,進一步減少參數數量。Pooling的方法很多,通常採用最大池化。
最大池化可以使得CNN具備一定的旋轉不變性。參考:https://www.zhihu.com/question/30817011
2.3 分類/全連接(FC, Full Connection)
前面的卷積和池化相當於做特徵工程,最後的全連接層在整個卷積神經網絡中起到“分類器”的作用。
如果FC層作爲最後一層,再加上softmax或者wx+b,則可以分別作爲分類或迴歸的作用,即“分類器”或“迴歸器”的作用
如果作爲倒數第2,3層的話,FC層的作用是信息融合,增強信息表達。
3. 搭建CNN 結構
比較流行的一種搭建結構是這樣,從下到上的順序:
- 首先是輸入的圖片(image)
- 經過一層卷積層 (convolution)
- 然後在用池化(pooling)方式處理卷積的信息(比如使用max pooling 的方式).
- 在經過一次同樣的處理, 把得到的第二次處理的信息傳入兩層全連接的神經層 (fully connected),這也是一般的兩層神經網絡層
4. 參考
卷積神經網絡介紹https://www.cnblogs.com/kongweisi/p/10987870.html
卷積神經網絡提取圖像特徵時具有旋轉不變性嗎?
https://www.zhihu.com/question/30817011