《續(xù)》
第2章 神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡
隨著科學技術的不斷發(fā)展,深度學習技術的應用領域在不斷擴大,與此相關的研究不斷深入,一些新的方法和理論也源源不斷的被提出來。深度學習技術的主要優(yōu)點表現(xiàn)為對復雜的分類問題可以進行更好的泛化分析處理。而在計算機處理復雜數(shù)據(jù)信息能力提高的形勢下,這種方法的優(yōu)勢開始明顯的表現(xiàn)出來,并且效果明顯好于支持向量機等淺層學習算法,深度學習技術是在傳統(tǒng)的人工神經(jīng)網(wǎng)絡方法基礎上發(fā)展起來的,目前已經(jīng)形成了完整的理論,而在神經(jīng)網(wǎng)絡領域的發(fā)展下這種方法也在不斷發(fā)展。卷積神經(jīng)網(wǎng)絡和神經(jīng)網(wǎng)絡技術存在著密切的關系,CNN的出現(xiàn)顯著擴大了深度學習理論的應用領域,目前CNN模型已經(jīng)可以模擬復雜的神經(jīng)元體系和網(wǎng)絡,在探索神經(jīng)元與人體神經(jīng)元機理方面也表現(xiàn)出一定的應用價值,為未來全面化的智能化發(fā)展奠定了良好的基礎。
2.1 神經(jīng)網(wǎng)絡的原理
神經(jīng)網(wǎng)絡中最基本的單元是神經(jīng)元,在神經(jīng)網(wǎng)絡的組成中,單個神經(jīng)元與其他部分神經(jīng)元相連,當進入興奮狀態(tài)時就可以向其連接的神經(jīng)元發(fā)送信號,并且可以改變后者的電位;如果某神經(jīng)元的電位高于閾值,則會處于興奮狀態(tài)并向與其連接的神經(jīng)元發(fā)送信號,實現(xiàn)神經(jīng)網(wǎng)絡中信號的傳播。1943年生物學家McCulloch利用模型對神經(jīng)元的這種特性進行了研究,在其建立的模型中,神經(jīng)元接收到來自n個其他神經(jīng)元發(fā)送的信號,這些輸入的信號根據(jù)一定的權重進行連接和傳遞,然后對比閾值和神經(jīng)元接收到的總輸入值,通過“激活函數(shù)”處理而輸出信號。
如圖2.1所示,這是一個簡化的人工神經(jīng)元,其具有多個輸入信號,而經(jīng)過神經(jīng)元處理后,將發(fā)出一個判斷結果(表示其通過輸入信號產(chǎn)生的“興奮”程度)表現(xiàn)出多輸入單輸出的特征。

圖 2.1 單個神經(jīng)元
對應的公式如(2.1):

這種模型也就是Logistic回歸模型,一定數(shù)量的單元通過這種模式組合起來而形成分層結構,就會得到所需的神經(jīng)網(wǎng)絡模型。感知機中包含了兩層神經(jīng)元,其中輸出層是M-P神經(jīng)元,可以接收輸入層發(fā)送的信號。根據(jù)實際使用結果表明,這種只擁有一層功能神經(jīng)元的感知機可以方便地實現(xiàn)邏輯與、或、非運算。在處理過程中學習能力較弱的原因主要和其神經(jīng)元層數(shù)不多有關。感知機雖然結構簡單,但是其重要的性能之一就是可分辨輸出信號,且可以促進相應信號的傳遞和反饋,因而表現(xiàn)出很高的應用價值。
多個神經(jīng)元相互之間構成神經(jīng)網(wǎng)絡,且網(wǎng)絡中神經(jīng)元之間保持了一定的非線性相關關系。具有多層功能的神經(jīng)元可以用來進行復雜問題的求解,例如在異構問題的求解過程中,簡單的兩層感知機就可以滿足要求。在更復雜問題的處理過程中先要梳理清楚神經(jīng)元的脈絡,然后確定相應的輸入輸出關系。對于問題的進一步復雜化,對神經(jīng)元的需求更大,故產(chǎn)生了在輸入層與輸出層之間添加一層或多層神經(jīng)元的關系模型。這種關系模型中中間添加的神經(jīng)元叫做隱含層,隱含層和輸出層神經(jīng)元和激活函數(shù)存在一定的相關性。具有一個隱含層的神經(jīng)網(wǎng)絡結構如圖2.2所示。

