CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)
CNN 卷積網絡
- 說明
- 卷積 Convolution
- 填充 Padding
- 步長 Stride
- RGB圖像卷積
- 池化 Pooling
- 完整CNN
- 為什么人們喜歡用卷積神經網絡?
- 實例分析
說明
關于CNN的基礎知識:卷積、填充、步長、池化、完整的深度CNN網絡可以參考
鏈接: AI學習筆記——卷積神經網絡(CNN).
本文主要側重介紹這些操作背后的具體含義并且記錄一下吳恩達老師課程的知識點。
卷積 Convolution
卷積層主要就是通過filter來過濾圖片中的邊緣(線條),如下圖為“垂直邊緣檢測”的例子,矩陣中數字1代表亮度,0代表灰度,-1代表黑度。第一個輸入矩陣代表的圖案如下面的小圖片所示,圖片中間會產生一個由亮到暗的豎直線條,使用從亮到暗的垂直邊緣過濾器進行過濾后,結果可以表示原圖片中間有一個豎直線條(且該線條是由亮處到暗處的線條),第二個輸入矩陣經相同過濾器過濾后,結果可以表示原圖片中間有一個豎直線條(且該線條是由暗處到亮處的線條):
當然會有不同類型的過濾器:水平過濾器、垂直過濾器、sobel filter、schar filter ···
使用不同的過濾器可以過濾圖片中不同類型的邊緣(線條)
同時,由于過濾器本身是參數,在反向傳播過程中,網絡可以自己學習參數,使過濾器更好的過濾圖片。
填充 Padding
填充指在原圖片矩陣的周圍填充元素0
解決的問題:1、卷積之后圖片尺寸變小 2、原圖片邊緣信息的丟失
根據是否進行填充,將卷積分為:
Valid convolutions:不進行填充,卷積后圖片尺寸變為(n-f+1)*(n-f+1)
Same convolution:填充p=(f-1)/2,卷積后圖片尺寸和原來一樣
步長 Stride
當過濾器不能按照指定步長將圖片完整過濾時,最后一個步長變小,以完成圖片過濾。
所以最終圖片的尺寸公式將如下所示:
過濾器f一般等于奇數,不用偶數原因:
1、不對稱填充(左邊填充兩列,右邊填充一列)
2、奇數過濾器會有一個中心點,在計算機視覺里,如果有一個中心像素會更方便,便于指出過濾器的位置
RGB圖像卷積
過濾器的通道(channel)要與其所過濾的圖片通道在數量上保持一致,每個通道的過濾器可以是不同類型的,并且可以有多個過濾器進行過濾,最后將結果整合到一起
池化 Pooling
功能:縮減模型、提高計算速度、提高所提取特征的魯棒性(robust)
有Max-Pooling和Average-Pooling兩種池化方式,一般常用的是最大池化。
第一個圖片中紫色、藍色、綠色和紅色4*4的矩陣都可以看作是某些特征的集合,大的數字意味著可能提取了某些特定特征。最大化操作的的功能就是只要在任何一個象限內提取到某個特征,他都會保留在最大池化的輸出里面(如紫色象限的9),如果沒有提取到某個特征,那么其中的最大值也還是很小(如藍色象限的2)。
完整CNN
一般完整的CNN網絡由 卷積-池化-全連接 組成
為什么人們喜歡用卷積神經網絡?
參數共享:可以在輸入圖片的不同區域使用同樣的參數(同一個過濾器進行全圖掃描)
稀疏連接:舉例,輸出左上角的0,是通過3 * 3的卷積計算得到的,他只依賴于輸入矩陣左上角3*3的單元格。(即一個輸出與9個輸入連接,對比FC,一個輸出與所有的輸入連接)
1、神經網絡可以通過這兩種機制減少參數,以便我們用更小的訓練集來訓練它,從而預防過擬合。
2、卷積神經網絡善于捕捉平移不變,通過觀察可以發現,像右移動兩個像素,圖片中的貓依舊清晰可見,因為神經網絡的卷積結構,即使移動幾個像素,這張圖依然具有非常相似的特征,應該屬于同樣的輸出標記。
實例分析
為什么進行實例分析?
因為在計算機視覺任務中表現良好的神經網絡框架,往往也適用于其他任務。
LeNet-5:針對灰度圖像訓練的
AlexNet:
VGG-16: 16指這個網絡包含了16個卷積層和全連接層,參數挺多的,但是網絡結構比較規整。
文中揭示了,隨著網絡的加深圖像的高度和寬度都以一定的規律不斷縮小,每次池化后剛好縮小一半。信道的數量在不斷增加,而且剛好也是在每組卷積操作后增加一倍。也就是說,圖像縮小的比例和信道增加的比例是有規律的。
總結
以上是生活随笔為你收集整理的CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019-暑期实习生-自然语言处理算法岗
- 下一篇: 卷积神经网络结构优化综述