詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想_第1頁(yè)
詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想_第2頁(yè)
詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想_第3頁(yè)
詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想_第4頁(yè)
詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文整理了網(wǎng)上幾位大牛的博客,詳細(xì)地講解了CNN的基礎(chǔ)結(jié)構(gòu)與核心思想,歡迎交流。 1Deep learning簡(jiǎn)介2Deep Learning訓(xùn)練過(guò)程3Deep Learning模型之:CNN卷積神經(jīng)網(wǎng)絡(luò)推導(dǎo)和實(shí)現(xiàn)4Deep Learning模型之:CNN的反向求導(dǎo)及練習(xí)5Deep Learning模型之:CNN卷積神經(jīng)網(wǎng)絡(luò)(一)深度解析CNN6Deep Learning模型之:CNN卷積神經(jīng)網(wǎng)絡(luò)(二)文字識(shí)別系統(tǒng)LeNet-57Deep Learning模型之:CNN卷積神經(jīng)網(wǎng)絡(luò)(三)CNN常見(jiàn)問(wèn)題總結(jié)  1. 概述   卷積神經(jīng)網(wǎng)

2、絡(luò)是一種特殊的深層的神經(jīng)網(wǎng)絡(luò)模型,它的特殊性體現(xiàn)在兩個(gè)方面,一方面它的神經(jīng)元間的連接是非全連接的, 另一方面同一層中某些神經(jīng)元之間的連接的權(quán)重是共享的(即相同的)。它的非全連接和權(quán)值共享的網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物 神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度(對(duì)于很難學(xué)習(xí)的深層結(jié)構(gòu)來(lái)說(shuō),這是非常重要的),減少了權(quán)值的數(shù)量。     回想一下BP神經(jīng)網(wǎng)絡(luò)。BP網(wǎng)絡(luò)每一層節(jié)點(diǎn)是一個(gè)線性的一維排列狀態(tài),層與層的網(wǎng)絡(luò)節(jié)點(diǎn)之間是全連接的。這樣設(shè)想一下,如果BP網(wǎng)絡(luò)中層與層之間的節(jié)點(diǎn)連接不再是全連接,而是局部連接的。這樣,就是一種最簡(jiǎn)單的一維卷積網(wǎng)絡(luò)。如果我們把上述這

3、個(gè)思路擴(kuò)展到二維,這就是我們?cè)诖蠖鄶?shù)參考資料上看到的卷積神經(jīng)網(wǎng)絡(luò)。具體參看下圖:                                          上圖左:全連接網(wǎng)絡(luò)。如果我們有1000x1000像素的圖像,有1百萬(wàn)個(gè)隱層神經(jīng)元,每個(gè)隱層神經(jīng)元都連接圖像的每一個(gè)像素點(diǎn),就有1000x1000x1000000=1012個(gè)連接,也就是1012個(gè)權(quán)

4、值參數(shù)。        上圖右:局部連接網(wǎng)絡(luò),每一個(gè)節(jié)點(diǎn)與上層節(jié)點(diǎn)同位置附件10x10的窗口相連接,則1百萬(wàn)個(gè)隱層神經(jīng)元就只有100w乘以100,即108個(gè)參數(shù)。其權(quán)值連接個(gè)數(shù)比原來(lái)減少了四個(gè)數(shù)量級(jí)。       根據(jù)BP網(wǎng)絡(luò)信號(hào)前向傳遞過(guò)程,我們可以很容易計(jì)算網(wǎng)絡(luò)節(jié)點(diǎn)的輸出。例如,對(duì)于上圖中被標(biāo)注為紅色節(jié)點(diǎn)的凈輸入,就等于所有與紅線相連接的上一層神經(jīng)元節(jié)點(diǎn)值與紅色線表示的權(quán)值之積的累加。這樣的計(jì)算過(guò)程,很多書上稱其為卷積。       事實(shí)上,對(duì)于數(shù)字濾波而言,其

