ML Lecture 10: Convolutional Neural Network
CNN全名叫做 Convolutional Neural Network 卷積神經網路。因為他在一般NN之前加入了一些特殊的 layer,這些layer的運算方式類似於卷積(convolution)的運算,固取名為 Convolutional Neural Network
CNN通常被用來做影像處理
其實一般的 NN (或稱DNN, Deep NN, 因為全是fully connected) 也可以做影像處理:
train 一個 NN,input 是一張圖片,用一個vector表達所有pixel。假設要分成1000個class,output就用1000個neuron。
而在這個NN裡面,我們會期待每一個neuron都是一個基本的classifier,而根據文獻,實際上確實如此,例如第一層的neuron是一個最簡單的classifier,可以用來區別是不是橘色?是不是綠色?有沒有線條?之類。第二層則根據第一層hidden layer的結果,做更複雜的事情,例如某些材質。
但問題是,如果用一般的NN做的話,往往一張圖片會要用到太多的參數:例如一張100100的彩色照片,他的input會是一個 100100*3 (RGB, 又稱3個channel) = 3萬維 的向量,假設第一層hidden layer只有1000個neuron ,光 input+第一層hidden layer就有3000萬個參數了(容易overfitting)
因次,我們希望利用用其他知識,來簡化這個NN的架構,所以其實CNN比一般的NN還簡單
我們對照片的觀察,可以得出三個結論: