天天看點

CNN卷積神經網絡

一、BP神經網絡回顧

人工全連接配接神經網絡

(1)每相鄰兩層之間的每個神經元之間都是有邊相連的

(2)當輸入層的特征次元變得很高時,這時全連接配接網絡需要訓練

              的參數就會增大很多,計算速度就會變得很慢

傳統神經網絡存在的問題:

(1)權值太多,計算量太大

(2)權值太多,需要大量樣本進行訓練

二、CNN卷積神經網絡

1、CNN的主要概述

卷積層的神經元隻與前一層的部分神經元節點相連,即它的神經元間的連接配接是非全連接配接的,且同一層中某些神經元之間的連接配接的權重w和偏置b是共享的(即相同的)

      大量地減少了需要訓練參數的數量

CNN主要特點:減少權值,局部連接配接,權值共享

CNN通過感受野和權值共享減少了神經網絡需要訓練的參數的個數。

2、CNN的一般結構

輸入層:用于資料的輸入

卷積層:使用卷積核進行特征提取和特征映射

激勵層:由于卷積也是一種線性運算,是以需要增加非線性映射

池化層:壓縮資料和參數的量,減小過拟合。

全連接配接層:通常在CNN的尾部進行重新拟合,減少特征資訊的損失

輸出層:用于輸出結果

(1)輸入層

在CNN的輸入層中,(圖檔)資料輸入的格式與全連接配接神經網絡的輸入格式(一維向量)不太一樣。CNN的輸入層的輸入格式保留了圖檔本身的結構。

對于黑白的 28×28 的圖檔,CNN的輸入是一個28×28 的的二維神經元;

對于RGB格式的28×28圖檔,CNN的輸入則是一個 3×28×28 的三維神經元(RGB中的每一個顔色通道都有一個 28×28 的矩陣),如下圖所示:

(2)卷積層

需要明确的幾個概念:

感受視野( local receptive fields)

    即感受上一層的部分特征。在卷積神經網絡中,隐藏層中的神經元的感受視野比較小,隻能看到上一次的部分特征,上一層的其他特征可以通過平移感受視野來得到同一層的其他神經元。

卷積核

    感受視野中的權重矩陣

共享權值(shared weights)

步長(stride)

    感受視野對輸入的掃描間隔稱為步長(stride)

邊界擴充(pad)

     當步長比較大時(stride>1),為了掃描到邊緣的一些特征,感受視野可能會“出界”,這時需要對邊界擴充(pad)

特征映射圖(feature map)

     通過一個帶有卷積核的感受視野 掃描生成的下一層神經元矩陣 稱為一個特征映射圖(feature map)

通過以下圖了解以上概念及卷積計算

(3)激勵層

激勵層主要對卷積層的輸出進行一個非線性映射,因為卷積層的計算還是一種線性計算。使用的激勵函數一般為ReLu函數

      卷積層和激勵層通常合并在一起稱為“卷積層”。

(4)池化層

當輸入經過卷積層時,若感受視野比較小,布長stride比較小,得到的feature map(特征映射圖)還是比較大,可以通過池化層來對每一個feature map進行降維操作,輸出的深度還是不變的,依然為feature map的個數。

池化層也有一個“池化視野(filter)”來對feature map矩陣進行掃描,對“池化視野”中的矩陣值進行計算,一般有兩種計算方式:

   (1)Max pooling:取“池化視野”矩陣中的最大值

   (2)Average pooling:取“池化視野”矩陣中的平均值

(5)全連接配接層和輸出層

全連接配接層主要對特征進行重新拟合,減少特征資訊的丢失。

輸出層主要準備做好最後目标結果的輸出。

(6)中間還可以使用其他的功能層

歸一化層(Batch Normalization):在CNN中對特征的歸一化

  切分層:對某些(圖檔)資料的進行分區域的單獨學習

  融合層:對獨立進行特征學習的分支進行融合

CNN卷積神經網絡實作Mnist資料集:

https://blog.csdn.net/asialee_bird/article/details/80460801

參考部落格資料:

1、

https://blog.csdn.net/cxmscb/article/details/71023576

2、

https://blog.csdn.net/xierhacker/article/details/53463525

3、

https://www.cnblogs.com/skyfsm/p/6790245.html

繼續閱讀