5、濾波器的系數(shù)通常是對(duì)稱的。否則,卷積的計(jì)算需要先反向?qū)φ郏缓筮M(jìn)行乘累加的計(jì)算。上述神經(jīng)網(wǎng)絡(luò)權(quán)值滿足對(duì)稱嗎?我想答案是否定的!所以,上述稱其為卷積運(yùn)算,顯然是有失偏頗的。但這并不重要,僅僅是一個(gè)名詞稱謂而已。只是,搞信號(hào)處理的人,在初次接觸卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候,帶來(lái)了一些理解上的誤區(qū)。         卷積神經(jīng)網(wǎng)絡(luò)另外一個(gè)特性是權(quán)值共享。例如,就上面右邊那幅圖來(lái)說(shuō),權(quán)值共享,也就是說(shuō)所有的紅色線標(biāo)注的連接權(quán)值相同。這一點(diǎn),初學(xué)者容易產(chǎn)生誤解。        上面描述的只是單層網(wǎng)絡(luò)結(jié)構(gòu),前A&T

6、60;Shannon Lab   的  Yann LeCun等人據(jù)此提出了基于卷積神經(jīng)網(wǎng)絡(luò)的一個(gè)文字識(shí)別系統(tǒng) LeNet-5。該系統(tǒng)90年代就被用于銀行手寫數(shù)字的識(shí)別。 2、 CNN的結(jié)構(gòu)卷積網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。 這些良好的性能是網(wǎng)絡(luò)在有監(jiān)督方式下學(xué)會(huì)的,網(wǎng)絡(luò)的結(jié)構(gòu)主要有稀疏連接和權(quán)值共享兩個(gè)特點(diǎn),包括如下形式的約束:1、 特征提取。每一個(gè)神經(jīng)元從上一層的局部接受域得到突觸輸人,因而迫使它提取局部特征。一旦一個(gè)特征被提取出來(lái), 只

7、要它相對(duì)于其他特征的位置被近似地保留下來(lái),它的精確位置就變得沒(méi)有那么重要了。2 、特征映射。網(wǎng)絡(luò)的每一個(gè)計(jì)算層都是由多個(gè)特征映射組成的,每個(gè)特征映射都是平面形式的。平面中單獨(dú)的神經(jīng)元在約束下共享 相同的突觸權(quán)值集,這種結(jié)構(gòu)形式具有如下的有益效果:a.平移不變性。b.自由參數(shù)數(shù)量的縮減(通過(guò)權(quán)值共享實(shí)現(xiàn))。3、子抽樣。每個(gè)卷積層后面跟著一個(gè)實(shí)現(xiàn)局部平均和子抽樣的計(jì)算層,由此特征映射的分辨率降低。這種操作具有使特征映射的輸出對(duì)平移和其他 形式的變形的敏感度下降的作用。卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)多層的神經(jīng)網(wǎng)絡(luò),每層由多個(gè)二維平面組成,而每個(gè)平面由多個(gè)獨(dú)立神經(jīng)元組成。  

8、;      圖:卷積神經(jīng)網(wǎng)絡(luò)的概念示范:輸入圖像通過(guò)和三個(gè)可訓(xùn)練的濾波器和可加偏置進(jìn)行卷積,卷積后在C1層產(chǎn)生三個(gè)特征映射圖,然后特征映射圖中每組的四個(gè)像素再進(jìn)行求和,加權(quán)值,加偏置,通過(guò)一個(gè)Sigmoid函數(shù)得到三個(gè)S2層的特征映射圖。這些映射圖再進(jìn)過(guò)濾波得到C3層。這個(gè)層級(jí)結(jié)構(gòu)再和S2一樣產(chǎn)生S4。最終,這些像素值被光柵化,并連接成一個(gè)向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),得到輸出。       一般地,C層為特征提取層,每個(gè)神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征,一旦該局

