卷積神經網絡(Convolutional Neural Networks)概述

卷積神經網絡是人工神經網絡的一種,已成爲當前語音分析和圖像識別領域的研究熱點。它的權值共享網絡結構使之更類似於生物神經網絡,降低了網絡模型的複雜度,減少了權值的數量。該優點在網絡的輸入是多維圖像時表現的更爲明顯,使圖像可以直接作爲網絡的輸入,避免了傳統識別算法中複雜的特徵提取和數據重建過程。卷積網絡是爲識別二維形狀而特殊設計的一個多層感知器,這種網絡結構對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。

CNNs是受早期的延時神經網絡(TDNN的影響。延時神經網絡通過在時間維度上共享權值降低學習複雜度,適用於語音和時間序列信號的處理。         

CNNs是第一個真正成功訓練多層網絡結構的學習算法。它利用空間關係減少需要學習的參數數目以提高一般前向BP算法的訓練性能。CNNs作爲一個深度學習架構提出是爲了最小化數據的預處理要求。在CNN中,圖像的一小部分(局部感受區域)作爲層級結構的最低層的輸入,信息再依次傳輸到不同的層,每層通過一個數字濾波器去獲得觀測數據的最顯著的特徵。這個方法能夠獲取對平移、縮放和旋轉不變的觀測數據的顯著特徵,因爲圖像的局部感受區域允許神經元或者處理單元可以訪問到最基礎的特徵,例如定向邊緣或者角點。

1,卷積神經網絡的網絡結構

 

卷積神經網絡的概念示範:輸入圖像通過和三個可訓練的濾波器和可加偏置進行卷積,濾波過程如上圖,卷積後在C1層產生三個特徵映射圖,然後特徵映射圖中每組的四個像素再進行求和,加權值,加偏置,通過一個Sigmoid函數得到三個S2層的特徵映射圖。這些映射圖再進過濾波得到C3層。這個層級結構再和S2一樣產生S4。最終,這些像素值被光柵化,並連接成一個向量輸入到傳統的神經網絡,得到輸出。一般地,C層爲特徵提取層,每個神經元的輸入與前一層的局部感受野相連,並提取該局部的特徵,一旦該局部特徵被提取後,它與其他特徵間的位置關係也隨之確定下來;S層是特徵映射層,網絡的每個計算層由多個特徵映射組成,每個特徵映射爲一個平面,平面上所有神經元的權值相等。特徵映射結構採用影響函數核小的sigmoid函數作爲卷積網絡的激活函數,使得特徵映射具有位移不變性。

此外,由於一個映射面上的神經元共享權值,因而減少了網絡自由參數的個數,降低了網絡參數選擇的複雜度。卷積神經網絡中的每一個特徵提取層(C-層)都緊跟着一個用來求局部平均與二次提取的計算層(S-層),這種特有的兩次特徵提取結構使網絡在識別時對輸入樣本有較高的畸變容忍能力。

2,工作原理的特別之處——參數減少與權值共享

 

1

     圖1左所示,如果我們有1000x1000像素的圖像,有1百萬個隱層神經元,那麼他們全連接的話(每個隱層神經元都連接圖像的每一個像素點),就有1000x1000x1000000=10^12個連接,也就是10^12個權值參數。然而圖像的空間聯繫是局部的,就像人是通過一個局部的感受野去感受外界圖像一樣,每一個神經元都不需要對全局圖像做感受,每個神經元只感受局部的圖像區域,然後在更高層,將這些感受不同局部的神經元綜合起來就可以得到全局的信息了。這樣,我們就可以減少連接的數目也就是減少神經網絡需要訓練的權值參數的個數了。如圖1右:假如局部感受野是10x10,隱層每個感受野只需要和這10x10的局部圖像相連接,所以1百萬個隱層神經元就只有一億個連接,即10^8個參數,從數量級上來講比原來減少了四個0,這樣訓練起來就沒那麼費力了,但其實還是很多的。

 

2

我們知道,隱含層的每一個神經元都連接10x10個圖像區域,也就是說每一個神經元存在10x10=100個連接權值參數。那如果我們每個神經元這100個參數是相同的呢?也就是說每個神經元用的是同一個卷積核去卷積圖像。這樣我們就只有100個參數,這就是權值共享

權值共享所提取的特徵只有一個,還需要提取多種特徵假如一種濾波器,也就是一種卷積核就是提出圖像的一種特徵,例如某個方向的邊緣。那麼我們需要提取不同的特徵,就需要加多幾種濾波器所以假設我們加到100種濾波器,每種濾波器的參數不一樣,表示它提出輸入圖像的不同特徵,例如不同的邊緣。這樣每種濾波器去卷積圖像就得到對圖像的不同特徵的放映,我們稱之爲Feature Map。所以100種卷積核就有100Feature Map。這100Feature Map就組成了一層神經元。這樣一層就有100種卷積核x每種卷積核共享100個參數=100x100=10K,也就是1萬個參數。2右:不同的顏色表達不同的濾波器。

3

隱層的參數個數和隱層的神經元個數無關,只和濾波器的大小和濾波器種類的多少有關。那麼隱層的神經元個數怎麼確定呢?它和原圖像,也就是輸入的大小(神經元個數)、濾波器的大小和濾波器在圖像中的滑動步長都有關例如,我的圖像是1000x1000像素,而濾波器大小是10x10,假設濾波器沒有重疊,也就是步長爲10,這樣隱層的神經元個數就是(1000x1000 )/ (10x10)=100x100個神經元了。當然,這只是一種濾波器,也就是一個Feature Map的神經元個數哦,如果100Feature Map就是100倍了。由此可見,圖像越大,神經元個數和需要訓練的權值參數個數的差距就越大。

3,訓練算法

    卷積網絡在本質上是一種輸入到輸出的映射,它能夠學習大量的輸入與輸出之間的映射關係,而不需要任何輸入和輸出之間的精確的數學表達式,只要用已知的模式對卷積網絡加以訓練,網絡就具有輸入輸出對之間的映射能力。卷積網絡執行的是有導師訓練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對構成的。所有這些向量對,都應該是來源於網絡即將模擬的系統的實際運行結果。它們可以是從實際運行系統中採集來的。在開始訓練前,所有的權都應該用一些不同的小隨機數進行初始化。小隨機數用來保證網絡不會因權值過大而進入飽和狀態,從而導致訓練失敗;不同用來保證網絡可以正常地學習。實際上,如果用相同的數去初始化權矩陣,則網絡無能力學習。

       訓練算法與傳統的BP算法差不多。主要包括4步,這4步被分爲兩個階段:

第一階段,向前傳播階段:

a)從樣本集中取一個樣本(X,Yp),將X輸入網絡;

b)計算相應的實際輸出Op

      在此階段,信息從輸入層經過逐級的變換,傳送到輸出層。這個過程也是網絡在完成訓練後正常運行時執行的過程。在此過程中,網絡執行的是計算(實際上就是輸入與每層的權值矩陣相點乘,得到最後的輸出結果):

          Op=FnF2F1XpW1W2Wn

第二階段,向後傳播階段

a)算實際輸出Op與相應的理想輸出Yp的差;

b)按極小化誤差的方法反向傳播調整權矩陣。

4,核心思想

卷積網絡的核心思想是將局部感受野、權值共享(或者權值複製)以及時間或空間亞採樣這三種結構思想結合起來獲得了某種程度的位移、尺度、形變不變性。 卷積網絡較一般神經網絡在圖像處理方面有如下優點: a)輸入圖像和網絡的拓撲結構能很好的吻合;b)特徵提取和模式分類同時進行,並同時在訓練中產生;c)權重共享可以減少網絡的訓練參數,使神經網絡結構變得更簡單,適應性更強

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章