深度學習筆記(6):卷積神經網路CNN

點陣圖分為兩種:
黑白圖: 0~255的灰階值
彩色圖: RGB三個值的範圍分別是0~255。(黑色是0,0,0)、(白色是255,255,255)、紅色是(255,0,0)

卷積運算和池化運算

卷積運算:輸入圖片->過濾器(進行元素相乘加總)->特徵圖(計算出數值)

池化運算:壓縮和保留特徵圖得重要資訊(會壓縮特徵圖尺寸)

卷積神經網路CNN

輸入層->卷積層->池化層->卷積層->池化層->全連接層(隱藏層)->輸出層。

詳細流程:

輸入->卷積->啟動函數->特徵圖->池化->特徵圖->平坦化(將全部特徵圖的矩陣轉換成向量)->全連接層->輸出層。

CNN學的就是卷積層的權重(過濾器),使用亂數初始過濾器的矩陣內容,然後用正向傳播和反向傳播學習權重後,過濾器可以自動辨識出圖片所需萃取的特徵。

池化層的目的是壓縮特徵圖來提取最強的特徵,將特徵更明顯的顯示出來。池化運算會縮小特徵圖的尺寸,如同將CNN的視野拉遠,一開始只看到局部的點、線、角,最後拉大視野,看到全域特徵。

CNN的輸入層、輸出層和全連接層與MLP多層感知器相同,主要差異在於卷積層和池化層

卷積層學會局部後,就可以辨識出現在不同位置的圖片;全連接層則是不同位置,都必須重新學習。

權重共享指的是每一個局部連接神經元都使用相同權重。

Stride(步幅):圖片從左至右、從上至下使用過濾器窗格的方框掃過圖片執行運算,移動速度為每次一個像素時

Zero Padding(補零):卷積運算後,圖片會越來越小,而且還會損失資料周圍的資訊。可在圖片外圍補零,即可讓輸入與輸出的圖片尺寸相同。

Dropout層:在步新增訓練資料的情況下,對抗Overfitting的方法。隨機選擇10~80%之間的輸入資料,將數值設為0。有點像是銀行櫃檯常常在換人,避免產生共犯結構,進而出現金融犯罪。Dropout就是在打斷多個神經元之間的共適性,建立出泛化性更佳的預測模型。

卷積神經網路考量的幾個要點:

  1. 每一層卷積層需要幾個過濾器?過濾器尺寸為何?卷積運算是否需要補零?步輻需要多大?
  2. 每一層池化層的窗格大小為何?需要間隔幾個元素來壓縮特徵圖?
  3. 每一層Dropout層輸出隨機歸零的百分比是多少?

MLP學到的是全域Pattern;CNN學到的是局部Pattern。

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store