9、部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來(lái);S層是特征映射層,網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射為一個(gè)平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。       此外,由于一個(gè)映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個(gè)數(shù),降低了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)特征提取層(C-層)都緊跟著一個(gè)用來(lái)求局部平均與二次提取的計(jì)算層(S-層),這種特有的兩次特征提取結(jié)構(gòu)使網(wǎng)絡(luò)在識(shí)別時(shí)對(duì)輸入樣本有較高的畸變?nèi)萑棠?/p>

10、力。2.1 稀疏連接(Sparse Connectivity)卷積網(wǎng)絡(luò)通過(guò)在相鄰兩層之間強(qiáng)制使用局部連接模式來(lái)利用圖像的空間局部特性,在第m層的隱層單元只與第m-1層的輸入單元的局部區(qū)域有連接,第m-1層的這些局部 區(qū)域被稱為空間連續(xù)的接受域。我們可以將這種結(jié)構(gòu)描述如下:設(shè)第m-1層為視網(wǎng)膜輸入層,第m層的接受域的寬度為3,也就是說(shuō)該層的每個(gè)單元與且僅與輸入層的3個(gè)相鄰的神經(jīng)元相連,第m層與第m+1層具有類似的鏈接規(guī)則,如下圖所示。      可以看到m+1層的神經(jīng)元相對(duì)于第m層的接受域的寬度也為3,但相對(duì)于輸入層的接受域?yàn)?/p>

11、5,這種結(jié)構(gòu)將學(xué)習(xí)到的過(guò)濾器(對(duì)應(yīng)于輸入信號(hào)中被最大激活的單元)限制在局部空間 模式(因?yàn)槊總€(gè)單元對(duì)它接受域外的variation不做反應(yīng))。從上圖也可以看出,多個(gè)這樣的層堆疊起來(lái)后,會(huì)使得過(guò)濾器(不再是線性的)逐漸成為全局的(也就是覆蓋到了更 大的視覺(jué)區(qū)域)。例如上圖中第m+1層的神經(jīng)元可以對(duì)寬度為5的輸入進(jìn)行一個(gè)非線性的特征編碼。 2.2 權(quán)值共享(Shared Weights)在卷積網(wǎng)絡(luò)中,每個(gè)稀疏過(guò)濾器hi通過(guò)共享權(quán)值都會(huì)覆蓋整個(gè)可視域,這些共享權(quán)值的單元構(gòu)成一個(gè)特征映射,如下圖所示。    在圖中,有3個(gè)

12、隱層單元,他們屬于同一個(gè)特征映射。同種顏色的鏈接的權(quán)值是相同的,我們?nèi)匀豢梢允褂锰荻认陆档姆椒▉?lái)學(xué)習(xí)這些權(quán)值,只需要對(duì)原始算法做一些小的改動(dòng), 這里共享權(quán)值的梯度是所有共享參數(shù)的梯度的總和。我們不禁會(huì)問(wèn)為什么要權(quán)重共享呢?一方面,重復(fù)單元能夠?qū)μ卣鬟M(jìn)行識(shí)別,而不考慮它在可視域中的位置。另一方面,權(quán)值 共享使得我們能更有效的進(jìn)行特征抽取,因?yàn)樗鼧O大的減少了需要學(xué)習(xí)的自由變量的個(gè)數(shù)。通過(guò)控制模型的規(guī)模,卷積網(wǎng)絡(luò)對(duì)視覺(jué)問(wèn)題可以具有很好的泛化能力。 舉例講解:        上面聊到,好像CNN一個(gè)牛逼的地方就在

13、于通過(guò)感受野和權(quán)值共享減少了神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)的個(gè)數(shù)。那究竟是啥的呢?     下圖左:如果我們有1000x1000像素的圖像,有1百萬(wàn)個(gè)隱層神經(jīng)元,那么他們?nèi)B接的話(每個(gè)隱層神經(jīng)元都連接圖像的每一個(gè)像素點(diǎn)),就有1000x1000x1000000=1012個(gè)連接,也就是1012個(gè)權(quán)值參數(shù)。然而圖像的空間聯(lián)系是局部的,就像人是通過(guò)一個(gè)局部的感受野去感受外界圖像一樣,每一個(gè)神經(jīng)元都不需要對(duì)全局圖像做感受,每個(gè)神經(jīng)元只感受局部的圖像區(qū)域,然后在更高層,將這些感受不同局部的神經(jīng)元綜合起來(lái)就可以得到全局的信息了。這樣,我們就可以減少連接的數(shù)目,也就是減少神經(jīng)網(wǎng)絡(luò)需要

