吳恩達深度學習筆記(deeplearning.ai)之卷積神經網路(CNN)(上)
原文連結 https://www.cnblogs.com/szxspark/p/8439066.html
1. Padding
在卷積操作中,過濾器(又稱核)的大小通常為奇數,如3x3,5x5。這樣的好處有兩點:
-
在特徵圖(二維卷積)中就會存在一箇中心畫素點。有一箇中心畫素點會十分方便,便於指出過濾器的位置。
-
在沒有padding的情況下,經過卷積操作,輸出的資料維度會減少。以二維卷積為例,輸入大小 n×n,過濾器大小f×f,卷積後輸出的大小為(n−f+1)×(n−f+1)。
-
為了避免這種情況發生,可以採取padding操作,padding的長度為p,由於在二維情況下,上下左右都“新增”長度為p的資料。構造新的輸入大小為(n+2p)×(n+2p) , 卷積後的輸出變為(n+2p−f+1)×(n+2p−f+1)。
-
如果想使卷積操作不縮減資料的維度,那麼p的大小應為(f−1)/2,其中f是過濾器的大小,該值如果為奇數,會在原始資料上對稱padding,否則,就會出現向上padding 1個,向下padding 2個,向左padding 1個,向右padding 2個的情況,破壞原始資料結構。
- 舉例說明:現在有一張圖片的大小為6×6×3
2. Stride
-
卷積中的步長大小為s,指過濾器在輸入資料上,水平/豎直方向上每次移動的步長,在Padding 公式的基礎上,最終卷積輸出的維度大小為:
-
⌊⌋符號指向下取整,在python 中為floor地板除操作。
3. Channel
通道,通常指資料的最後一個維度(三維),在計算機視覺中,RGB代表著3個通道(channel)。
- 舉例說明:現在有一張圖片的大小為6×6×3,過濾器的大小為3×3×nc, 這裡nc指過濾器的channel大小,該數值必須與輸入的channel大小相同,即nc=3。
- 如果有k個3×3×nc的過濾器,那麼卷積後的輸出維度為4×4×k。注意此時p=0,s=1,k表示輸出資料的channel大小。一般情況下,k代表k個過濾器提取的k個特徵,如k=128,代表128個3×3大小的過濾器,提取了128個特徵,且卷積後的輸出維度為4×4×128。
在多層卷積網路中,以計算機視覺為例,通常情況下,影像的長和寬會逐漸縮小,channel數量會逐漸增加。
4. Pooling
- 除了卷積層,卷積網路使用池化層來縮減資料的大小,提高計算的速度 ,同時提高所提取特徵的魯棒性。 池化操作不需要對引數進行學習,只是神經網路中的靜態屬性。
- 池化層中,資料的維度變化與卷積操作類似。池化後的channel數量與輸入的channel數量相同,因為在每個channel上單獨執行最大池化操作。
- f=2, s=2,相當於對資料維度的減半操作,f指池化層過濾器大小,s指池化步長。
-
5. 卷積神經網路(CNN)示例
課堂筆記中關於簡單卷積神經網路的介紹:
一個用於手寫數字識別的CNN結構如下圖所示:
該網路應用了兩層卷積,並且在第二個池化層之後又接了幾個全連線層,這樣做的目的是避免某一層的啟用值數量減少的太快,具體原因後文解釋。
與卷積神經網路的引數數量計算相關的問題:
-
該手寫數字識別的CNN具體引數數量視覺化如下所示:
- 從圖中可以發現,卷積層的引數數量較小,大部分引數集中在全連線層。而且隨著網路層的加深,啟用值數量逐漸減少,如果啟用值數量下降太快,會影響網路的效能。
- 因此需要構建多個全連線層,而不是一個全連線層一步到位。
-
6. 卷積層的好處
與只用全連線層相比,卷積層的主要優點是引數共享和稀疏連線,這使得卷積操作所需要學習的引數數量大大減少。
相關文章
- 吳恩達《卷積神經網路》課程筆記(2)– 深度卷積模型:案例研究吳恩達卷積神經網路筆記模型
- 吳恩達《卷積神經網路》課程筆記(1)– 卷積神經網路基礎吳恩達卷積神經網路筆記
- 吳恩達深度學習:簡單卷積網路吳恩達深度學習卷積
- 吳恩達深度學習:單層卷積網路吳恩達深度學習卷積
- 深度學習筆記------卷積神經網路深度學習筆記卷積神經網路
- 深度學習卷積神經網路筆記深度學習卷積神經網路筆記
- 吳恩達機器學習筆記 —— 9 神經網路學習吳恩達機器學習筆記神經網路
- 吳恩達《神經網路與深度學習》課程筆記(1)– 深度學習概述吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(4)– 淺層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(5)– 深層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《卷積神經網路》課程筆記(3)– 目標檢測吳恩達卷積神經網路筆記
- 吳恩達深度學習:三維卷積吳恩達深度學習卷積
- CNN筆記:通俗理解卷積神經網路CNN筆記卷積神經網路
- 吳恩達機器學習筆記——八、神經網路吳恩達機器學習筆記神經網路
- 吳恩達《神經網路與深度學習》課程筆記(2)– 神經網路基礎之邏輯迴歸吳恩達神經網路深度學習筆記邏輯迴歸
- 卷積神經網路CNN-學習1卷積神經網路CNN
- CNN神經網路之卷積操作CNN神經網路卷積
- 吳恩達《神經網路與深度學習》課程筆記(3)– 神經網路基礎之Python與向量化吳恩達神經網路深度學習筆記Python
- 卷積神經網路CNN卷積神經網路CNN
- 深度學習入門筆記(十八):卷積神經網路(一)深度學習筆記卷積神經網路
- 深度學習三:卷積神經網路深度學習卷積神經網路
- 深度學習之卷積神經網路(Convolutional Neural Networks, CNN)(二)深度學習卷積神經網路CNN
- 吳恩達《卷積神經網路》課程筆記(4)– 人臉識別與神經風格遷移吳恩達卷積神經網路筆記
- 【深度學習原理第4篇】卷積神經網路詳解(CNN)深度學習卷積神經網路CNN
- Ng深度學習筆記——卷積神經網路基礎深度學習筆記卷積神經網路
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 吳恩達《優化深度神經網路》課程筆記(1)– 深度學習的實用層面吳恩達優化神經網路筆記深度學習
- 卷積神經網路學習筆記——SENet卷積神經網路筆記SENet
- 吳恩達機器學習課程 筆記5 神經網路吳恩達機器學習筆記神經網路
- 看懂卷積神經網路(CNN)卷積神經網路CNN
- Keras上實現卷積神經網路CNNKeras卷積神經網路CNN
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 吳恩達《最佳化深度神經網路》課程筆記(1)– 深度學習的實用層面吳恩達神經網路筆記深度學習
- 語音學習筆記14------卷積神經網路CNN引數說明筆記卷積神經網路CNN
- 卷積神經網路(CNN)詳解卷積神經網路CNN
- TensorFlow上實現卷積神經網路CNN卷積神經網路CNN
- 卷積神經網路學習筆記——Siamese networks(孿生神經網路)卷積神經網路筆記
- 深度學習——LeNet卷積神經網路初探深度學習卷積神經網路