卷積神經網路(Convolutional Neural Network,CNN)指一種利用卷積(Convolution)與池化(Pooling)技術來分別有效的「提取影像特徵」及「壓縮降低特徵維度」的一種深度學習神經網路。主要組成分為輸入層(Input Layer)、卷積層(Convolution)、池化層(Pooling Layer)、全連接層(Fully Connected Layer)及輸出層(Output Layer)五種網路架構。
傳統全連接(Fully Connected, FC)的深度學習
濾鏡的利用與訓練
濾鏡的運用:CNN利用二維的各種濾鏡去掃描圖像內的物件,去偵測其是否存在某些特定的特徵,如圖,不同的濾鏡具備不同的特徵,偵測直線、斜線等等,當濾鏡掃描到某一個區塊時會比對這一區塊所包含特徵與自己是否吻合。吻合程度越高,則物件是此類別的機率越高,反之則越低。
濾鏡的訓練:在CNN上,濾鏡則是由機器在掃描過數十萬張人臉的相片後,其自行會經由不斷的試誤,歸納出能辨人臉的各種層次不同之濾鏡。例:底層是較簡單的偵測線條、邊緣、輪廓等濾鏡。到中層濾鏡進化到各種不同的形狀,到了高層的濾鏡則進化到更複雜的人臉五官。剛開始訓練時CNN會錯誤百出,在經由深度學習特有的反向傳播機制和梯度下降法,不斷糾正錯誤,調整內部的函數,直到CNN能自己設計出辨識人臉的各種濾鏡。
濾鏡的運作、卷積的演算:卷積到運算就是兩個矩陣的內積合(Dot Product),其最主要之功用為當濾鏡掃描到原始圖像的某個區域時,如發現到與濾鏡有相同特徵的區塊時,則其卷積輸出的數值會很大,如果沒有對應到相同特徵,則卷積運算的特徵值會很小,正因為這種特質,所以CNN就會以各種不同的卷積濾鏡或稱之為卷積核(Convolution Kernel)來作為網路核心架構。而利用卷積核來擷取特徵的這一層神經網路稱之為卷積層(Convolution Layer)。
特徵圖
原始圖像透過不同的卷積核,在全圖一步步掃描過後,兩個矩陣的運算結果,會映射到新的一個多維空間,ㄍ這個空間會表示圖內有哪些地方有圖形的特徵存在,這個新的空間就稱為特徵圖(Feature Map)。
池化層
指CNN透過降維將卷積後的特徵圖進行壓縮,用更抽象的特徵來代表原來的特徵,並以此來簡化後續運算的複雜度的一種演算法。池化方法可以用一下幾種方法來找代表性的特徵值:
參考資料
人工資料-概念應用與管理 林東清 著