14、訓(xùn)練的權(quán)值參數(shù)的個(gè)數(shù)了。如下圖右:假如局部感受野是10x10,隱層每個(gè)感受野只需要和這10x10的局部圖像相連接,所以1百萬(wàn)個(gè)隱層神經(jīng)元就只有一億個(gè)連接,即108個(gè)參數(shù)。比原來(lái)減少了四個(gè)0(數(shù)量級(jí)),這樣訓(xùn)練起來(lái)就沒(méi)那么費(fèi)力了,但還是感覺(jué)很多的啊,那還有啥辦法沒(méi)?        我們知道,隱含層的每一個(gè)神經(jīng)元都連接10x10個(gè)圖像區(qū)域,也就是說(shuō)每一個(gè)神經(jīng)元存在10x10=100個(gè)連接權(quán)值參數(shù)。那如果我們每個(gè)神經(jīng)元這100個(gè)參數(shù)是相同的呢?也就是說(shuō)每個(gè)神經(jīng)元用的是同一個(gè)卷積核去卷積圖像。這樣我們就只有多少個(gè)參數(shù)?只有100個(gè)參

15、數(shù)??!親!不管你隱層的神經(jīng)元個(gè)數(shù)有多少,兩層間的連接我只有100個(gè)參數(shù)??!親!這就是權(quán)值共享啊!親!這就是卷積神經(jīng)網(wǎng)絡(luò)的主打賣點(diǎn)??!親?。ㄓ悬c(diǎn)煩了,呵呵)也許你會(huì)問(wèn),這樣做靠譜嗎?為什么可行呢?這個(gè)共同學(xué)習(xí)。       好了,你就會(huì)想,這樣提取特征也忒不靠譜吧,這樣你只提取了一種特征?。繉?duì)了,真聰明,我們需要提取多種特征對(duì)不?假如一種濾波器,也就是一種卷積核就是提出圖像的一種特征,例如某個(gè)方向的邊緣。那么我們需要提取不同的特征,怎么辦,加多幾種濾波器不就行了嗎?對(duì)了。所以假設(shè)我們加到100種濾波器,每種濾波器的參數(shù)不一樣,表示它提出

16、輸入圖像的不同特征,例如不同的邊緣。這樣每種濾波器去卷積圖像就得到對(duì)圖像的不同特征的放映,我們稱之為Feature Map。所以100種卷積核就有100個(gè)Feature Map。這100個(gè)Feature Map就組成了一層神經(jīng)元。到這個(gè)時(shí)候明了了吧。我們這一層有多少個(gè)參數(shù)了?100種卷積核x每種卷積核共享100個(gè)參數(shù)=100x100=10K,也就是1萬(wàn)個(gè)參數(shù)。才1萬(wàn)個(gè)參數(shù)??!親!(又來(lái)了,受不了了!)見(jiàn)下圖右:不同的顏色表達(dá)不同的濾波器。        嘿喲,遺漏一個(gè)問(wèn)題了。剛才說(shuō)隱層的參數(shù)個(gè)數(shù)和隱層的神經(jīng)元個(gè)數(shù)無(wú)關(guān),只和濾

