卷積神經網絡是近年來發展起來的壹種有效的辨識方法,引起了廣泛的關註。20世紀60年代,Hubel和Wiesel在研究貓皮層中用於局部敏感性和方向選擇的神經元時,發現其獨特的網絡結構可以有效降低反饋神經網絡的復雜度,進而提出了卷積神經網絡(convolutionary Neural Network)
神經的
美國有線電視新聞網)。現在,CNN已經成為許多科學領域,尤其是模式分類領域的研究熱點之壹。由於網絡避免了復雜的圖像預處理,可以直接輸入原始圖像,因此得到了廣泛的應用。
K.Fukushima在1980中提出的新型識別機是第壹個實現卷積神經網絡的網絡。隨後,更多的研究人員改進了該網絡。其中,具有代表性的研究成果是亞歷山大和泰勒提出的“改進的認知機”,它綜合了各種改進方法的優點,避免了耗時的誤差反向傳播。
壹般來說,CNN的基本結構包括兩層,壹層是特征提取層,每個神經元的輸入與前壹層的局部接收域相連,提取局部特征。壹旦局部特征被提取,其與其他特征的位置關系也被確定。第二層是特征映射層。網絡的每個計算層由多個特征圖組成,每個特征圖是壹個平面,平面上所有神經元的權重相等。特征映射結構采用影響函數核較小的sigmoid函數作為卷積網絡的激活函數,使得特征映射位移不變。此外,由於映射平面上的神經元享有權,網絡的自由參數數目減少。卷積神經網絡中的每個卷積層後面都有壹個計算層,用於局部平均和二次提取。次級特征提取的這種獨特結構降低了特征分辨率。
CNN主要用於識別位移、縮放和其他形式的畸變不變的二維圖形。由於CNN的特征檢測層是從訓練數據中學習的,避免了顯示器的特征提取,在使用CNN時是從訓練數據中隱式學習的。再者,由於同壹特征映射平面上神經元的權重相同,網絡可以並行學習,這也是卷積網絡相對於神經元相互連接的網絡的壹大優勢。卷積神經網絡由於其局部權重共享的特殊結構,在語音識別和圖像處理方面具有獨特的優勢。其布局更接近實際的生物神經網絡,權重分擔降低了網絡的復雜度。特別是多維輸入向量的圖像可以直接輸入到網絡中,避免了特征提取和分類過程中數據重構的復雜性。
65438+
首先,介紹了神經網絡。關於此步驟的詳細信息,請參考資源1。簡單介紹壹下。神經網絡的每個單元如下:
相應的公式如下:
其中,這個單元也可以稱為邏輯回歸模型。當多個單元組合在壹起並具有層次結構時,就形成了神經網絡模型。下圖顯示了具有隱藏層的神經網絡。
相應的公式如下:
同樣,可以擴展到2,3,4,5,…隱藏層。
神經網絡的訓練方法也類似於Logistic,但由於其多層性,需要使用鏈導數規則來推導隱層中的節點,即梯度下降+鏈導數規則,專業名稱為反向傳播。關於訓練算法,本文暫且不涉及。
卷積神經網絡
在圖像處理中,圖像常被表示為像素的向量,如壹幅1000×1000的圖像,可以表示為100000的向量。上壹節提到的神經網絡,如果隱層數與輸入層數相同,即1000000,那麽輸入層到隱層的參數數據就是1000000×1000000 = 10 12,這就太多了。所以,要想在圖像處理中實踐神經網絡方法,首先要降低參數,加快速度。就像辟邪的劍譜壹樣。普通人練的很爛。壹旦內力變強,劍法變快,就變得非常牛逼。
2.1局部感知
卷積神經網絡有兩個偽像來減少參數的數量。第壹個偽影叫做局部知覺場。壹般認為,人們對外界的認知是從局部到全局的,圖像的空間聯系也是局部像素較近,而遠處像素的相關性較弱。因此,不需要每個神經元都感知全局圖像,只需要感知局部圖像,然後在更高層次上合成局部信息,得到全局信息。網絡是部分連接的這壹觀點也是受到生物學中視覺系統結構的啟發。視覺皮層的神經元局部接收信息(即這些神經元只對某些區域的刺激有反應)。如下圖所示:左圖為全連接,右圖為本地連接。
右圖中,如果每個神經元只連接了10×10個像素值,那麽權重數據就是100000× 100個參數,縮減為原來的千分之壹。而10個像素值對應的10×10個參數實際上相當於卷積運算。
2.2參數* * *
但其實參數還是太多了,所以啟動二級神器,也就是享受重量* * *。在上面的局部連接中,每個神經元對應100個參數,有***1000000個神經元。如果這100000個神經元的100000個參數全部相等,那麽參數個數就變成100。
如何理解重量的享受?我們可以把這100個參數(也就是卷積運算)看作是提取特征的壹種方式,與位置無關。隱含的原理是圖像的壹部分的統計特征與其他部分的統計特征相同。這也意味著我們在這壹部分學習的特征也可以用在另壹部分,所以我們可以對這個圖像上的所有位置使用相同的學習特征。
更直觀地說,當隨機選取壹個大尺寸圖像的壹小塊作為樣本,比如8×8,從這壹小塊樣本中學習到壹些特征,那麽我們就可以以此為借鑒。
從8×8樣本中學習的特征被用作檢測器,並被應用於該圖像中的任何地方。特別是我們可以用8×8。
將樣本中學習到的特征與原始大尺寸圖像進行卷積,從而可以獲得該大尺寸圖像上任意位置的不同特征的激活值。
如下圖所示,展示了壹個卷積核33對壹個55的圖像進行卷積的過程。每個卷積都是壹種特征提取方法,就像篩子壹樣,把圖像中符合條件的部分過濾掉(激活值越大越符合條件)。
2.3多重卷積核
上面提到的只有100個參數時,說明卷積核只有1個,100*100。顯然,特征提取是不夠的。我們可以增加更多的卷積核,比如32個卷積核,學習32個特征。當有多個卷積核時,如下圖所示:
在右邊,不同的顏色表示不同的卷積核。每個卷積核生成壹個圖像作為另壹個圖像。例如,兩個卷積核可以生成兩個圖像,這兩個圖像可以被視為壹個圖像的不同通道。如下圖所示,下圖有個小錯誤,就是把w1改成了w0,把w2改成了w1。在下文中,它們仍然被稱為w1和w2。
下圖顯示了四個通道上的卷積運算,用兩個卷積核生成兩個通道。應當註意,四個通道中的每壹個都對應於壹個卷積核。首先忽略w2,只看到w1。然後將四個通道上(I,j)處的卷積結果相加,然後取激活函數值,得到w1的某個位置(I,j)處的值。
所以上圖中四通道到兩通道卷積的過程中,參數個數為4×2×2×2,其中4代表四個通道,前2代表生成兩個通道,後2×2代表卷積核大小。
2.4向下匯集
在通過卷積獲得特征之後。
之後,我們希望在下壹步中使用這些特征來做分類。理論上,人們可以使用所有提取的特征來訓練分類器,例如softmax。
分類器,但它面臨著計算的挑戰。例如,對於96X96
像素圖像,假設我們已經學習了在8×8輸入上定義的400個特征,每個特征和圖像卷積會得到壹個(96?8 + 1) × (96 ?8+ 1) = 7921維卷積特征,因為有400個特征,每個例子會得到壹個892×400 = 3168400維的卷積特征向量。學習壹個超過300萬特征輸入的分類器非常不方便,容易出現過擬合。
為了解決這個問題,讓我們回想壹下,我們決定使用卷積特征是因為圖像具有“靜態”屬性,這意味著在壹個圖像區域有用的特征很可能在另壹個區域同樣適用。因此,為了描述大圖像,壹個自然的想法是聚集不同位置的特征的統計。例如,人們可以計算圖像區域中特定特征的平均值(或最大值)。這些摘要統計特征不僅維數低得多(與所有提取的特征相比),而且改善了結果(不易過擬合)。這種聚合操作稱為池化,有時稱為平均池化或最大池化(取決於計算池化的方法)。
至此,卷積神經網絡的基本結構和原理已經闡述完畢。
2.5多層卷積
在實際應用中,經常使用多層卷積,然後用全連通層進行訓練。多層卷積的目的是壹層卷積學習到的特征往往是局部的,層數越高,學習到的特征越全局。
3 ImageNet-2010網絡結構
ImageNetLSVRC是壹個圖片分類競賽,其訓練集包括127W+張圖片,驗證集有5W張圖片,測試集有15W張圖片。本文截取alexkrijevsky 2010的CNN結構進行說明。這個結構2010奪冠,top-5錯誤率15.3%。值得壹提的是,在今年的ImageNetLSVRC比賽中,獲得冠軍的GoogNet已經達到了6.67%的前5名錯誤率。可見深度學習還有巨大的提升空間。
下圖是Alex的CNN結構。需要註意的是,模型采用2-GPU並行結構,即1,2,4,5卷積層都將模型參數分為兩部分進行訓練。這裏,進壹步地,並行結構被分為數據並行和模型並行。數據並行是指在不同的GPU上,模型結構是相同的,但是對訓練數據進行分段,分別訓練不同的模型,然後進行模型融合。在模型並行中,對幾層的模型參數進行分段,在不同的GPU上使用相同的數據進行訓練,得到的結果直接連接作為下壹層的輸入。
上述模型的基本參數是:
輸入:224×224尺寸圖像,3個通道。
第壹層卷積:96個5×5大小的卷積核,每個GPU上48個。
第壹層Max-Pooling: 2× 2內核。
第二層卷積:256個3×3卷積核,每個GPU上128個。
第二層最大池:2× 2內核。
第三層卷積:與上壹層完全連接,384個3*3的卷積核。分為兩個GPU,192。
第四層卷積:有384個3×3卷積核,每個GPU 192。這壹層和上層之間的連接不通過池層。
第五層卷積:256個3×3的卷積核,兩個GPU上128。
第五層Max-Pooling: 2× 2內核。
第壹層全連接:4096維,將第五層max-pooling的輸出連接成壹維向量作為這壹層的輸入。
第二層全連通:4096維度。
Softmax層:輸出是1000,輸出的每壹維都是圖片屬於這個類別的概率。
4 DeepID網絡結構
DeepID網絡結構是香港中文大學孫。
易開發的用於學習面部特征的卷積神經網絡。每個輸入面被表示為160維的向量。用其他模型對學習到的向量進行分類,在人臉驗證實驗中正確率為97.45%。進壹步,原作者對CNN進行改進,得到了99.15%的正確率。
如下圖所示,結構類似於ImageNet的具體參數,只說明不同的部分。
上圖的結構最後只有壹個全連通層,然後是softmax層。本文采用全連通層作為圖像的表示。在全連接層中,第四層卷積和第三層max-pooling的輸出被用作全連接層的輸入,從而可以學習局部和全局特征。