卷積神經網路 學習筆記(1)

2021-10-01 07:01:48 字數 1700 閱讀 6115

卷積神經網路是一種以影象識別為中心的多個領域都得到廣泛應用的深度學習方法。

本章將介紹卷積神經網路的結構,以及每層的訓練方法。此外,還會介紹訓練時需要設定的引數種類,以及不同引數設定方法所引起的效能差異。

卷積神經網路基於人類視皮層中感受野的結構得到的模型,由輸入層、卷積層、池化層、全連線層和輸出層組成。通過增加卷積層和池化層,還可以得到更深層次的網路,其後的全連線層也可以採用多層結構。

接下來,我們就來介紹一下卷積神經網路的結構以及每一層的訓練方法。

卷積神經網路中的卷積操作可以看作是輸入樣本和卷積核的內積運算。

在第一層卷積層對輸入樣本進行卷積操作後,就可以得到特徵圖。卷積層中是使用同一卷積核對每個輸入樣本進行卷積操作的。

在第二層及其以後的卷積層,把前一層的特徵圖作為輸入資料,同樣進行卷積操作。

對10×10的輸入樣本使用3×3的卷積核進行卷積操作後,可以得到乙個8×8的特徵圖。特徵圖的尺寸會小於輸入樣本,為了得到和原始輸入樣本大小相同的特徵圖,可以採用對輸入樣本進行填充處理後再進行卷積操作的方法。零填充指的就是用0填充輸入樣本的邊界,填充大小為p=(f-1)/2,其中f為卷積核尺寸。

我們可以設定卷積核的滑動步長,步長越大特徵圖越小。另外,卷積結果不能直接作為特徵圖,需通過啟用函式計算後,把函式輸出結果作為特徵圖。乙個卷積層中可以有多個不同的卷積核,而每乙個卷積核都對應乙個特徵圖。

當卷積層的輸入樣本是三通道的彩色影象時,卷積核是三維的3×m×m,m表示卷積核大小。第二層及其以後的卷積層的輸入是上一次的特徵圖,而特徵圖的個數是由上一層的卷積核數決定的。例如,當上乙個卷積核數為8時,就會得到8個特徵圖作為下一層的輸入,所以下一層需要8個三維的8×m×m卷積核。

池化層的作用是減小卷積層產生的特徵圖的尺寸。選取乙個區域,根據該區域的特徵圖得到新的特徵圖,這個過程就稱為池化操作。

對乙個2×2的區域進行池化操作後,得到的新特徵圖會被壓縮為原來尺寸的1/4。 池化操作降低了特徵圖的維度,使得特徵表示對輸入資料的位置變化具有穩健性。常用方法有最大池化、平均池化和lp池化。

和多層感知機一樣,全連線層也是首先計算啟用值,然後通過啟用函式計算各單元的輸出值。啟用函式包括sigmoid、tanh、relu等函式。由於全連線層的輸入就是卷積層或池化層的輸出,是二維的特徵圖,所以需要對二維特徵圖進行降維處理。

和多層感知機的輸出層一樣,卷積神經網路的輸出層也是使用似然函式計算各類別的似然概率。

卷積神經網路出現後,首先被應用在了手寫體字元分類上。手寫字元識別用到的是0到9這10個數字,所以共有10個輸出單元。每個單元對應乙個類別,使用softmax函式可以計算輸出單元的似然概率,然後把概率最大的數字作為分類結果輸出。

卷積神經網路的引數包括卷積層的卷積核大小、全連線層的連線權重和偏置值。和多層神經網路一樣,卷積神經網路中的引數訓練也是使用誤差反向傳播演算法。

池化層的誤差傳播:先把池化層改寫成全連線層的形式。最大池化時,誤差只在啟用值最大的單元傳播。在反覆調整連線權重的過程中,啟用值最大的單元也有可能出現在其他位置,屆時就只調整其它單元的連線權重。

卷積層的誤差傳播:把卷積層改寫為全連線層的形式;計算所有單元的連線權重調整值;累積所有單元的連線權重調整值,即可得到最終的調整值。

在卷積神經網路中,有大量需要預設的引數。與神經網路有關的主要引數如下所示。

卷積層的卷積核大小、卷積核個數

與訓練有關的引數如下所示:

最理想的狀態就是從這些組合中選擇最優的組合進行訓練,但是由於組合數過於龐大,所以設定引數時,只能根據以往的研究和經驗,不斷摸索更優化的組合。

卷積神經網路(1)

卷積神經網路作為一種置換了傳統網路中隱藏層的可自動提取樣本特徵的技術,具有較高的識別率。本文利用dlib與tensorflow平台實現了卷積神經網路人臉識別。結果準確率達到了0.984,取的了較為理想的結果。人臉識別是通過提取人的臉部特徵資訊進行身份識別的一種技術。目前,卷積神經網路在人臉識別上具有...

機器學習筆記22 神經網路 卷積神經網路

參考資料 面向機器智慧型的tensorflow實踐 keras example mnist cnn.py keras中文文件 常用層卷積層 卷積理解就是之前影象處理裡用作檢測邊緣 檢測角點的運算元,例如 輸入 12 34 begin 1 2 3 4 end 13 24 核 2 begin 2 end...

卷積神經網路筆記

一 卷積神經網路基礎 cnn是一種空間上共享引數的神經網路,它通過正向和反向傳播,自己學習識別物體。它可能有幾層網路構成,第一層是抽象層次的最底層,cnn一般把中的較小的部分識別成簡單的形狀,下一層將會上公升到更高的抽象層次,一般會識別更複雜的概念,以此類推,直至識別整個物體。cnn的學習方式 層次...