17、波器的大小和濾波器種類的多少有關(guān)。那么隱層的神經(jīng)元個(gè)數(shù)怎么確定呢?它和原圖像,也就是輸入的大小(神經(jīng)元個(gè)數(shù))、濾波器的大小和濾波器在圖像中的滑動(dòng)步長(zhǎng)都有關(guān)!例如,我的圖像是1000x1000像素,而濾波器大小是10x10,假設(shè)濾波器沒(méi)有重疊,也就是步長(zhǎng)為10,這樣隱層的神經(jīng)元個(gè)數(shù)就是(1000x1000 )/ (10x10)=100x100個(gè)神經(jīng)元了,假設(shè)步長(zhǎng)是8,也就是卷積核會(huì)重疊兩個(gè)像素,那么我就不算了,思想懂了就好。注意了,這只是一種濾波器,也就是一個(gè)Feature Map的神經(jīng)元個(gè)數(shù)哦,如果100個(gè)Feature Map就是100倍了。由此可見(jiàn),圖像越大,神經(jīng)元個(gè)數(shù)和需要訓(xùn)練的權(quán)值參數(shù)

18、個(gè)數(shù)的貧富差距就越大。       需要注意的一點(diǎn)是,上面的討論都沒(méi)有考慮每個(gè)神經(jīng)元的偏置部分。所以權(quán)值個(gè)數(shù)需要加1 。這個(gè)也是同一種濾波器共享的。      總之,卷積網(wǎng)絡(luò)的核心思想是將:局部感受野、權(quán)值共享(或者權(quán)值復(fù)制)以及時(shí)間或空間亞采樣這三種結(jié)構(gòu)思想結(jié)合起來(lái)獲得了某種程度的位移、尺度、形變不變性。 2.3 The Full Model        卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)多層的神經(jīng)

19、網(wǎng)絡(luò),每層由多個(gè)二維平面組成,而每個(gè)平面由多個(gè)獨(dú)立神經(jīng)元組成。網(wǎng)絡(luò)中包含一些簡(jiǎn)單元和復(fù)雜元,分別記為S-元 和C-元。S-元聚合在一起組成S-面,S-面聚合在一起組成S-層,用Us表示。C-元、C-面和C-層(Us)之間存在類似的關(guān)系。網(wǎng)絡(luò)的任一中間級(jí)由S-層與C-層 串接而成,而輸入級(jí)只含一層,它直接接受二維視覺(jué)模式,樣本特征提取步驟已嵌入到卷積神經(jīng)網(wǎng)絡(luò)模型的互聯(lián)結(jié)構(gòu)中。一般地,Us為特征提取層(子采樣層),每個(gè)神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征,一旦該局部特征被提取后,它與其他特征間的位置關(guān)系 也隨之確定下來(lái);Uc是特征映射層(卷積層),

20、網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射為一個(gè)平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用 影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于 一個(gè)映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個(gè)數(shù),降低了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)中的每一個(gè)特征提取層(S-層)都緊跟著一個(gè) 用來(lái)求局部平均與二次提取的計(jì)算層(C-層),這種特有的兩次特征提取結(jié)構(gòu)使網(wǎng)絡(luò)在識(shí)別時(shí)對(duì)輸入樣本有較高的畸變?nèi)萑棠芰?。下圖是一個(gè)卷積網(wǎng)絡(luò)的實(shí)例,在博文”Deep Learning模型之:CNN卷積神經(jīng)網(wǎng)絡(luò)(二) 文字

21、識(shí)別系統(tǒng)LeNet-5 “中有詳細(xì)講解:       圖中的卷積網(wǎng)絡(luò)工作流程如下,輸入層由32×32個(gè)感知節(jié)點(diǎn)組成,接收原始圖像。然后,計(jì)算流程在卷積和子抽樣之間交替進(jìn)行,如下所述:    第一隱藏層進(jìn)行卷積,它由8個(gè)特征映射組成,每個(gè)特征映射由28×28個(gè)神經(jīng)元組成,每個(gè)神經(jīng)元指定一個(gè) 5×5 的接受域;    第二隱藏層實(shí)現(xiàn)子 抽樣和局部平均,它同樣由 8 個(gè)特征映射組成,但其每個(gè)特征映射由14