圖2.2 簡單的多層網(wǎng)絡模型
其表達式如(2.2):
hw,b(x)=a1(3)=f(w11(2)a1(2)+w12(2)a2(2)+w13(2)a3(2)+b1(2) ) (2.2)
其中 a1(2)、a2(2)如以下兩式所示:
a1(2)=f(w11(1)X1+w12(1)x2+w13(1)x3+b1(1)) (2.3)
a2(2)=f(w21(1)x1+w22(1)X2+w23(1)X3+b2(1) (2.4)
據(jù)上文類推,可以進一步實現(xiàn)包含很多隱含層的網(wǎng)絡模型。
2.2 卷積神經(jīng)網(wǎng)絡
深度學習是在人工神經(jīng)網(wǎng)絡的基礎上發(fā)展探索而來的,目前在很多領域得到廣泛的應用。這種技術可以對低層特征進行組合,進而確定出相應的分布特征,從而在此基礎上建立起復雜的屬性類別。這種學習可以具體劃分為監(jiān)督學習方法和無監(jiān)督學習方法兩類,第一種學習方法的學習性能更高但可能存在一些局限性。深度學習模型有很多類型,常見的如卷積神經(jīng)網(wǎng)絡、深度置信網(wǎng)絡、和堆棧自編碼網(wǎng)絡等。其中目前應用頻率最高的為卷積神經(jīng)網(wǎng)絡(CNN),這種網(wǎng)絡最早是為識別圖片中的物體形狀而設計的,網(wǎng)絡結構的主要特點表現(xiàn)為對圖片平移、比例縮放等操作可以保持特征不變。CNN網(wǎng)絡模型是在傳統(tǒng)的概念模型基礎上發(fā)展起來的。早在1962年威爾斯進行了貓視覺皮層細胞的研究,分析并構建出了相應的模型;而到80年代日本學者斯科特從感受野概念進行發(fā)展,提出了神經(jīng)認知機模型的概念,隨后與此相關的模型也不斷的被建立起來。
2.2.1 CNN的基本思想
卷積神經(jīng)網(wǎng)絡(CNN)是對貓大腦中視覺皮層的結構研究改進而發(fā)展起來的,可以將其看作為基于監(jiān)督學習的深層神經(jīng)網(wǎng)絡中的一類,其特點是可以實現(xiàn)以下兩方面的功能:一是稀疏連接;二是權值共享是指在CNN網(wǎng)絡中一些神經(jīng)元連接的權重是可以共享的。在這些功能的促進作用下,卷積神經(jīng)網(wǎng)絡的結構也表現(xiàn)出復雜的特征,和實際的生物神經(jīng)網(wǎng)絡產(chǎn)生了很高的相似性。由于權值共享,網(wǎng)絡中大大減少了權值數(shù)量,與此同時相應的網(wǎng)絡模型的復雜度也明顯的降低。另外,CNN對多維圖像也有很好的處理效果,圖像可以直接作為網(wǎng)絡的輸入,這樣就不存在相應的特征提取問題,處理過程也明顯的簡化。由于卷積神經(jīng)網(wǎng)絡的網(wǎng)絡結構與特點和生物神經(jīng)網(wǎng)絡的高度類似,其在語音、圖像及語義等領域的識別功能方面較相關傳統(tǒng)方法表現(xiàn)出了很大的優(yōu)勢。
卷積神經(jīng)網(wǎng)絡與普通神經(jīng)網(wǎng)絡有明顯的差異,具體表現(xiàn)為前者包含了卷積層和子采樣層構成的特征抽取器。在卷積神經(jīng)網(wǎng)絡的卷積層中,一個神經(jīng)元連接的鄰層神經(jīng)元數(shù)量是有限的。在CNN結構對應的卷積層中,一般會存在很多的特征平面,而各平面中包含很多的神經(jīng)元,在同一個平面中神經(jīng)元可以共享權值,這就是卷積核。卷積核在初始化時一般選擇小數(shù)矩陣模式,在訓練過程中,卷積核可以得到一定優(yōu)化的權值。共享權值的優(yōu)點表現(xiàn)為可以明顯的降低網(wǎng)絡各層之間的連接,并合理的控制擬合水平。
卷積神經(jīng)網(wǎng)絡具體劃分為三部分,分別是輸入層、卷積層和池化層,以及對應的感知機分類器,網(wǎng)絡在進行特征提取過程中,要用到相應的卷積層和子釆樣層。為了提高網(wǎng)絡識別的精度,一般要進行誤差梯度設計和一定的迭代操作。以下為卷積神經(jīng)網(wǎng)絡的三個主要特點。
(1)局部區(qū)域感知
在卷積神經(jīng)網(wǎng)絡中,輸入一定量的采樣數(shù)據(jù)之后,網(wǎng)絡將圖像按像素點的灰度值進行處理,輸入的數(shù)據(jù)會被劃分成較小的局部區(qū)域,然后在這些小區(qū)域中提取圖像的原始視覺特征。這類特征的種類主要包括物體的特殊點、邊緣以及拐角等,可以根據(jù)這些特征進行圖形識別。卷積神經(jīng)網(wǎng)絡將圖片特征處理轉(zhuǎn)化為信號時,這種網(wǎng)絡的其他層對這些初級特征進行組合處理,確定出一些復雜的高層的特征。兩層之間在連接過程中采用了局部連接方式,在這樣的連接模式下,相鄰每一層的神經(jīng)元節(jié)點將僅其臨近的上層神經(jīng)元節(jié)點連接,這樣網(wǎng)絡的參數(shù)規(guī)模大幅度的降低,對進一步研究和學習概念構建過程提供了可靠的支持。局部感知野是卷積神經(jīng)網(wǎng)絡降低網(wǎng)絡參數(shù)數(shù)量的主要工具之一。通常情況下圖像局部的像素聯(lián)系較為緊密,兩個像素間的距離較遠,則其對應的相關性則較弱。在此情況下各神經(jīng)元在識別過程中,可以不必對全局圖像進行感知,對小范圍的圖像局部感知之后,更高層將局部的信息進行綜合而確定出總體的信息。網(wǎng)絡部分的連通模型也是基于視覺系統(tǒng)結構而形成的,而這種模式下,利用單個神經(jīng)元連接少數(shù)像素值的方法,令神經(jīng)元可以高效的接受局部的信息,且在工作過程中只對某些特定區(qū)域的刺激進行響應。在此連接模式下相應的權值數(shù)據(jù)明顯低于傳統(tǒng)方法的權重數(shù)據(jù)量,而這種操作也稱為卷積操作。
需要對一個大尺寸圖像進行特征提取時,先對此圖像進行區(qū)域劃分,而得到一定數(shù)量的小區(qū)域,選擇其中一個8×8尺寸的小圖像作為樣本,利用其圖像進行學習,發(fā)現(xiàn)圖像的特征信息,利用在此基礎上學習到的特征作為探測器,然后在其他的區(qū)域通過此探測器進行處理。整體大尺寸圖像通過小圖像所得的特征進行遍歷,通過卷積對圖像各個部位進行運算而確定出對應的特征激活值。
如圖2.3所示,此圖反映了利用尺寸為3×3的卷積核對尺寸為5×5的圖像進行卷積運算的原理,特征提取方法和各個獨立的卷積運算是一一對應的關系,利用卷積運算可以將圖像中符合條件的區(qū)域通過此特征篩選出來。

圖2.3 卷積運算原理
?。?)權重共享
在某些應用情況中,在經(jīng)過局部感知后存在參數(shù)仍然過多的情況。針對這些情況通過權值共享的方法進一步地降低參數(shù)量。在局部連接過程中,假定每個神經(jīng)元對應了一百個參數(shù),神經(jīng)元總數(shù)為106個,導致系統(tǒng)中總的參數(shù)量十分巨大;若這些神經(jīng)元的參數(shù)保持一致,則網(wǎng)絡中的參數(shù)量將極為顯著地縮減。
權值共享處理過程中,將一百種對應不同卷積核的卷積操作對應于特征的提取,而這種操作和位置。在此過程中依據(jù)如下原理,圖像的某些部分的統(tǒng)計學特性與其他部分不存在差異,可以對不同部分學習的特征進行共享。而在第一層的卷積神經(jīng)網(wǎng)絡后,下一層網(wǎng)絡中的神經(jīng)元數(shù)量明顯的減少,相應的運算量也大幅度減少,可以通過權重一樣的特征來有效的降低運算量,其中各圖像上的位置應用到的學習特征也保持一致。
在卷積神經(jīng)網(wǎng)絡處理圖像的過程中,各卷積濾波器重復的處理輸入的數(shù)據(jù),對全部輸入圖像內(nèi)容進行卷積。所得結果進行處理之后就可以確定出輸入圖像的特征圖,從而提取出目標圖像的特征信息。而在此處理過程中,各卷積濾波器對其中的一些偏置項共享,在輸出后輸入圖像的平移變化保持一致,這樣既可以使權重共享大幅減少,還可以明顯的減少訓練樣本的需求,為圖像處理提供了便利。
?。?)子采樣
CNN的主要組成架構之一為子采樣。在卷積神經(jīng)運行期間,一般要先進行子采樣,再進一步劃分為均值子采樣和最大值子采樣兩類,兩種子采樣方法下文會詳細介紹。子采樣過程中要進行一定的卷積操作,通過這種采樣可以明顯的降低模型復雜度,提高運算效率。
在獲取圖像的卷積特征后,通過相關方法對卷積特征降維處理,在此過程中要用到子采樣的方法。將卷積特征劃分為一定數(shù)量的不相交區(qū)域,然后通過所得區(qū)域的均值特征來反映處理后的卷積特征。根據(jù)過往的研究表明,這些降維后的特征分類難度明顯的降低,分類過程也相應的簡化了。子采樣有2個優(yōu)點:可以大幅度的降低運算量,采樣單元具有平移不變性,在此情況下即使出現(xiàn)了一定的平移,提取到的特征沒有變化,其對應位移的敏感性降低,因而子采樣是一種常用的降低數(shù)據(jù)維度的采樣方法。
2.2.2 CNN的整體網(wǎng)絡結構
多層CNN網(wǎng)絡的結構隨著不斷發(fā)展,復雜程度也在不斷提升,其中主要包括有很多可支持池化運算的卷積層和一定數(shù)量的全連接層,其常見的的結構如 AlexNet,其結構如圖 2.4所示。

