《TensorFlow:實戰Google深度學習框架》——6.2 卷積神經網路簡介(卷積神經網路的基本網路結構及其與全連線神經網路的差異)
下圖為全連線神經網路與卷積神經網路的結構對比圖:
由上圖來分析兩者的差異:
全連線神經網路與卷積網路相同點 | 全連線神經網路與卷積網路不同點 |
兩者都是通過一層一層節點組織起來的,且每一個節點都是一個神經元 | 全連線神經網路: 卷積神經網路:相鄰兩層之間只有部分節點相連 |
兩者輸入輸出及訓練流程相同 |
卷積神經網路的優點:
全連線神經網路處理影象的最大問題在於全連線層的引數太多。對於MNIST資料,每一張圖片的大小是28×28× 1,其中28 ×28 為圖片的大小,× 1表示影象是黑白的,只有一個色彩通道。假設第一層隱藏層的節點數為 500 個,那麼一個全連結層的州經網路將有 28×28 ×500+500=392500 個引數。當圖片更大時,比如在CIFAR-10資料集中,圖片的大小為32 ×32×3,其中 32×32表示圖片的大小,×3表示圖片是通過紅綠藍三個色彩通道( channel)表示的。這樣輸入層就有3072個節點,如果第一層全連線層仍然是500個節點,那麼這一層全連結神經網路將有 3072x500+500≈150萬個引數。引數增多會導致計算速度減慢
,以及存在過擬合問題。卷積網路就能夠解決這些問題。
下圖是一個更加具體的卷積神經網路架構圖:
由上圖來分析一個卷積神經網路主要由以下5種結構組成:
1.輸入層:輸入層是整個神經網路的輸入,在處理影象的卷積神經網路中,它一般代表了一張圖片的畫素矩陣。比如在圖 6-7中,最左側的三維矩陣就可以代表一張圖片其中三維矩陣的長和寬代表了影象的大小,而三維矩陣的深度代表了影象的色彩通道(channel)。比如黑白圖片的深度為1,而在RGB色彩模式下,影象的深度為3。從輸入層開始,卷積神經網路通過不同的神經網路結構將上一層的三維矩陣轉化為下一層的三維矩陣,直到最後的全連線層。
2.卷積層:
3.池化層(Pooling):池化層神經網路不會改變三維矩陣的深度,但是它可以縮小矩陣的大小。池化操作可以認為是將一張解析度較高的圖片轉化為解析度較低的圖片。通過池化層,可以進一步縮小最後全連線層中節點的個數,從而達到減少整個神經網路中引數的目的。
4. 全連線層:如圖 6-7所示,在經過多輪卷積層和池化層的處理之後,在卷積神經網路的最後一般會是由1到2個全連線層來給出最後的分類結果。經過幾輪卷積層和池化層的處理之後,可以認為影象中的資訊已經被抽象成了資訊含量更高的特徵。我們可以將卷積層和池化層看成自動影象特徵提取的過程。在特徵提取完成之後,仍然需要使用全連線層來完成分類任務。
5. Softmax層:Softmax層主要用於分類問題。通過Softmax層,可以得到當前樣例屬於不同種類的概率分佈情況。