22、5;14 個(gè)神經(jīng)元組成。每個(gè)神經(jīng)元具有一個(gè) 2×2 的接受域,一個(gè)可訓(xùn)練 系數(shù),一個(gè)可訓(xùn)練偏置和一個(gè) sigmoid 激活函數(shù)。可訓(xùn)練系數(shù)和偏置控制神經(jīng)元的操作點(diǎn)。    第三隱藏層進(jìn)行第二次卷積,它由 20 個(gè)特征映射組 成,每個(gè)特征映射由 10×10 個(gè)神經(jīng)元組成。該隱藏層中的每個(gè)神經(jīng)元可能具有和下一個(gè)隱藏層幾個(gè)特征映射相連的突觸連接,它以與第一個(gè)卷積 層相似的方式操作。    第四個(gè)隱藏層進(jìn)行第二次子抽樣和局部

23、平均汁算。它由 20 個(gè)特征映射組成,但每個(gè)特征映射由 5×5 個(gè)神經(jīng)元組成,它以 與第一次抽樣相似的方式操作。    第五個(gè)隱藏層實(shí)現(xiàn)卷積的最后階段,它由 120 個(gè)神經(jīng)元組成,每個(gè)神經(jīng)元指定一個(gè) 5×5 的接受域。    最后是個(gè)全 連接層,得到輸出向量。    相繼的計(jì)算層在卷積和抽樣之間的連續(xù)交替,我們得到一個(gè)“雙尖塔”的效果,也就是在每個(gè)卷積或抽樣層,隨著空 間分辨率下降,與相應(yīng)的前一層相比特征映

24、射的數(shù)量增加。卷積之后進(jìn)行子抽樣的思想是受到動(dòng)物視覺(jué)系統(tǒng)中的“簡(jiǎn)單的”細(xì)胞后面跟著“復(fù)雜的”細(xì)胞的想法的啟發(fā)而產(chǎn)生的。 圖中所示的多層感知器包含近似 100000 個(gè)突觸連接,但只有大約2600 個(gè)自由參數(shù)(每個(gè)特征映射為一個(gè)平面,平面上所有神經(jīng)元的權(quán)值相等)。自由參數(shù)在數(shù)量上顯著地減少是通過(guò)權(quán)值共享獲得 的,學(xué)習(xí)機(jī)器的能力(以 VC 維的形式度量)因而下降,這又提高它的泛化能力。而且它對(duì)自由參數(shù)的調(diào)整通過(guò)反向傳播學(xué)習(xí)的隨機(jī)形式來(lái)實(shí) 現(xiàn)。另一個(gè)顯著的特點(diǎn)是使用權(quán)值共享使得以并行形式實(shí)現(xiàn)卷積網(wǎng)絡(luò)變得可能。這是卷積網(wǎng)絡(luò)

25、對(duì)全連接的多層感知器而言的另一個(gè)優(yōu)點(diǎn)。 3、 CNN的訓(xùn)練         神經(jīng)網(wǎng)絡(luò)用于模式識(shí)別的主流是有指導(dǎo)學(xué)習(xí)網(wǎng)絡(luò),無(wú)指導(dǎo)學(xué)習(xí)網(wǎng)絡(luò)更多的是用于聚類分析。對(duì)于有指導(dǎo)的模式識(shí)別,由于任一樣本的類別是已知的,樣本在空間的分布不再是依據(jù)其自然分布傾向來(lái)劃分,而是要根據(jù)同類樣本在空間的分布及不同類樣本之間的分離程度找一種適當(dāng)?shù)目臻g劃分方法,或者找到一個(gè)分類邊界,使得不同類樣本分別位于不同的區(qū)域內(nèi)。這就需要一個(gè)長(zhǎng)時(shí)間且復(fù)雜的學(xué)習(xí)過(guò)程,不斷調(diào)整用以劃分樣本空間的分類邊界的位置,使盡可能少的樣本被劃分到非同類區(qū)域中。 

26、0;     卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對(duì)之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對(duì)構(gòu)成的。所有這些向量對(duì),都應(yīng)該是來(lái)源于網(wǎng)絡(luò)即將模擬的系統(tǒng)的實(shí)際“運(yùn)行”結(jié)果。它們可以是從實(shí)際運(yùn)行系統(tǒng)中采集來(lái)的。在開(kāi)始訓(xùn)練前,所有的權(quán)都應(yīng)該用一些不同的小隨機(jī)數(shù)進(jìn)行初始化?!靶‰S機(jī)數(shù)”用來(lái)保證網(wǎng)絡(luò)不會(huì)因權(quán)值過(guò)大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失??;“不同”用來(lái)保證網(wǎng)

27、絡(luò)可以正常地學(xué)習(xí)。實(shí)際上,如果用相同的數(shù)去初始化權(quán)矩陣,則網(wǎng)絡(luò)無(wú)能力學(xué)習(xí)。       訓(xùn)練算法與傳統(tǒng)的BP算法差不多。主要包括4步,這4步被分為兩個(gè)階段:第一階段,向前傳播階段:a)從樣本集中取一個(gè)樣本(X,Yp),將X輸入網(wǎng)絡(luò);b)計(jì)算相應(yīng)的實(shí)際輸出Op。      在此階段,信息從輸入層經(jīng)過(guò)逐級(jí)的變換,傳送到輸出層。這個(gè)過(guò)程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時(shí)執(zhí)行的過(guò)程。在此過(guò)程中,網(wǎng)絡(luò)執(zhí)行的是計(jì)算(實(shí)際上就是輸入與每層的權(quán)值矩陣相點(diǎn)乘,得到最后的輸出結(jié)果):  &

28、#160;       Op=Fn(F2(F1(XpW(1)W(2)W(n)第二階段,向后傳播階段a)算實(shí)際輸出Op與相應(yīng)的理想輸出Yp的差;b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。 4、 CNN的學(xué)習(xí)總體而言,卷積網(wǎng)絡(luò)可以簡(jiǎn)化為下圖所示模型:    其中,input 到C1、S4到C5、C5到output是全連接,C1到S2、C3到S4是一一對(duì)應(yīng)的連接,S2到C3為了消除網(wǎng)絡(luò)對(duì)稱性,去掉了一部分連接, 可以讓特征映射更具多樣性。需要注意的是 C5 卷積

29、核的尺寸要和 S4 的輸出相同,只有這樣才能保證輸出是一維向量。 4.1 卷積層的學(xué)習(xí)卷積層的典型結(jié)構(gòu)如下圖所示:卷積層的前饋運(yùn)算是通過(guò)如下算法實(shí)現(xiàn)的:卷積層的輸出= Sigmoid( Sum(卷積) +偏移量)  其中卷積核和偏移量都是可訓(xùn)練的。下面是其核心代碼: ConvolutionLayer:fprop(input,output) /取得卷積核的個(gè)數(shù) int n=kernel.GetDim(0); for (int i=0;i<n;i+) /第i個(gè)卷積核對(duì)應(yīng)輸入層第a個(gè)特征映射,輸

30、出層的第b個(gè)特征映射 /這個(gè)卷積核可以形象的看作是從輸入層第a個(gè)特征映射到輸出層的第b個(gè)特征映射的一個(gè)鏈接 int a=tablei0, b=tablei1; /用第i個(gè)卷積核和輸入層第a個(gè)特征映射做卷積 convolution = Conv(inputa,kerneli); /把卷積結(jié)果求和 sumb +=convolution; for (i=0;i<(int)bias.size();i+) /加上偏移量 sumi += biasi; /調(diào)用Sigmoid函數(shù) output = Sigmoid(sum);    其中,input是 n1×n2&

31、#215;n3 的矩陣,n1是輸入層特征映射的個(gè)數(shù),n2是輸入層特征映射的寬度,n3是輸入層特征映射的高度。output, sum, convolution, bias是n1×(n2-kw+1)×(n3-kh+1)的矩陣,kw,kh是卷積核的寬度高度(圖中是5×5)。kernel是卷積核矩陣。table是連接表,即如果第a輸入和第b個(gè)輸出之間 有連接,table里就會(huì)有a,b這一項(xiàng),而且每個(gè)連接都對(duì)應(yīng)一個(gè)卷積核。   卷積層的反饋運(yùn)算的核心代碼如下: ConvolutionL

32、ayer:bprop(input,output,in_dx,out_dx) /梯度通過(guò)DSigmoid反傳 sum_dx = DSigmoid(out_dx); /計(jì)算bias的梯度 for (i=0;i<bias.size();i+) bias_dxi = sum_dxi; /取得卷積核的個(gè)數(shù) int n=kernel.GetDim(0); for (int i=0;i<n;i+) int a=tablei0,b=tablei1; /用第i個(gè)卷積核和第b個(gè)輸出層反向卷積(即輸出層的一點(diǎn)乘卷積模板返回給輸入層),并把結(jié)果累加到第a個(gè)輸入層 input_dxa += DConv(su

33、m_dxb,kerneli); /用同樣的方法計(jì)算卷積模板的梯度 kernel_dxi += DConv(sum_dxb,inputa);  其中in_dx,out_dx 的結(jié)構(gòu)和 input,output 相同,代表的是相應(yīng)點(diǎn)的梯度。4.2 子采樣層的學(xué)習(xí)子采樣層的典型結(jié)構(gòu)如下圖所示:類似的子采樣層的輸出的計(jì)算式為:輸出= Sigmoid( 采樣*權(quán)重 +偏移量) 其核心代碼如下: SubSamplingLayer:fprop(input,output) int n1= input.GetDi

34、m(0); int n2= input.GetDim(1); int n3= input.GetDim(2); for (int i=0;i<n1;i+) for (int j=0;j<n2;j+) for (int k=0;k<n3;k+) /coeff 是可訓(xùn)練的權(quán)重,sw 、sh 是采樣窗口的尺寸。 subij/swk/sh += inputijk*coeffi; for (i=0;i<n1;i+) /加上偏移量 sumi = subi + biasi; output = Sigmoid(sum);  子采樣層的反饋運(yùn)算的核心代碼如下:

35、0;SubSamplingLayer:bprop(input,output,in_dx,out_dx) /梯度通過(guò)DSigmoid反傳 sum_dx = DSigmoid(out_dx); /計(jì)算bias和coeff的梯度 for (i=0;i<n1;i+) coeff_dxi = 0; bias_dxi = 0; for (j=0;j<n2/sw;j+) for (k=0;k<n3/sh;k+) coeff_dxi += subjk*sum_dxijk; bias_dxi += sum_dxijk); for (i=0;i<n1;i+) for (j=0;j<n

36、2;j+) for (k=0;k<n3;k+) in_dxijk = coeffi*sum_dxij/swk/sh;  5、CNN的優(yōu)點(diǎn)        卷積神經(jīng)網(wǎng)絡(luò)CNN主要用來(lái)識(shí)別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測(cè)層通過(guò)訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),所以在使用CNN時(shí),避免了顯式的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對(duì)于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu)勢(shì)。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語(yǔ)音識(shí)別和圖像處理方面有著獨(dú)特的優(yōu)越性,其布局更接近于實(shí)際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點(diǎn)避免了特征提取和分類過(guò)程中數(shù)據(jù)重建的復(fù)雜度。        流的分類方式幾乎都是基于統(tǒng)計(jì)特征的,這就意味著在進(jìn)行分辨前必須提取某些特征。然而,顯式的特征提取并不容易,在一些應(yīng)用問(wèn)題中也并非總是可靠的。卷積神經(jīng)網(wǎng)絡(luò),它避免了顯式的特征取樣,隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)。這使得卷積神經(jīng)網(wǎng)絡(luò)明顯有別于其他基于神經(jīng)網(wǎng)絡(luò)的分類器,通過(guò)結(jié)構(gòu)重組和減少權(quán)值將特征提取功能融合進(jìn)多

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論