圖2.4 AlexNet網(wǎng)絡結構
由圖2.4可知,卷積神經(jīng)網(wǎng)絡可以在卷積處理基礎上得到一定數(shù)量的不同特征,而在子采樣基礎上降低數(shù)據(jù)維度,接著在一定的組合模式下而得到更加抽象的特征,然后利用全連接層描述圖像的特征。整個網(wǎng)絡構建原理具體如下:
?。?)卷積層的構建原理
卷積層包含了一定數(shù)量的特征域,其中的各個域包含了相同連接權重的神經(jīng)元,且其中的各神經(jīng)元對應的感受野數(shù)量也保持一致,這些神經(jīng)元在工作中只接收其感受野傳輸?shù)男盘?。具體情況見圖2.4,在前一層的特征圖和相應的卷積核進行卷積處理,將所得結果通過激活函數(shù)后輸出,在此處理過程中對應的卷積表達式如下:

其中:Oij 表示第i層的第j個特征圖,此特征圖的元素為Oij(x,y),而其偏置為bij;Wijk是則具體表示了Oij和O(i-1)j的卷積核;此卷積層的行數(shù)和列數(shù)分別為Ri和Ci。在以上卷積運算過程中,若第(i-1)層的特征圖表示為n1×n2,卷積核為l1×l2,而在以上卷積運算處理后,可確定出第i層特征圖的大小,具體表示為(n1-l1+1)×(n2-l2+1)。
?。?)采樣層的構建原理
在確定采樣層過程中,需要通過上一層的相鄰小區(qū)域進行聚合操作,在進行處理時,設采樣區(qū)域具體表示為 l1×l2,具體采樣算法表示如下:

其中gij表示Oij增益系數(shù)。
在以上卷積處理基礎上得到對應的特征信息,接著利用特征信息進行分類。理論上全部提取的特征都可以用于訓練分類器,但這樣處理的難度很高,主要困難在于計算量很龐大,如對一個96×96像素的圖像,在以上卷積運算基礎上得到400個定義在8×8尺寸圖像輸入上的特征,則對其中的一個特征和圖像卷積處理就可以確定出7921維的卷積特征,而在四百個特征情況下,對應的卷積特征向量就超過了3百萬特征輸入,這樣大量的數(shù)據(jù)很不方便訓練,且容易導致過擬合問題。
為了解決卷積過程過量數(shù)據(jù)的問題,CNN網(wǎng)絡采用了池化(子采樣)的方法。由于使用卷積后的特征是圖像表現(xiàn)出“靜態(tài)性”的屬性,在此情況下圖像不同區(qū)域的特征可以進行共享。為了描述大的圖像,可以對圖像的不同位置的特征進行聚合。通過確定出圖像某區(qū)域相關特征的平均值,使此類特征對應的維度大幅度降低,這種方法可以有效地改善結果數(shù)據(jù)含量過大的情況。這種聚合稱之為池化,這種處理在圖像特征識別中也經(jīng)常用到。
子采樣可以總體上劃分為均值子采樣和最大值子采樣兩類,其都和相應的卷積過程保持對應,具體情況如圖2.5所示。
具體兩種子采樣方法的描述如下:
1)均值子采樣的卷積核相應的權重保持一致,都是0.25,卷積核的平移步長為2。這樣處理后可以降低原圖模糊度。
2)最大值子采樣的卷積核對應的權重有兩個,分別為1和0,其中1對應于輸入X被卷積核覆蓋部分值最大的位置,而在輸出X上的步長為2,這樣處理的效果也就是將原圖縮減至原來的四分之一。

