卷積神經(jīng)網(wǎng)絡(luò)(CNN)基礎(chǔ)介紹
本文是對卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)進(jìn)行介紹,主要內(nèi)容包含卷積神經(jīng)網(wǎng)絡(luò)概念、卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、卷積神經(jīng)網(wǎng)絡(luò)求解、卷積神經(jīng)網(wǎng)絡(luò)LeNet-5結(jié)構(gòu)分析、卷積神經(jīng)網(wǎng)絡(luò)注意事項。
本文引用地址:http://m.butianyuan.cn/article/201710/370121.htm一、卷積神經(jīng)網(wǎng)絡(luò)概念
上世紀(jì)60年代。Hubel等人通過對貓視覺皮層細(xì)胞的研究,提出了感受野這個概念。到80年代。Fukushima在感受野概念的基礎(chǔ)之上提出了神經(jīng)認(rèn)知機的概念,能夠看作是卷積神經(jīng)網(wǎng)絡(luò)的第一個實現(xiàn)網(wǎng)絡(luò),神經(jīng)認(rèn)知機將一個視覺模式分解成很多子模式(特征),然后進(jìn)入分層遞階式相連的特征平面進(jìn)行處理,它試圖將視覺系統(tǒng)模型化,使其能夠在即使物體有位移或輕微變形的時候,也能完畢識別。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是多層感知機(MLP)的變種。
由生物學(xué)家休博爾和維瑟爾在早期關(guān)于貓視覺皮層的研究發(fā)展而來。視覺皮層的細(xì)胞存在一個復(fù)雜的構(gòu)造。
這些細(xì)胞對視覺輸入空間的子區(qū)域非常敏感,我們稱之為感受野,以這樣的方式平鋪覆蓋到整個視野區(qū)域。
這些細(xì)胞能夠分為兩種基本類型,簡單細(xì)胞和復(fù)雜細(xì)胞。簡單細(xì)胞最大程度響應(yīng)來自感受野范圍內(nèi)的邊緣刺激模式。復(fù)雜細(xì)胞有更大的接受域,它對來自確切位置的刺激具有局部不變性。
通常神經(jīng)認(rèn)知機包含兩類神經(jīng)元,即承擔(dān)特征提取的採樣元和抗變形的卷積元。採樣元中涉及兩個重要參數(shù),即感受野與閾值參數(shù)。前者確定輸入連接的數(shù)目。后者則控制對特征子模式的反應(yīng)程度。
卷積神經(jīng)網(wǎng)絡(luò)能夠看作是神經(jīng)認(rèn)知機的推廣形式,神經(jīng)認(rèn)知機是卷積神經(jīng)網(wǎng)絡(luò)的一種特例。
CNN由紐約大學(xué)的Yann LeCun于1998年提出。
CNN本質(zhì)上是一個多層感知機,其成功的原因關(guān)鍵在于它所採用的局部連接和共享權(quán)值的方式。一方面減少了的權(quán)值的數(shù)量使得網(wǎng)絡(luò)易于優(yōu)化。還有一方面減少了過擬合的風(fēng)險。CNN是神經(jīng)網(wǎng)絡(luò)中的一種,它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更相似于生物神經(jīng)網(wǎng)絡(luò)。減少了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。
該長處在網(wǎng)絡(luò)的輸入是多維圖像時表現(xiàn)的更為明顯,使圖像能夠直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。在二維圖像處理上有眾多優(yōu)勢,如網(wǎng)絡(luò)能自行抽取圖像特征包含顏色、紋理、形狀及圖像的拓?fù)浣Y(jié)構(gòu);在處理二維圖像問題上,特別是識別位移、縮放及其他形式扭曲不變性的應(yīng)用上具有良好的魯棒性和運算效率等。
CNN本身能夠採用不同的神經(jīng)元和學(xué)習(xí)規(guī)則的組合形式。
CNN具有一些傳統(tǒng)技術(shù)所沒有的長處:良好的容錯能力、并行處理能力和自學(xué)習(xí)能力,可處理環(huán)境信息復(fù)雜,背景知識不清楚。推理規(guī)則不明白情況下的問題,同意樣品有較大的缺損、畸變,執(zhí)行速度快,自適應(yīng)性能好。具有較高的分辨率。它是通過結(jié)構(gòu)重組和減少權(quán)值將特征抽取功能融合進(jìn)多層感知器,省略識別前復(fù)雜的圖像特征抽取過程。
CNN的泛化能力要顯著優(yōu)于其他方法,卷積神經(jīng)網(wǎng)絡(luò)已被應(yīng)用于模式分類,物體檢測和物體識別等方面。利用卷積神經(jīng)網(wǎng)絡(luò)建立模式分類器,將卷積神經(jīng)網(wǎng)絡(luò)作為通用的模式分類器,直接用于灰度圖像。
CNN是一個前潰式神經(jīng)網(wǎng)絡(luò),能從一個二維圖像中提取其拓?fù)浣Y(jié)構(gòu),採用反向傳播算法來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),求解網(wǎng)絡(luò)中的未知參數(shù)。
CNN是一類特別設(shè)計用來處理二維數(shù)據(jù)的多層神經(jīng)網(wǎng)絡(luò)。CNN被覺得是第一個真正成功的採用多層層次結(jié)構(gòu)網(wǎng)絡(luò)的具有魯棒性的深度學(xué)習(xí)方法。CNN通過挖掘數(shù)據(jù)中的空間上的相關(guān)性。來減少網(wǎng)絡(luò)中的可訓(xùn)練參數(shù)的數(shù)量,達(dá)到改進(jìn)前向傳播網(wǎng)絡(luò)的反向傳播算法效率。由于CNN須要非常少的數(shù)據(jù)預(yù)處理工作。所以也被覺得是一種深度學(xué)習(xí)的方法。在CNN中。圖像中的小塊區(qū)域(也叫做“局部感知區(qū)域”)被當(dāng)做層次結(jié)構(gòu)中的底層的輸入數(shù)據(jù),信息通過前向傳播經(jīng)過網(wǎng)絡(luò)中的各個層。在每一層中都由過濾器構(gòu)成,以便能夠獲得觀測數(shù)據(jù)的一些顯著特征。
由于局部感知區(qū)域能夠獲得一些基礎(chǔ)的特征,比方圖像中的邊界和角落等。這樣的方法能夠提供一定程度對位移、拉伸和旋轉(zhuǎn)的相對不變性。
CNN中層次之間的緊密聯(lián)系和空間信息使得其特別適用于圖像的處理和理解。而且能夠自己主動的從圖像抽取出豐富的相關(guān)特性。
CNN通過結(jié)合局部感知區(qū)域、共享權(quán)重、空間或者時間上的降採樣來充分利用數(shù)據(jù)本身包含的局部性等特征,優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。而且保證一定程度上的位移和變形的不變性。
CNN受視覺神經(jīng)機制的啟示而設(shè)計,是為識別二維或三維信號而設(shè)計的一個多層感知器,這樣的網(wǎng)絡(luò)結(jié)構(gòu)對平移、縮放、傾斜等變形具有高度不變性。
CNN能夠用來識別位移、縮放及其他形式扭曲不變性的二維或三維圖像。
CNN的特征提取層參數(shù)是通過訓(xùn)練數(shù)據(jù)學(xué)習(xí)得到的。所以其避免了人工特征提取,而是從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)。其次同一特征圖的神經(jīng)元共享權(quán)值,減少了網(wǎng)絡(luò)參數(shù),這也是卷積網(wǎng)絡(luò)相對于全連接網(wǎng)絡(luò)的一大優(yōu)勢。共享局部權(quán)值這一特殊結(jié)構(gòu)更接近于真實的生物神經(jīng)網(wǎng)絡(luò)使CNN在圖像處理、語音識別領(lǐng)域有著獨特的優(yōu)越性,還有一方面權(quán)值共享同一時候減少了網(wǎng)絡(luò)的復(fù)雜性,且多維輸入信號(語音、圖像)能夠直接輸入網(wǎng)絡(luò)的特點避免了特征提取和分類過程中數(shù)據(jù)重排的過程。
CNN是一種特殊的深層的神經(jīng)網(wǎng)絡(luò)模型,它的特殊性體如今兩個方面。一方面它的神經(jīng)元的連接是非全連接的,還有一方面同一層中某些神經(jīng)元之間的連接的權(quán)重是共享的(即同樣的)。它的非全連接和權(quán)值共享的網(wǎng)絡(luò)結(jié)構(gòu)使之更相似于生物神經(jīng)網(wǎng)絡(luò)。減少了網(wǎng)絡(luò)模型的復(fù)雜度(對于非常難學(xué)習(xí)的深層結(jié)構(gòu)來說,這是非常重要的),減少了權(quán)值的數(shù)量。
CNN是一種深度的監(jiān)督學(xué)習(xí)下的機器學(xué)習(xí)模型,具有極強的適應(yīng)性,善于挖掘數(shù)據(jù)局部特征。提取全局訓(xùn)練特征和分類,它的權(quán)值共享結(jié)構(gòu)網(wǎng)絡(luò)使之更相似于生物神經(jīng)網(wǎng)絡(luò),在模式識別各個領(lǐng)域都取得了非常好的成果。
稀疏連接:在BP神經(jīng)網(wǎng)絡(luò)中,每一層的神經(jīng)元節(jié)點是一個線性一維排列結(jié)構(gòu),層與層各神經(jīng)元節(jié)點之間是全連接的。卷積神經(jīng)網(wǎng)絡(luò)中,層與層之間的神經(jīng)元節(jié)點不再是全連接形式,利用層間局部空間相關(guān)性將相鄰每一層的神經(jīng)元節(jié)點僅僅與和它相近的上層神經(jīng)元節(jié)點連接,即局部連接。
這樣大大減少了神經(jīng)網(wǎng)絡(luò)架構(gòu)的參數(shù)規(guī)模。
權(quán)重共享:在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層的每一個卷積濾波器反復(fù)的作用于整個感受野中,對輸入圖像進(jìn)行卷積,卷積結(jié)果構(gòu)成了輸入圖像的特征圖,提取出圖像的局部特征。
每一個卷積濾波器共享同樣的參數(shù),包含同樣的權(quán)重矩陣和偏置項。共享權(quán)重的長處是在對圖像進(jìn)行特征提取時不用考慮局部特征的位置。
而且權(quán)重共享提供了一種有效的方式。使要學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)模型參數(shù)數(shù)量大大減少。
最大池採樣:它是一種非線性降採樣方法。在通過卷積獲取圖像特征之后是利用這些特征進(jìn)行分類。能夠用全部提取到的特征數(shù)據(jù)進(jìn)行分類器的訓(xùn)練,但這一般會產(chǎn)生極大的計算量。所以在獲取圖像的卷積特征后。要通過最大池採樣方法對卷積特征進(jìn)行降維。將卷積特征劃分為數(shù)個n*n的不相交區(qū)域,用這些區(qū)域的最大(或平均)特征來表示降維后的卷積特征。
這些降維后的特征更easy進(jìn)行分類。
最大池採樣在計算機視覺中的價值體如今兩個方面:(1)、它減小了來自上層隱藏層的計算復(fù)雜度;(2)、這些池化單元具有平移不變性。即使圖像有小的位移,提取到的特征依舊會保持不變。由于增強了對位移的魯棒性。最大池採樣方法是一個高效的減少數(shù)據(jù)維度的採樣方法。
Softmax回歸:它是在邏輯回歸的基礎(chǔ)上擴張而來。它的目的是為了解決多分類問題。在這類問題中。訓(xùn)練樣本的種類一般在兩個以上。
Softmax回歸是有監(jiān)督學(xué)習(xí)算法,它也能夠與深度學(xué)習(xí)或無監(jiān)督學(xué)習(xí)方法結(jié)合使用。
CNN是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),通常至少有兩個非線性可訓(xùn)練的卷積層,兩個非線性的固定卷積層(又叫Pooling Laye)和一個全連接層,一共至少5個隱含層。
卷積神經(jīng)網(wǎng)絡(luò)中,輸入就是一幅幅的圖像,權(quán)值W就是卷積模板,通常是卷積層和下採樣層交替。最后是全連接的神經(jīng)網(wǎng)絡(luò)。
局部區(qū)域感知能夠發(fā)現(xiàn)數(shù)據(jù)的一些局部特征。比方圖片上的一個角,一段弧。這些基本特征是構(gòu)成動物視覺的基礎(chǔ)。
CNN中每一層的由多個map組成,每一個map由多個神經(jīng)單元組成。同一個map的全部神經(jīng)單元共用一個卷積核(即權(quán)重),卷積核往往代表一個特征,比方某個卷積核代表一段弧,那么把這個卷積核在整個圖片上滾一下,卷積值較大的區(qū)域就非常有可能是一段弧。注意卷積核事實上就是權(quán)重,我們并不須要單獨去計算一個卷積,而是一個固定大小的權(quán)重矩陣去圖像上匹配時。這個操作與卷積相似。因此我們稱為卷積神經(jīng)網(wǎng)絡(luò),實際上。BP也能夠看作一種特殊的卷積神經(jīng)網(wǎng)絡(luò)。僅僅是這個卷積核就是某層的全部權(quán)重。即感知區(qū)域是整個圖像。權(quán)重共享策略減少了須要訓(xùn)練的參數(shù)。使得訓(xùn)練出來的模型的泛華能力更強。
CNN一般採用卷積層與採樣層交替設(shè)置,即一層卷積層接一層採樣層,採樣層后接一層卷積...這樣卷積層提取出特征。再進(jìn)行組合形成更抽象的特征,最后形成對圖片對象的描寫敘述特征,CNN后面還能夠跟全連接層,全連接層跟BP一樣。
CNN的最大特點就是稀疏連接(局部感受)和權(quán)值共享。稀疏連接和權(quán)值共享能夠減少所要訓(xùn)練的參數(shù)。減少計算復(fù)雜度。
卷積神經(jīng)網(wǎng)絡(luò)是一個多層的神經(jīng)網(wǎng)絡(luò),每層由多個二維平面組成,而每一個平面由多個獨立神經(jīng)元組成。
卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不須要不論什么輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式。僅僅要用已知的模式對卷積網(wǎng)絡(luò)加以訓(xùn)練。網(wǎng)絡(luò)就具有輸入輸出對之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練。所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對構(gòu)成的。
全部這些向量對,都應(yīng)該是來源于網(wǎng)絡(luò)即將模擬的系統(tǒng)的實際“執(zhí)行”結(jié)果。它們能夠是從實際執(zhí)行系統(tǒng)中採集來的。在開始訓(xùn)練前,全部的權(quán)都應(yīng)該用一些不同的小隨機數(shù)進(jìn)行初始化。“小隨機數(shù)”用來保證網(wǎng)絡(luò)不會因權(quán)值過大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失敗?!安煌庇脕肀WC網(wǎng)絡(luò)能夠正常地學(xué)習(xí)。實際上,假設(shè)用同樣的數(shù)去初始化權(quán)矩陣,則網(wǎng)絡(luò)無能力學(xué)習(xí)。
訓(xùn)練算法與傳統(tǒng)的BP算法差點兒相同。
二、卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)總體架構(gòu):卷積神經(jīng)網(wǎng)絡(luò)是一種多層的監(jiān)督學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。隱含層的卷積層和池採樣層是實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)特征提取功能的核心模塊。
該網(wǎng)絡(luò)模型通過採用梯度下降法最小化損失函數(shù)對網(wǎng)絡(luò)中的權(quán)重參數(shù)逐層反向調(diào)節(jié)。通過頻繁的迭代訓(xùn)練提高網(wǎng)絡(luò)的精度。卷積神經(jīng)網(wǎng)絡(luò)的低隱層是由卷積層和最大池採樣層交替組成,高層是全連接層對應(yīng)傳統(tǒng)多層感知器的隱含層和邏輯回歸分類器。第一個全連接層的輸入是由卷積層和子採樣層進(jìn)行特征提取得到的特征圖像。
最后一層輸出層是一個分類器,能夠採用邏輯回歸,Softmax回歸甚至是支持向量機對輸入圖像進(jìn)行分類。
卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包含:卷積層。降採樣層。全鏈接層。每一層有多個特征圖。每一個特征圖通過一種卷積濾波器提取輸入的一種特征,每一個特征圖有多個神經(jīng)元。
卷積層:使用卷積層的原因是卷積運算的一個重要特點是,通過卷積運算,能夠使原信號特征增強。而且減少噪音。
降採樣層:使用降採樣的原因是。依據(jù)圖像局部相關(guān)性的原理,對圖像進(jìn)行子採樣能夠減少計算量,同一時候保持圖像旋轉(zhuǎn)不變性。
採樣的目的主要是混淆特征的詳細(xì)位置,由于某個特征找出來后,它的詳細(xì)位置已經(jīng)不重要了,我們僅僅須要這個特征與其他的相對位置。比方一個“8”,當(dāng)我們得到了上面一個"o"時。我們不須要知道它在圖像的詳細(xì)位置,僅僅須要知道它以下又是一個“o”我們就能夠知道是一個'8'了,由于圖片中"8"在圖片中偏左或者偏右都不影響我們認(rèn)識它,這樣的混淆詳細(xì)位置的策略能對變形和扭曲的圖片進(jìn)行識別。
全連接層:採用softmax全連接,得到的激活值即卷積神經(jīng)網(wǎng)絡(luò)提取到的圖片特征。
卷積層的map個數(shù)是在網(wǎng)絡(luò)初始化指定的,而卷積層的map的大小是由卷積核和上一層輸入map的大小決定的,假設(shè)上一層的map大小是n*n、卷積核的大小是k*k。則該層的map大小是(n-k+1)*(n-k+1)。
採樣層是對上一層map的一個採樣處理,這里的採樣方式是對上一層map的相鄰小區(qū)域進(jìn)行聚合統(tǒng)計。區(qū)域大小為scale*scale。有些實現(xiàn)是取小區(qū)域的最大值,而ToolBox里面的實現(xiàn)是採用2*2小區(qū)域的均值。注意,卷積的計算窗體是有重疊的。而採樣的計算窗體沒有重疊,ToolBox里面計算採樣也是用卷積(conv2(A,K,'valid'))來實現(xiàn)的,卷積核是2*2。每一個元素都是1/4。去掉計算得到的卷積結(jié)果中有重疊的部分。
CNN的基本結(jié)構(gòu)包含兩種特殊的神經(jīng)元層。其一為卷積層,每一個神經(jīng)元的輸入與前一層的局部相連,并提取該局部的特征。其二是池化層,用來求局部敏感性與二次特征提取的計算層。這樣的兩次特征提取結(jié)構(gòu)減少了特征分辨率,減少了須要優(yōu)化的參數(shù)數(shù)目。
CNN是部分連接網(wǎng)絡(luò)。其最底層是特征提取層(卷積層)。接著是池化層(Pooling),然后能夠繼續(xù)添加卷積、池化或全連接層。用于模式分類的CNN,通常在最后層使用softmax.
普通情況下,CNN的結(jié)構(gòu)形式是:輸入層--> Conv層 --> Pooling層 --> (反復(fù)Conv、Pooling層) … --> FC(Full-connected)層 --> 輸出結(jié)果。
通常輸入層大小一般為2的整數(shù)倍。如32,64,96,224,384等。
通常卷積層使用較小的filter,如3*3,最大也就5*5。
Pooling層用于對卷積結(jié)果進(jìn)行減少維度,比如選擇2*2的區(qū)域?qū)矸e層進(jìn)行減少維度,則選擇2*2區(qū)域的最大值作為輸出,這樣卷積層的維度就降為之前一半。
一般地,CNN的基本結(jié)構(gòu)包含兩層,其一為特征提取層,每一個神經(jīng)元的輸入與前一層的局部接受域相連,并提取該局部的特征。
一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來;其二是特征映射層,網(wǎng)絡(luò)的每一個計算層由多個特征映射組成。每一個特征映射是一個平面,平面上全部神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)採用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于一個映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的每一個卷積層都緊跟著一個用來求局部平均與二次提取的計算層,這樣的特有的兩次特征提取結(jié)構(gòu)減小了特征分辨率。
對于圖像識別任務(wù),卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)一般例如以下圖所看到的。
輸入層讀入經(jīng)過簡單的規(guī)則化(統(tǒng)一大小)的圖像。每一層中的單元將前一層中的一組小的局部近鄰的單元作為輸入。這樣的局部連接觀點來源于早期的感知器,而且和Hubel、Wiesel從貓科動物的視覺系統(tǒng)中發(fā)現(xiàn)的局部感知、方向選擇神經(jīng)元相一致。
通過局部感知場,神經(jīng)元能夠抽取一些主要的視覺特征,比方有向邊、結(jié)束點、邊角等等。這些特征然后被更高層的神經(jīng)元所使用。
而且。適用于某個局部的基礎(chǔ)特征抽取器同樣也傾向于適用于整個圖像。通過利用這樣的特征,卷積神經(jīng)網(wǎng)絡(luò)利用一組分布于圖像各個不同位置但具有同樣權(quán)值向量的單元,來獲取圖像的特征并構(gòu)成一幅特征圖(Feature Map)。在每一個位置,來自不同特征圖的單元得到各自不同類型的特征。一個特征圖中的不同單元被限制為對輸入圖中的各個不同位置的局部數(shù)據(jù)進(jìn)行同樣的操作。這樣的操作等同于將輸入圖像對于一個小的核進(jìn)行卷積。一個卷積層中通常包含多個具有不同權(quán)值向量的特征圖,使得在同一個位置能夠獲得多種不同的特征。例如以下圖,第一個隱含層包含4個特征圖。每一個特征圖由5*5的局部感知區(qū)域構(gòu)成。一旦一個特征被檢測到。僅僅要其相對于其他特征的相對位置沒有改變。那么其在圖像中的絕對位置就變得不是特別重要。
因此。每一個卷積層后面尾隨著一個降採樣層。
降採樣層進(jìn)行局部平均和降採樣的操作。減少特征圖的分辨率,同一時候減少了網(wǎng)絡(luò)輸出對于位移和變形的敏感程度。第二個隱含層進(jìn)行2*2的平均化降採樣的操作。興許的卷積層和降採樣層都交替分布連接,構(gòu)成一個“雙金字塔”結(jié)構(gòu):特征圖的數(shù)目逐漸增多,而且特征圖的分辨率逐漸減少。
由于全部權(quán)重都是通過反向傳播算法訓(xùn)練得到 。卷積神經(jīng)網(wǎng)絡(luò)能夠被看作自己主動合成其自身的特征抽取器。
普通情況下卷積神經(jīng)網(wǎng)絡(luò)中,卷積層和降採樣層交替連接在一起,用于減少計算時間并逐步建立起更高的空間和數(shù)據(jù)結(jié)構(gòu)不變性,并通過比較小的降採樣系數(shù)使得這些特性得以維持。
CNN的分類模型與傳統(tǒng)模型的不同點在于其能夠直接將一幅二維圖像輸入模型中。接著在輸出端即給出分類結(jié)果。其優(yōu)勢在于不需復(fù)雜的預(yù)處理。將特征抽取。模式分類全然放入一個黑匣子中。通過不斷的優(yōu)化來獲得網(wǎng)絡(luò)所需參數(shù)。在輸出層給出所需分類。網(wǎng)絡(luò)核心就是網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計與網(wǎng)絡(luò)的求解。這樣的求解結(jié)構(gòu)比以往多種算法性能更高。
CNN是一個多層的神經(jīng)網(wǎng)絡(luò),每層由多個二維平面組成,而每一個平面由多個獨立神經(jīng)元組成。網(wǎng)絡(luò)中包含簡單元(S-元)和復(fù)雜元(C-元)。S-元聚合在一起組成S-面,S-面聚合在一起組成S-層。
C-元、C-面和C-層之間存在相似的關(guān)系。
網(wǎng)絡(luò)的中間部分由S-層與C-層串接而成。輸入級僅僅含一層。它直接接受二維視覺模式。樣本特征提取步驟已嵌入到卷積神經(jīng)網(wǎng)絡(luò)模型的互聯(lián)結(jié)構(gòu)中。
一般。S為特征提取層,每一個神經(jīng)元的輸入與前一層的局部感受野相連接。并提取該局部的特征,一旦該局部特征被提取,它與其他特征之間的位置關(guān)系就被確定。C是特征映射層,網(wǎng)絡(luò)的每一個計算層由多個特征映射組成,每一個特征映射為一個平面,平面上全部神經(jīng)元的權(quán)值同樣。
特征映射結(jié)構(gòu)採用影響函數(shù)核小的Sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。由于每一個映射面上的神經(jīng)元權(quán)值共享,減少了網(wǎng)絡(luò)的自由參數(shù)數(shù)目,減少了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。CNN中的每一個特征提取層(S-層)都跟著一個用來求局部平均與二次提取的計算層(C-層),這樣的特有的兩次特征提取結(jié)構(gòu)使網(wǎng)絡(luò)在識別時對輸入樣本有較高的畸變?nèi)萑棠芰Α?/p>
CNN網(wǎng)絡(luò)除了輸入輸出層,還有中間的卷積層,抽樣層與全連接層。將原始圖像直接輸入到輸入層,原始圖像的大小決定了輸入向量的尺寸。神經(jīng)元提取圖像的局部特征。每一個神經(jīng)元都與前一層的局部感受野相連,通過交替出現(xiàn)的抽樣層(S)與卷積層(C)和最后的全連接層。在輸出層給出網(wǎng)絡(luò)的輸出。
在卷積層和抽樣層中有若干個特征圖。每一層有多個平面,每層中各平面的神經(jīng)元提取圖像中特定區(qū)域的局部特征。如邊緣特征,方向特征等。在訓(xùn)練時不斷修正S-層神經(jīng)元的權(quán)值。同一層面上的神經(jīng)元權(quán)值同樣,這樣能夠有同樣程度的位移、旋轉(zhuǎn)不變性。由于權(quán)值共享。所以從一個平面到下個平面的映射能夠看做是作卷積運算。S-層可看作是模糊濾波器。起到二次特征提取的作用。隱層與隱層之間空間分辨率遞減,每層所含的平面數(shù)遞增,這樣可用于檢測很多其他的特征信息。
卷積層中,前一層的特征圖與一個可學(xué)習(xí)的核進(jìn)行卷積,卷積的結(jié)果經(jīng)過激活函數(shù)后的輸出形成這一層的神經(jīng)元,從而構(gòu)成該層特征圖。
卷積層與抽樣層間隔出現(xiàn),卷積層每一個輸出的特征圖可能與前一層的幾個特征圖的卷積建立關(guān)系。每一個特征圖能夠有不同的卷積核。卷積層主要的任務(wù)就是從不同的角度來選擇前一層特征圖的各角度特征使其具有位移不變性。卷積的本質(zhì)就是對前一層的特征圖進(jìn)行處理。來得到這一層的特征圖。抽樣層主要作用是減少網(wǎng)絡(luò)的空間分辨率,通過減少圖像的空間分辨率來消除偏移和圖像的扭曲。
隱層的參數(shù)個數(shù)和隱層的神經(jīng)元個數(shù)無關(guān),僅僅和濾波器的大小和濾波器種類的多少有關(guān)。隱層的神經(jīng)元個數(shù),它和原圖像,也就是輸入的大小(神經(jīng)元個數(shù))、濾波器的大小和濾波器在圖像中的滑動步長都有關(guān)。
三、卷積神經(jīng)網(wǎng)絡(luò)求解
CNN通過三個方法來實現(xiàn)識別圖像的位移、縮放和扭曲不變性,即局域感受野、權(quán)值共享和次抽樣。
局域感受野指的是每一層網(wǎng)絡(luò)的神經(jīng)元僅僅與上一層的一個小鄰域內(nèi)的神經(jīng)單元連接。通過局域感受野。每一個神經(jīng)元能夠提取0基礎(chǔ)的視覺特征,如方向線段,端點和角點等;權(quán)值共享使得CNN具有更少的參數(shù),須要相對少的訓(xùn)練數(shù)據(jù);次抽樣能夠減少特征的分辨率,實現(xiàn)對位移、縮放和其他形式扭曲的不變性。
卷積層之后通經(jīng)常使用一個次抽樣層來減少計算時間、建立空間和結(jié)構(gòu)上的不變性。
構(gòu)造好網(wǎng)絡(luò)之后,須要對網(wǎng)絡(luò)進(jìn)行求解。假設(shè)像傳統(tǒng)神經(jīng)網(wǎng)絡(luò)一樣分配參數(shù),則每一個連接都會有未知參數(shù)。而CNN採用的是權(quán)值共享,這樣一來通過一幅特征圖上的神經(jīng)元共享同樣的權(quán)值就能夠大大減少自由參數(shù),這能夠用來檢測同樣的特征在不同角度表示的效果。在網(wǎng)絡(luò)設(shè)計中通常都是抽樣層與卷積層交替出現(xiàn),全連接層的前一層通常為卷積層。
在CNN中,權(quán)值更新是基于反向傳播算法。
CNN在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不須要不論什么輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,僅僅要用已知的模式對卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是監(jiān)督訓(xùn)練,所以其樣本集是由形如:輸入向量。理想輸出向量的向量對構(gòu)成的。全部這些向量對,都應(yīng)該是來源于網(wǎng)絡(luò)即將模擬系統(tǒng)的實際“執(zhí)行”結(jié)構(gòu),它們能夠是從實際執(zhí)行系統(tǒng)中採集來。在開始訓(xùn)練前。全部的權(quán)都應(yīng)該用一些不同的隨機數(shù)進(jìn)行初始化?!靶‰S機數(shù)”用來保證網(wǎng)絡(luò)不會因權(quán)值過大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失敗;“不同”用來保證網(wǎng)絡(luò)能夠正常地學(xué)習(xí)。實際上。假設(shè)用同樣的數(shù)去初始化權(quán)矩陣,則網(wǎng)絡(luò)無學(xué)習(xí)能力。
訓(xùn)練算法主要包含四步,這四步被分為兩個階段:
第一階段,向前傳播階段:
(1)、從樣本集中取一個樣本,輸入網(wǎng)絡(luò);
(2)、計算對應(yīng)的實際輸出。在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完畢訓(xùn)練后正常執(zhí)行時執(zhí)行的過程。
第二階段,向后傳播階段:
(1)、計算實際輸出與對應(yīng)的理想輸出的差;
(2)、按極小化誤差的方法調(diào)整權(quán)矩陣。
這兩個階段的工作一般應(yīng)受到精度要求的控制。
網(wǎng)絡(luò)的訓(xùn)練步驟例如以下:
(1)、選定訓(xùn)練組,從樣本集中分別隨機地尋求N個樣本作為訓(xùn)練組。
(2)、將各權(quán)值、閾值,置成小的接近于0的隨機值。并初始化精度控制參數(shù)和學(xué)習(xí)率;
(3)、從訓(xùn)練組中取一個輸入模式加到網(wǎng)絡(luò),并給出它的目標(biāo)輸出向量;
(4)、計算出中間層輸出向量,計算出網(wǎng)絡(luò)的實際輸出向量;
(5)、將輸出向量中的元素與目標(biāo)向量中的元素進(jìn)行比較。計算出輸出誤差;對于中間層的隱單元也須要計算出誤差;
(6)、依次計算出各權(quán)值的調(diào)整量和閾值的調(diào)整量;
(7)、調(diào)整權(quán)值和調(diào)整閾值;
(8)、當(dāng)經(jīng)歷M后,推斷指標(biāo)是否滿足精度要求,假設(shè)不滿足,則返回(3)。繼續(xù)迭代。假設(shè)滿足就進(jìn)入下一步;
(9)、訓(xùn)練結(jié)束,將權(quán)值和閾值保存在文件里。這時能夠覺得各個權(quán)值已經(jīng)達(dá)到穩(wěn)定,分類器已經(jīng)形成。再一次進(jìn)行訓(xùn)練。直接從文件導(dǎo)出權(quán)值和閾值進(jìn)行訓(xùn)練,不須要進(jìn)行初始化。
四、卷積神經(jīng)網(wǎng)絡(luò)LeNet-5結(jié)構(gòu)分析
CNN是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),通常至少有兩個非線性可訓(xùn)練的卷積層。兩個非線性的固定卷積層(又叫Pooling Layer或降採樣層)和一個全連接層,一共至少5個隱含層。
CNN的結(jié)構(gòu)受到著名的Hubel-Wiesel生物視覺模型的啟示。尤其是模擬視覺皮層V1和V2層中Simple Cell和Complex Cell的行為。
LeNet-5手寫數(shù)字識別結(jié)構(gòu)(上圖)分析:
1. 輸入層:N個32*32的訓(xùn)練樣本
輸入圖像為32*32大小。這要比Mnist數(shù)據(jù)庫中最大的字母還大。這樣做的原因是希望潛在的明顯特征如筆畫斷點或角點能夠出如今最高層特征監(jiān)測子感受野的中心。
2. C1層:
輸入圖片大小: 32*32
卷積窗大?。?nbsp;5*5
卷積窗種類: 6
輸出特征圖數(shù)量: 6
輸出特征圖大小: 28*28 (32-5+1)
神經(jīng)元數(shù)量: 4707 (28*28)*6)
連接數(shù): 122304 (28*28*5*5*6)+(28*28*6)
可訓(xùn)練參數(shù): 156 5*5*6+6
用6個5×5的過濾器進(jìn)行卷積,結(jié)果是在卷積層C1中,得到6張?zhí)卣鲌D,特征圖的每一個神經(jīng)元與輸入圖片中的5×5的鄰域相連。即用5×5的卷積核去卷積輸入層,由卷積運算可得C1層輸出的特征圖大小為(32-5+1)×(32-5+1)=28×28。
3. S2層:
輸入圖片大?。?nbsp;(28*28)*6
卷積窗大小: 2*2
卷積窗種類: 6
輸出下採樣圖數(shù)量:6
輸出下採樣圖大?。?4*14 (28/2)*(28/2)
神經(jīng)元數(shù)量: 1176 (14*14)*6
連接數(shù): 5880 2*2*14*14*6+14*14*6
可訓(xùn)練參數(shù): 12 1*6+6
卷積和子採樣過程:
(1)、卷積過程包含:用一個可訓(xùn)練的濾波器fx去卷積一個輸入的圖像(第一階段是輸入的圖像,后面的階段就是卷積特征map了),然后加一個偏置bx。得到卷積層Cx。
卷積運算一個重要的特點就是,通過卷積運算,能夠使原信號特征增強,而且減少噪音。
(2)、子採樣過程包含:每鄰域四個像素求和變?yōu)橐粋€像素,然后通過標(biāo)量Wx+1加權(quán),再添加偏置bx+1。然后通過一個sigmoid激活函數(shù),產(chǎn)生一個大概縮小四倍的特征映射圖Sx+1。
利用圖像局部相關(guān)性的原理,對圖像進(jìn)行子抽樣,能夠減少數(shù)據(jù)處理量同一時候保留實用信息。
卷積之后進(jìn)行子抽樣的思想是受到動物視覺系統(tǒng)中的“簡單的”細(xì)胞后面跟著“復(fù)雜的”細(xì)胞的想法的啟示而產(chǎn)生的。
降採樣后。降採樣層S2的輸出特征圖大小為(28÷2)×(28÷2)=14×14。
S2層每一個單元的4個輸入相加,乘以一個可訓(xùn)練參數(shù)。再加上一個可訓(xùn)練偏置。結(jié)果通過sigmoid函數(shù)計算??捎?xùn)練系數(shù)和偏置控制著sigmoid函數(shù)的非線性程度。
假設(shè)系數(shù)比較小,那么運算近似于線性運算,下採樣相當(dāng)于模糊圖像。假設(shè)系數(shù)比較大,依據(jù)偏置的大小下採樣能夠被看成是有噪聲的“或”運算或者有噪聲的“與”運算。每一個單元的2*2感受野并不重疊。因此S2中每一個特征圖的大小是C1中特征圖大小的1/4(行和列各1/2)。
從一個平面到下一個平面的映射能夠看作是作卷積運算,S-層可看作是模糊濾波器,起到二次特征提取的作用。隱層與隱層之間空間分辨率遞減,而每層所含的平面數(shù)遞增。這樣可用于檢測很多其他的特征信息。
4. C3層:
輸入圖片大小: (14*14)*6
卷積窗大?。?nbsp;5*5
卷積窗種類: 16
輸出特征圖數(shù)量: 16
輸出特征圖大?。?nbsp;10*10 (14-5+1)
神經(jīng)元數(shù)量: 1600 (10*10)*16)
連接數(shù): 151600 1516*10*10
可訓(xùn)練參數(shù): 1516 6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+1*(6*25+1)
C3層也是一個卷積層,它同樣通過5x5的卷積核去卷積S2層,然后得到的特征map就僅僅有10x10個神經(jīng)元??墒撬?6種不同的卷積核。所以就存在16個特征map了。這里須要注意的一點是:C3中的每一個特征map是連接到S2中的全部6個或者幾個特征map的,表示本層的特征map是上一層提取到的特征map的不同組合(這個做法也并非唯一的)。
C3中每一個特征圖由S2中全部6個或者幾個特征map組合而成。為什么不把S2中的每一個特征圖連接到每一個C3的特征圖呢?原因有2點。第一。不全然的連接機制將連接的數(shù)量保持在合理的范圍內(nèi)。第二,也是最重要的,其破壞了網(wǎng)絡(luò)的對稱性。由于不同的特征圖有不同的輸入,所以迫使他們抽取不同的特征。
5. S4層:
輸入圖片大?。?nbsp;(10*10)*16
卷積窗大小: 2*2
卷積窗種類: 16
輸出下採樣圖數(shù)量: 16
輸出下採樣圖大?。?nbsp;(5*5)*16
神經(jīng)元數(shù)量: 400 (5*5)*16
連接數(shù): 2000 (2*2*5*5*16)+(5*5*16)
可訓(xùn)練參數(shù): 32 (1+1)*16
S4層是一個下採樣層,由16個5*5大小的特征圖構(gòu)成。特征圖中的每一個單元與C3中對應(yīng)特征圖的2*2鄰域相連接,跟C1和S2之間的連接一樣。S4層有32個可訓(xùn)練參數(shù)(每一個特征圖1個因子和一個偏置)和2000個連接。
6. C5層:
輸入圖片大?。?nbsp;(5*5)*16
卷積窗大?。?nbsp;5*5
卷積窗種類: 120
輸出特征圖數(shù)量: 120
輸出特征圖大?。?nbsp;1*1 (5-5+1)
神經(jīng)元數(shù)量: 120 (1*120)
連接數(shù): 48120 5*5*16*120*1+120*1
可訓(xùn)練參數(shù): 48120 5*5*16*120+120
C5層是一個卷積層。有120個特征圖。
每一個單元與S4層的全部16個單元的5*5鄰域相連。由于S4層特征圖的大小也為5*5(同濾波器一樣),故C5特征圖的大小為1*1,這構(gòu)成了S4和C5之間的全連接。之所以仍將C5標(biāo)示為卷積層而非全相聯(lián)層。是由于假設(shè)LeNet-5的輸入變大,而其他的保持不變。那么此時特征圖的維數(shù)就會比1*1大。C5層有48120個可訓(xùn)練連接。
7. F6層:
輸入圖片大?。?nbsp;(1*1)*120
卷積窗大?。?nbsp;1*1
卷積窗種類: 84
輸出特征圖數(shù)量: 1
輸出特征圖大?。?nbsp;84
神經(jīng)元數(shù)量: 84
連接數(shù): 10164 120*84+84
可訓(xùn)練參數(shù): 10164 120*84+84
F6層有84個單元(之所以選這個數(shù)字的原因來自于輸出層的設(shè)計)。與C5層全相連。
有10164個可訓(xùn)練參數(shù)。如同經(jīng)典神經(jīng)網(wǎng)絡(luò),F(xiàn)6層計算輸入向量和權(quán)重向量之間的點積。再加上一個偏置。然后將其傳遞給sigmoid函數(shù)產(chǎn)生單元i的一個狀態(tài)。
8. OUTPUT層:
輸入圖片大?。?nbsp;1*84
輸出特征圖數(shù)量: 1*10
最后,輸出層由歐式徑向基函數(shù)(EuclideanRadial Basis Function)單元組成,每類一個單元。每一個有84個輸入。換句話說。每一個輸出RBF單元計算輸入向量和參數(shù)向量之間的歐式距離。
輸入離參數(shù)向量越遠(yuǎn),RBF輸出的越大。
一個RBF輸出能夠被理解為衡量輸入模式和與RBF相關(guān)聯(lián)類的一個模型的匹配程度的懲處項。
用概率術(shù)語來說,RBF輸出能夠被理解為F6層配置空間的高斯分布的負(fù)log-likelihood。
給定一個輸入模式,損失函數(shù)應(yīng)能使得F6的配置與RBF參數(shù)向量(即模式的期望分類)足夠接近。這些單元的參數(shù)是人工選取并保持固定的(至少初始時候如此)。這些參數(shù)向量的成分被設(shè)為-1或1。盡管這些參數(shù)能夠以-1和1等概率的方式任選,或者構(gòu)成一個糾錯碼??墒潜辉O(shè)計成一個對應(yīng)字符類的7*12大小(即84)的格式化圖片。這樣的表示對識別單獨的數(shù)字不是非常實用,可是對識別可打印ASCII集中的字符串非常實用。
使用這樣的分布編碼而非更經(jīng)常使用的“1 of N”編碼用于產(chǎn)生輸出的還有一個原因是。當(dāng)類別比較大的時候,非分布編碼的效果比較差。原因是大多數(shù)時間非分布編碼的輸出必須為0。這使得用sigmoid單元非常難實現(xiàn)。還有一個原因是分類器不僅用于識別字母。也用于拒絕非字母。使用分布編碼的RBF更適合該目標(biāo)。由于與sigmoid不同,他們在輸入空間的較好限制的區(qū)域內(nèi)興奮。而非典型模式更easy落到外邊。
RBF參數(shù)向量起著F6層目標(biāo)向量的角色。
須要指出這些向量的成分是+1或-1,這正好在F6 sigmoid的范圍內(nèi),因此能夠防止sigmoid函數(shù)飽和。
實際上。+1和-1是sigmoid函數(shù)的最大彎曲的點處。這使得F6單元執(zhí)行在最大非線性范圍內(nèi)。必須避免sigmoid函數(shù)的飽和,由于這將會導(dǎo)致?lián)p失函數(shù)較慢的收斂和病態(tài)問題。
五、卷積神經(jīng)網(wǎng)絡(luò)注意事項
1. 數(shù)據(jù)集的大小和分塊
數(shù)據(jù)驅(qū)動的模型一般依賴于數(shù)據(jù)集的大小,CNN和其他經(jīng)驗?zāi)P鸵粯?,能適用于隨意大小的數(shù)據(jù)集。但用于訓(xùn)練的數(shù)據(jù)集應(yīng)該足夠大,能夠覆蓋問題域中全部已知可能出現(xiàn)的問題。設(shè)計CNN的時候,數(shù)據(jù)集中應(yīng)該包含三個子集:訓(xùn)練集、測試集、驗證集。
訓(xùn)練集應(yīng)該包含問題域中的全部數(shù)據(jù)。并在訓(xùn)練階段用來調(diào)整網(wǎng)絡(luò)權(quán)值。測試集用來在訓(xùn)練過程中測試網(wǎng)絡(luò)對于訓(xùn)練集中未出現(xiàn)的數(shù)據(jù)的分類性能。依據(jù)網(wǎng)絡(luò)在測試集上的性能情況。網(wǎng)絡(luò)的結(jié)構(gòu)可能須要做出調(diào)整,或者添加訓(xùn)練循環(huán)的次數(shù)。
驗證集中的數(shù)據(jù)同樣應(yīng)該包含在測試集合訓(xùn)練集中沒有出現(xiàn)過的數(shù)據(jù),用于在確定網(wǎng)絡(luò)結(jié)構(gòu)后能夠更加好的測試和衡量網(wǎng)絡(luò)的性能。Looney等人建議。數(shù)據(jù)集中的65%用于訓(xùn)練。25%用于測試。剩余的10%用于驗證。
2. 數(shù)據(jù)預(yù)處理
為了加速訓(xùn)練算法的收斂速度,一般都會採用一些數(shù)據(jù)預(yù)處理技術(shù)。這當(dāng)中包含:去除噪聲、輸入數(shù)據(jù)降維、刪除無關(guān)數(shù)據(jù)等。數(shù)據(jù)的平衡化在分類問題中異常重要,一般覺得訓(xùn)練集中的數(shù)據(jù)應(yīng)該相對于標(biāo)簽類別近似于平均分布。也就是每一個類別標(biāo)簽所對應(yīng)的數(shù)據(jù)量在訓(xùn)練集中是基本相等的。以避免網(wǎng)絡(luò)過于傾向于表現(xiàn)某些分類的特點。
為了平衡數(shù)據(jù)集,應(yīng)該移除一些過度富余的分類中的數(shù)據(jù),并對應(yīng)的補充一些相對例子稀少的分類中的數(shù)據(jù)。還有一個辦法就是復(fù)制一部分這些例子稀少分類中的數(shù)據(jù),并在這些輸入數(shù)據(jù)中添加隨機噪聲。
3. 數(shù)據(jù)規(guī)則化
將數(shù)據(jù)規(guī)則化到一個統(tǒng)一的區(qū)間(如[0,1])中具有非常重要的長處:防止數(shù)據(jù)中存在較大數(shù)值的數(shù)據(jù)造成數(shù)值較小的數(shù)據(jù)對于訓(xùn)練效果減弱甚至無效化。一個經(jīng)常使用的方法是將輸入和輸出數(shù)據(jù)按比例調(diào)整到一個和激活函數(shù)(sigmoid函數(shù)等)相對應(yīng)的區(qū)間。
4. 網(wǎng)絡(luò)權(quán)值初始化
CNN的初始化主要是初始化卷積層和輸出層的卷積核(權(quán)重)和偏置。
網(wǎng)絡(luò)權(quán)值初始化就是將網(wǎng)絡(luò)中的全部連接權(quán)值(包含閾值)賦予一個初始值。假設(shè)初始權(quán)值向量處在誤差曲面的一個相對平緩的區(qū)域的時候,網(wǎng)絡(luò)訓(xùn)練的收斂速度可能會異常緩慢。普通情況下,網(wǎng)絡(luò)的連接權(quán)值和閾值被初始化在一個具有0均值的相對小的區(qū)間內(nèi)均勻分布,比方[-0.30, +0.30]這樣的區(qū)間內(nèi)。
5. BP算法的學(xué)習(xí)速率
假設(shè)學(xué)習(xí)速率n選取的比較大則會在訓(xùn)練過程中較大幅度的調(diào)整權(quán)值w。從而加快網(wǎng)絡(luò)訓(xùn)練的速度,但這會造成網(wǎng)絡(luò)在誤差曲面上搜索過程中頻繁抖動且有可能使得訓(xùn)練過程不能收斂。而且可能越過一些接近優(yōu)化w。
同樣,比較小的學(xué)習(xí)速率能夠穩(wěn)定的使得網(wǎng)絡(luò)逼近于全局最長處。但也有可能陷入一些局部最優(yōu)區(qū)域。對于不同的學(xué)習(xí)速率設(shè)定都有各自的優(yōu)缺點。而且還有一種自適應(yīng)的學(xué)習(xí)速率方法,即n隨著訓(xùn)練算法的執(zhí)行過程而自行調(diào)整。
6. 收斂條件
有幾個條件能夠作為停止訓(xùn)練的判定條件,訓(xùn)練誤差、誤差梯度和交叉驗證。一般來說。訓(xùn)練集的誤差會隨著網(wǎng)絡(luò)訓(xùn)練的進(jìn)行而逐步減少。
7. 訓(xùn)練方式
訓(xùn)練例子能夠有兩種主要的方式提供給網(wǎng)絡(luò)訓(xùn)練使用。也能夠是兩者的結(jié)合:逐個例子訓(xùn)練(EET)、批量例子訓(xùn)練(BT)。在EET中,先將第一個例子提供給網(wǎng)絡(luò),然后開始應(yīng)用BP算法訓(xùn)練網(wǎng)絡(luò)。直到訓(xùn)練誤差減少到一個能夠接受的范圍,或者進(jìn)行了指定步驟的訓(xùn)練次數(shù)。然后再將第二個例子提供給網(wǎng)絡(luò)訓(xùn)練。
EET的長處是相對于BT僅僅須要非常少的存儲空間,而且有更好的隨機搜索能力,防止訓(xùn)練過程陷入局部最小區(qū)域。EET的缺點是假設(shè)網(wǎng)絡(luò)接收到的第一個例子就是劣質(zhì)(有可能是噪音數(shù)據(jù)或者特征不明顯)的數(shù)據(jù),可能使得網(wǎng)絡(luò)訓(xùn)練過程朝著全局誤差最小化的反方向進(jìn)行搜索。相對的,BT方法是在全部訓(xùn)練例子都經(jīng)過網(wǎng)絡(luò)傳播后才更新一次權(quán)值,因此每一次學(xué)習(xí)周期就包含了全部的訓(xùn)練例子數(shù)據(jù)。BT方法的缺點也非常明顯。須要大量的存儲空間,而且相比EET更easy陷入局部最小區(qū)域。而隨機訓(xùn)練(ST)則是相對于EET和BT一種折衷的方法,ST和EET一樣也是一次僅僅接受一個訓(xùn)練例子,但僅僅進(jìn)行一次BP算法并更新權(quán)值。然后接受下一個例子反復(fù)同樣的步驟計算并更新權(quán)值。而且在接受訓(xùn)練集最后一個例子后,又一次回到第一個例子進(jìn)行計算。
ST和EET相比。保留了隨機搜索的能力,同一時候又避免了訓(xùn)練例子中最開始幾個例子假設(shè)出現(xiàn)劣質(zhì)數(shù)據(jù)對訓(xùn)練過程的過度不良影響。
以上整理的內(nèi)容主要摘自:
1. 《Gradient-Based Learning Applied to Document Recognition》,1998,Yann LeCun
2. 《卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上的應(yīng)用研究》,2012,碩論,浙江大學(xué)
3. 《卷積神經(jīng)網(wǎng)絡(luò)的研究與應(yīng)用》,2013,碩論,南京林業(yè)大學(xué)
4. 《卷積神經(jīng)網(wǎng)絡(luò)及其應(yīng)用》。2014,碩論,大連理工大學(xué)
5. 《基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究》,2014。碩論,浙江工商大學(xué)
評論