卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)是近年來最火的機(jī)器學(xué)習(xí)模型之一,尤其是這兩年大放異彩的Alpha Go,采用的就是CNN模型,這里就簡單介紹一下CNN的基本原理及優(yōu)勢
CNN發(fā)明之初主要用在圖像識別上
圖像的特征識別有三個(gè)特點(diǎn)
1 圖片的特征僅占整個(gè)圖片的一小部分
2 同一個(gè)特征可能出現(xiàn)在圖片的不同地方
3 對圖片二次采樣后得到的圖片與原圖片差別不大(例如取原圖的奇數(shù)行和奇數(shù)列像素組成新的圖片仍與原圖相似)
CNN的結(jié)構(gòu)如下圖所示

由若干個(gè)卷積層(convolution)和池化層(Max Pooling)組成,然后將平坦化后的結(jié)果輸入一個(gè)全聯(lián)接的前饋神經(jīng)網(wǎng)絡(luò)來得到想要的結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)的重點(diǎn)是卷積層,卷積層的作用是進(jìn)行特征識別

如圖所示,右上角的3X3矩陣可以看作是一個(gè)特征,左邊的6X6矩陣可以看作一副黑白圖像,將特征在圖像上以1的步距進(jìn)行覆蓋,每次覆蓋后都將Filter 與圖像做矩陣乘法,最后得到一個(gè)4X4的新矩陣。

Max Poolig 的作用是選取每個(gè)部分最大值組成一個(gè)新的矩陣,比如左圖四個(gè)區(qū)域最大值分別為3,0,3,1,即為新矩陣。

以上兩個(gè)過程可以重復(fù)進(jìn)行,最終將一個(gè)較大的圖片處理成比較小的一個(gè)矩陣。然后使用flatten將矩陣?yán)梢涣?,將其輸入一個(gè)全聯(lián)接的前饋神經(jīng)網(wǎng)絡(luò)中,最后輸出即為我們想要的結(jié)果。