1. 程式人生 > >人工智慧初學- 1.3 卷積神經網路

人工智慧初學- 1.3 卷積神經網路

  • 卷積知識

卷積就是:一個函式(如:單位響應)在另一個函式(如:輸入訊號)上的加權疊加。

這裡寫圖片描述

  • 神經網路(NN)

下面這個是典型的神經網路三層模型:Layer L1是輸入層,Layer L2是隱含層,Layer L3是隱含層

參考下面的部落格可以詳細知道這個模型是如何工作的:

BP 神經網路:

  • 卷積神經網路(CNN)

分為三層:

  • 卷積層(Conv Layer)

舉個例子,現在有一個4*4的影象,我們設計兩個卷積核,看看運用卷積核後圖片會變成什麼樣。

卷積核跟影象內積的過程可以看下面的動圖:

0?wx_fmt=gif

  • 池化層(Pooling Layer)

通過上一層2*2的卷積核操作後,我們將原始影象由4*4的尺寸變為了3*3的一個新的圖片。池化層的主要目的是通過降取樣的方式,在不影響影象質量的情況下,壓縮圖片,減少引數。簡單來說,假設現在設定池化層採用MaxPooling,大小為2*2,步長為1,取每個視窗最大的數值重新,那麼圖片的尺寸就會由3*3變為2*2:(3-2)+1=2。從上例來看,會有如下變換:

池化層神經網路不會改變三維矩陣的深度,但是可以縮小矩陣的大小。

通過池化層可以進一步縮小最後全連線層中節點個數,從而達到減少整個神經網路中引數的目的。

  • 全連線層(Fully Connected Layer)

到這一步,其實我們的一個完整的“卷積部分”就算完成了,如果想要疊加層數,一般也是疊加“Conv-MaxPooing",通過不斷的設計卷積核的尺寸,數量,提取更多的特徵,最後識別不同類別的物體。做完Max Pooling後,我們就會把這些資料“拍平”,丟到Flatten層,然後把Flatten層的output放到full connected Layer裡,採用softmax對其進行分類。

具體的計算例項可以參考下面這篇文章,寫的超級棒: