# [D15] CNN CNN 是卷積神經網絡(Convolutional Neural Network)的簡稱,在影像辨識的領域中,一定要認識 CNN! ![](https://i.imgur.com/jbc7lHD.png) [圖片出處](https://medium.com/jameslearningnote/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC5-1%E8%AC%9B-%E5%8D%B7%E7%A9%8D%E7%A5%9E%E7%B6%93%E7%B6%B2%E7%B5%A1%E4%BB%8B%E7%B4%B9-convolutional-neural-network-4f8249d65d4f) 如上圖所示,CNN 的概念簡單來說其實就是做"**兩次**"的 Convolution 和 Max pooling,最後再經過兩層 fully Connected layer ,這樣的組合就是 CNN 的架構了~ ### Convolution Layer 卷積層 Convolution 的概念我們上一篇有介紹了,就是將原始圖片透過特定的 filter 做`卷積運算`,出來的結果我們稱為 feature map。 ![](https://i.imgur.com/ajwNrUz.png) [圖片出處](https://medium.com/jameslearningnote/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC5-1%E8%AC%9B-%E5%8D%B7%E7%A9%8D%E7%A5%9E%E7%B6%93%E7%B6%B2%E7%B5%A1%E4%BB%8B%E7%B4%B9-convolutional-neural-network-4f8249d65d4f) ### Pooling Layer 池化層 再來要講的是 pooling ,在 Pooling Layer 通常採用 **`Max Pooling`**,什麼是 Max pooling 呢? 它的概念很簡單:挑出每組矩陣當中的`最大值`!這樣就能提取到影像中每個部分比較重要的特徵,加速收斂並縮小 Feature map 的尺寸! Max Pooling 主要的好處是當圖片整個平移幾個 Pixels時,對影像判斷上完全不會造成影響,以及有很好的抗雜訊功能。 ![](https://i.imgur.com/K8VpmT5.png) [圖片出處](https://cinnamonaitaiwan.medium.com/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-cnn%E5%8E%9F%E7%90%86-keras%E5%AF%A6%E7%8F%BE-432fd9ea4935) ### Fully Connected Layer 全連接層 全連接層的工作就是前面的結果`平坦化`(flatten)後做最後的特徵提取,並且利用最後一層的 FC 當作分類器。也就是說經過幾個卷積層和最大池化層之後,最終的分類是通過全連接層完成的。