圖2.5 兩種不同的子采樣方法
?。?)分類層的構建
在網(wǎng)絡模型的最后設置一個或多個全連接層用于連接各個特征實現(xiàn)分類,可以連接圖像和輸出層的各分類,而在激勵時一般用到softmax回歸函數(shù),可以在此基礎上確定出分類層。
2.2.3 CNN的訓練方法
卷積神經(jīng)網(wǎng)絡的訓練過程具體如下:
?。?)前向傳播階段
先隨機的抽取相應的樣本(Xi,Yi),將 Xi輸入網(wǎng)絡,然后通過一定方法不斷地進行變換處理,而促使信息傳送到輸出層,所得輸出結果具體如下:
Oi=Fn(Fn-1(...F2(F1(Xiw(1)+b(1))w(2)+b(2))...)w(n)+b(n)) (2.5)
其中w(n)表示第n層的權值,b(n)和Fn()則分別表示此層相應的分值和激活函數(shù)。
這種卷積表現(xiàn)出valid特征,其處理過程中,對應的卷積核W覆蓋在輸入圖input X上,然后將一定運算所得結果賦給輸出圖相關的位置,之后不斷的進行移動操作,每次卷積核在輸入X上移動一個位置,根據(jù)一定的順序進行遍歷可以確定輸出矩陣Y。在此過程中如果卷積核的輸入圖大小和卷積核可以確定,則可以打出輸出圖,比如前二者的尺寸分別為Mx×Nx及Mw×Nw,相應輸出的Y為對應項相減的乘積。

圖2.6 前向傳播示意圖
?。?)后向傳播階段
后向傳播過程中相應的誤差可以同步地進行傳播,根據(jù)前文所述理論分析可知,該網(wǎng)絡中誤差的反向傳播可劃分為輸出層和隱層兩部分,相應計算方法具體表示如(2.6)、(2.7)所示:

∂E/∂Oik=Oik-Tik (2.7)
其中Ei是第i個樣本的誤差;Tik是第i個樣本輸出層第k個神經(jīng)元的期望輸出。對此層的特征進行分析可以看出,隱層誤差的反向傳播可以具體劃分為子采樣層和卷積層的這兩個過程,相應誤差的信號信息保持不變,可以對相應的兩個層的誤差進行計算,可以據(jù)此確定出對應層神經(jīng)元的輸出、增益相關數(shù)值,并根據(jù)所得結果來調(diào)整增益和偏置,然后對數(shù)據(jù)量的變化進行觀察和分析,進一步確定出相應的誤差傳輸作用機理,為圖像處理提供支持。
通過信號跟蹤和數(shù)據(jù)比較,可以發(fā)現(xiàn)如下事實:在誤差反向傳播期間,先在一定運算處理的基礎上確定出尾部分類器中各神經(jīng)元的誤差信號,然后將此信號傳遞到特征抽取器;在這兩個特征圖的傳播過程中要進行相應的full卷積操作。雖然誤差的處理結果和卷積層的神經(jīng)網(wǎng)絡的性能密切相關,但是并不能區(qū)分識別。在識別過程中,此處的卷積和上一節(jié)卷積的處理流程有一定差異。那么由此可作為突破點,進一步分析運算即可發(fā)現(xiàn),如果卷積核W 的長度為Mw×Mw,則對應的子特征誤差矩陣 Q_err需要向一定方向移動Mw-1行或列,對應的卷積核也需要進行一定角度的旋轉(zhuǎn),對應的誤差信號矩陣P_err和Q_err存在一定的變換關系。
圖2.7中矩陣Q_err中的A是因為P中左上方塊的運算而得到的,此小方塊對A進行了卷積處理,可通過W表示。而誤差信號A通過卷積核將誤差信號發(fā)送到對應的神經(jīng)元a、b、d、e中,可以根據(jù)類似的過程確定出錯誤信號B、C、D的反向傳播情況,此誤差傳播過程可用卷積過程表示,具體情況如圖2.7所示。

圖2.7 后向傳播示意圖
2.3 本章小結
本章從單個神經(jīng)元模型入手,簡要介紹了人工神經(jīng)元結構和含隱層的多層網(wǎng)絡的基本概念,并著重介紹了卷積神經(jīng)網(wǎng)絡(CNN)的特點、結構和訓練過程。以近年來廣泛應用的 AlexNet 模型為例,詳細說明了卷積神經(jīng)網(wǎng)絡中卷積層、池化層和采樣層的原理及網(wǎng)絡訓練中的前向傳播和后向傳播。
《未完待續(xù)》