先前有提到的影像辨識,就跟CNN有著非常大的關聯拉。
而什麼是CNN呢?
CNN (Convolutional Neural Network)是運用在影像辨識或是分類的部分。
目前它是深度神經網路的首選發展。CNN一樣是由好幾層的神經層所構,不同於類神經網路的是,並非只有輸入層、隱藏層和輸出層的架構,它的構成有卷積層 (Convolution)、池化層 (Pooling)、Fully connect。
卷積層的用途是提取圖片中的特徵,而非使用pixel的方式。
利用原始圖片和filter做卷積運算,利用sliding windows 和內積運算得到一個feature map,如此一來能夠大大地提升辨識率。
池化層:所做的動作是Max pooling,什麼意思呢?池化層的運算是利用sliding windows的方式去做簡化整個矩陣,像是6x6的矩陣可以利用2x2的矩陣方式取去2x2中的框框中的數字最大值,就會得到5x5的矩陣。
好處是可以依照想要縮小成什麼尺寸的矩陣去做變化,也依然可以保留所要的主要特徵。
Fully connect:就是要將矩陣轉換成一維陣列,就是要將它平坦化,就能開始連接基本上的神經網路,從輸入到隱藏層在輸出。
這邊的東西比較難去理解,因此要好好思考一下。
CNN最重要要知道的就是是利用卷積層去獲取影像特徵的!
參考資料:
https://hackmd.io/@allen108108/rkn-oVGA4
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
https://medium.com/@syshen/%E5%85%A5%E9%96%80%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-2-d694cad7d1e5
https://www.brilliantcode.net/1586/convolutional-neural-networks-2-pooling-layer/