卷積神經網路Convolutional Neural Networks簡稱CNN是現今熱門的深度學習,可以用來處理圖片、影片、音訊、自然語言...等,是類神經網路的主力。
1.MLP(多元感知器)和CNN(卷積)的差別:
CNN比MLP多了卷積層和池化層。在MLP中,圖片經過預處理後會進入輸入層然後在進隱藏層。而CNN在進入類似MLP的全連結層(fully connected layers)之前會先將圖片進行卷積和池化...等處理,沒有輸入層,而是平坦層,隱藏層,輸入層。
2.卷積convolution
卷積在功用就是將影像進行處理,讓他特徵被記錄下來,處理的方法為下。
最右邊的圖最左上角的值為0.77是 的結果。
中間那個稱為filter weight,可以看到與filter相同的位置會變成1相反的會變成-1其餘的小數點越接近1代表相似度越高。進行這樣小區塊的運算處理可以將圖片中每個區塊的特徵都被記錄下來,這樣做的好處是假使我們想要辨識的物體不再圖片的正中央,或是我們想要辨識的物體歪歪的也能被辨識出來。
3.池化Pooling
池化的功能是縮小圖片,方法如下。
可以看到他從圖片最左上角的四個數字取一個最大值,這樣的方法可以將圖片縮小為原本的四分之一。
4.線性整流單元Rectified Linear Unit,ReLU
將所有負值轉換成零,可以避免卷積的過程將數字變成無限大或是趨近於0。
5.全連接層fully connected layers
類似MLP,順序為,平坦層,隱藏層,輸出層。
平坦層(Flattern Layer):
將處理好的資料打平一維陣列後送進隱藏層和輸出層。
可以轉換成類似圖片辨識那樣的形式就能使用CNN。相反的如果將資訊轉換成行列,而且他們的順序被隨意改變不影響資料帶來的資訊的話,就不能使用CNN。
資料來源:
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_convolutional_neural_networks_work.html (這篇在解釋的時候使用的中文語法讓我看不是很懂,這篇文章打完我才發現原來他是在翻譯別的文章難怪用詞很詭異)
https://blog.csdn.net/qq_39521554/article/details/81385159
https://medium.com/@syshen/入門深度學習-2-d694cad7d1e5 (我覺得這篇滿好懂的可以看看)
TensorFlow+Keras深度學習人工智慧實務應用(書)