卷积神经网络的网络结构——以LeNet-5为例
卷積神經網絡的網絡結構——以LeNet-5為例
2016-03-29 ?天狼艦 ?文章來源??閱?497??轉?9 轉藏到我的圖書館 微信 分享: QQ空間 QQ好友 新浪微博 騰訊微博 推薦給朋友| ? ? ? ? ? ?[摘要:卷積神經收集是一種非凡的多層神經收集,像別的的神經收集一樣,卷積神經收集也應用一種反背傳達算法去舉行練習,分歧的地方正在于收集的布局。卷積神經收集的收集毗鄰具有部分連] 卷積神經網絡是一種特殊的多層神經網絡,像其它的神經網絡一樣,卷積神經網絡也使用一種反向傳播算法來進行訓練,不同之處在于網絡的結構。卷積神經網絡的網絡連接具有局部連接、參數共享的特點。局部連接是相對于普通神經網絡的全連接而言的,是指這一層的某個節點只與上一層的部分節點相連。參數共享是指一層中多個節點的連接共享相同的一組參數。 ? 一個典型的神經網絡的結構是全連接的,即某一層的某個節點與上一層的每個節點相連,且每個節點各自使用一套參數,這樣的結構就是經典的全連接結構。在全連接的網絡中,假如k層有n個節點,k+1層有m個節點,則一共有n*m個連接;每個連接都有一個參數,外加每個k+1層節點有一個bias,則共有n*m + m個訓練參數,所以全連接的層的連接數、參數數量的數量級約為O(n^2)。全連接的網絡的結構如下圖: Figure1 全連接的網絡 ? 卷積神經網絡采用局部連接和參數共享的方式連接網絡。對于一個卷積神經網絡,假如該網絡的第k層有n個節點,k+1層為卷積層且有m個節點,則k+1層的每個節點只與k層的部分節點相連,此處假設只與k層的i個節點相連(局部連接);另外k+1層的每個節點的連接共享相同的參數、相同的bias(參數共享)。這樣該卷積神經網絡的第k、k+1層間共有m*i個連接、i+1個參數。由于i小于n且為常數,所以卷積層的連接數、參數數量的數量級約為O(n),遠小于全連接的O(n^2)的數量級。卷積神經網絡的部分連接的結構如下圖:
Figure2 部分連接且卷積層各節點的輸入節點有重疊的網絡 ? Figure3 部分連接且卷積層各節點的輸入節點無重疊的網絡 ? 卷積神經網絡在使用時往往是多層的,下面通過LeNet-5的網絡連接來舉例說明一個卷積神經網絡的結構和特點。LeNet-5是Yann LeCun在1998年設計的用于手寫數字識別的卷積神經網絡,是早期卷積神經網絡中最有代表性的實驗系統之一。 ? LenNet-5共有7層(不包括輸入層),每層都包含不同數量的訓練參數。各層的結構如Figure 4所示:
Figure4 LeNet-5的網絡結構 ? LeNet-5中主要的有卷積層、下抽樣層、全連接層3中連接方式。全連接層在這里就不贅述。 ? 卷積層采用的都是5x5大小的卷積核,且卷積核每次滑動一個像素,一個特征圖譜使用同一個卷積核(即特征圖譜內卷積核共享參數),卷積核的結構見Figure 5。每個上層節點的值乘以連接上的參數,把這些乘積及一個偏置參數相加得到一個和,把該和輸入激活函數,激活函數的輸出即是下一層節點的值。卷積核有5x5個連接參數加上1個偏置共26個訓練參數。這樣局部連接、參數共享的方式,在數學上相當于上一層節點矩陣與連接參數矩陣做卷積得到的結果矩陣,即下一層的節點值,這是卷積神經網絡名字的由來。Figure 6顯示了卷積神經網絡連接于矩陣卷積的對應關系:
Figure5 一個卷積節點的連接方式 ? Figure6 卷積神經網絡連接與矩陣卷積的對應關系 ? 下抽樣層采用的是2x2的輸入域,即上一層的4個節點作為下一層1個節點的輸入,且輸入域不重疊,即每次滑動2個像素,下抽樣節點的結構見Figure 6。每個下抽樣節點的4個輸入節點求和后取平均,均值乘以一個參數加上一個偏置參數作為激活函數的輸入,激活函數的輸出即是下一層節點的值。一個下抽樣節點只有2個訓練參數。
Figure7 一個下抽樣節點的連接方式 ? 輸入層是32x32像素的圖片,比數據集中最大的的字符(最大體積是20x20像素的字符位于28x28像素區域的中心)大很多。這樣做的原因是能使潛在的特征比如邊緣的端點、拐角能夠出現在最高層次的特征解碼器的接收域的中心。LeNet-5的最后一個卷積層(C3,見后面)的接收域的中心與輸入的32x32的圖像的中心的20x20的區域相連。輸入的像素值被標準化為背景色(白色)值為-0.1、前景色(黑色)值為1.175,這樣使得輸入的均值大致為0、方差大致為1,從而有利于加快訓練的速度。 ? 在后面的描述中,卷積層用Cx標記,子抽樣層用Sx標記,全連接層用Fx標記,其中x表示該層的是LeNet的第x層。 ? C1層是卷積層,形成6個特征圖譜。特征圖譜中的每個單元與輸入層的一個5x5的相鄰區域相連,即卷積的輸入區域大小是5x5,每個特征圖譜內參數共享,即每個特征圖譜內只使用一個共同卷積核,卷積核有5x5個連接參數加上1個偏置共26個參數。卷積區域每次滑動一個像素,這樣卷積層形成的特征圖譜每個的大小是28x28。C1層共有26x6=156個訓練參數,有(5x5+1)x28x28x6=122304個連接。Figure 8 是C1層的連接結構。
Figure8 C1層的結構 ? S2層是一個下抽樣層。C1層的6個28x28的特征圖譜分別進行以2x2為單位的下抽樣得到6個14x14的圖。每個特征圖譜使用一個下抽樣核,每個下抽象核有兩個訓練參數,所以共有2x6=12個訓練參數,但是有5x14x14x6=5880個連接。Figure 9是S2層的網絡連接的結構。
Figure9 S2層的網絡結構 ? C3層是一個卷積層,卷積和和C1相同,不同的是C3的每個節點與S2中的多個圖相連。C3層有16個10x10的圖,每個圖與S2層的連接的方式如Table1 所示。C3與S2中前3個圖相連的卷積結構見Figure 10.這種不對稱的組合連接的方式有利于提取多種組合特征。改成有(5x5x3+1)x6 + (5x5x4 + 1) x 3 + (5x5x4 +1)x6 + (5x5x6+1)x1 = 1516個訓練參數,共有1516x10x10=151600個連接。
Table 1 C3與S2的連接關系 ? Figure10 C3與S2中前3個圖相連的卷積結構 S4是一個下采樣層。C3層的16個10x10的圖分別進行以2x2為單位的下抽樣得到16個5x5的圖。這一層有2x16共32個訓練參數,5x5x5x16=2000個連接。連接的方式與S2層類似。 ? C5層是一個卷積層。由于S4層的16個圖的大小為5x5,與卷積核的大小相同,所以卷積后形成的圖的大小為1x1。這里形成120個卷積結果。每個都與上一層的16個圖相連。所以共有(5x5x16+1)x120 = 48120個參數,同樣有48120個連接。C5層的網絡結構見Figure 11。
Figure11 C5層的連接方式 F6層是全連接層。F6層有84個節點,對應于一個7x12的比特圖,-1表示白色,1表示黑色,這樣每個符號的比特圖的黑白色就對應于一個編碼。該層的訓練參數和連接數是(120 + 1)x84=10164. 比特圖的樣式見Figure 12,連接方式見Figure 13.
Figure12 編碼的比特圖
Figure13 F6層的連接方式 ? Output層也是全連接層,共有10個節點,分別代表數字0到9,且如果節點i的值為0,則網絡識別的結果是數字i。采用的是徑向基函數(RBF)的網絡連接方式。假設是上一層的輸入,是RBF的輸出,則RBF輸出的計算方式是:
的值由i的比特圖編碼確定。越接近于0,則越接近于,即越接近于i的比特圖編碼,表示當前網絡輸入的識別結果是字符i。該層有84x10=840個設定的參數和連接。連接的方式見Figure 14.
Figure14 Output層的網絡連接方式 ? 以上是LeNet-5的卷積神經網絡的完整結構,共約有14,000個訓練參數,187,000個連接。一個數字識別的效果如Figure 15所示。
Figure15 LeNet-5識別數字3的過程 ? 通過對LeNet-5的網絡結構的分析,可以直觀地了解一個卷積神經網絡的構建方法,為分析、構建更復雜、更多層的卷積神經網絡做準備。 |
總結
以上是生活随笔為你收集整理的卷积神经网络的网络结构——以LeNet-5为例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Logistic Classificat
- 下一篇: 图解何为CNN