iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
自我挑戰組

Machine Learning With Me ,從零開始機器學習!系列 第 21

Day 21: Convolutional Neural Networks — 卷積神經網路初探(下)

卷積 Convolution

想像我們有一張用放大鏡掃視,紀錄我們觀察到的重要圖樣的圖像,這是一個很好的卷積如何運作的比喻方式。
這是使用卷積從圖像如何提取重要特徵的步驟:

  1. 將圖片劃分為 kxk像素大小的網格。這被稱作kernel,表示為kxk矩陣
  2. 定義一個或多個與kernel維度相同的有過濾器
  3. 取其中一個通道的第一個kernel (從2D矩陣的左上角開始),使用第一個過濾器進行元素乘法,加上乘法結果。對其他通道執行相同操作,並將全部三個通道的結果相加以獲得新創建特徵的像素值。

https://ithelp.ithome.com.tw/upload/images/20210927/20141566yKpTkpyuP4.png

我們採用kernel大小維3x3的7x7x3圖像。我們有兩組過濾器: W0與W1(展示於紅色)。過濾器W0的偏差值為1,過濾器W1沒有任何偏差值。輸出特徵展示於綠色網格。

https://ithelp.ithome.com.tw/upload/images/20210927/20141566CJASXlbOA0.png

https://ithelp.ithome.com.tw/upload/images/20210927/20141566iq7m9wjyez.png

https://ithelp.ithome.com.tw/upload/images/20210927/20141566T7Wcdwzz1K.png

  • Input image是RGB會有三層 (663)
  • Depth: kernel size為3*3 / channel為3
    幾個fliter就會有幾個feature maps depth就是feature map的堆疊
  • Strife: (左至右或上至下移動的步數)為1
  • Padding: Tensorflow中Valid 也就是不做任何的padding(填充)
    相同格數相乘 不是矩陣乘法

https://ithelp.ithome.com.tw/upload/images/20210927/20141566Cg7s6Vkf6f.png

池化層主要進行 sub sampling 的任務, 如圖所示將 convolution layer 所產生的 feature maps 進行 Max Pooling(或使用 average pooling 也可)而所使用的 stride 為 2, 可看出將 feature maps 由右上角開始取出 2*2 的 metric 中的最大值(左->右, 上->下), 此步驟目的是降低雜訊且減少參數為目標, 可提升 CNN 整體效能及降低計算量, 是不可或缺的過程。


上一篇
Day 20: Convolutional Neural Networks — 卷積神經網路初探(上)
下一篇
Day 22: Recurrent Neural Network — 循環精神網路初探(上)
系列文
Machine Learning With Me ,從零開始機器學習!30

尚未有邦友留言

立即登入留言