from:?https://blog.csdn.net/m0_37870649/article/details/79382674
一创泄、CNN概述
卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)多層的神經(jīng)網(wǎng)絡(luò)观挎,每層由多個(gè)二維平面組成(每個(gè)層有多個(gè)Feature Map,每個(gè)Feature Map通過(guò)一種卷積濾波器提取輸入的一種特征),而每個(gè)平面由多個(gè)獨(dú)立神經(jīng)元組成蒙具。
圖1 卷積神經(jīng)網(wǎng)絡(luò)的概念示范
1. 輸入圖像通過(guò)和三個(gè)可訓(xùn)練的濾波器和可加偏置進(jìn)行卷積千绪,濾波過(guò)程如圖1,卷積后在C1層產(chǎn)生三個(gè)特征映射圖
2. 然后特征映射圖中每組的4個(gè)像素再進(jìn)行求和随抠,加權(quán)值裁着,加偏置,通過(guò)一個(gè)Sigmoid函數(shù)得到三個(gè)S2層的特征映射圖拱她。
3. 這些映射圖再進(jìn)過(guò)濾波得到C3層二驰。
4. 這個(gè)層級(jí)結(jié)構(gòu)再和S2一樣產(chǎn)生S4。
5. 最終秉沼,這些像素值被光柵化桶雀,并連接成一個(gè)向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),得到輸出唬复。
CNN一個(gè)牛逼的地方就在于通過(guò)感受野和權(quán)值共享減少了神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)的個(gè)數(shù)矗积,所謂權(quán)值共享就是同一個(gè)Feature Map中神經(jīng)元權(quán)值共享,該Feature Map中的所有神經(jīng)元使用同一組權(quán)值盅抚。因此:
? ? ?a. 參數(shù)個(gè)數(shù):?與神經(jīng)元的個(gè)數(shù)無(wú)關(guān)漠魏,只與卷積核的大小及Feature Map的個(gè)數(shù)相關(guān)。
? ? ?b. 共有多少個(gè)連接個(gè)數(shù):就與神經(jīng)元的個(gè)數(shù)相關(guān)了妄均,神經(jīng)元的個(gè)數(shù)也就是特征圖的大小柱锹。
二、各層參數(shù)和鏈接數(shù)計(jì)算
舉例:
? ? ? 下面以最經(jīng)典的LeNet-5例子來(lái)逐層分析各層的參數(shù)及連接個(gè)數(shù)丰包。? ?
圖2
C1層(卷積層):是一個(gè)卷積層禁熏,由6個(gè)特征圖Feature Map構(gòu)成狈癞。特征圖中每個(gè)神經(jīng)元與5*5的鄰域(濾波器)相連友驮。
1. 特征圖大忻稳尽:特征圖的大小28*28慌随,這樣能防止輸入的連接掉到邊界之外(32-5+1=28)。
feature map邊長(zhǎng)大小的具體計(jì)算參見(jiàn):http://blog.csdn.net/qq_15192373/article/details/78393520
2. 參數(shù)個(gè)數(shù):C1有156個(gè)可訓(xùn)練參數(shù) (每個(gè)濾波器5*5=25個(gè)unit參數(shù)和一個(gè)bias參數(shù)祸穷,一共6個(gè)濾波器蜻势,共(5*5+1)*6=156個(gè)參數(shù))
3. 鏈接個(gè)數(shù)/FLOPS個(gè)數(shù)::(5*5+1)*6?*(28*28)=122,304個(gè)等限。左邊是濾波器在輸入層滑過(guò)的神經(jīng)元個(gè)數(shù)有巧,右邊是C1層每個(gè)feature map的神經(jīng)元個(gè)數(shù)释漆,左右對(duì)應(yīng)關(guān)系是1對(duì)28*28,相乘即為連接數(shù)篮迎。(每個(gè)鏈接對(duì)應(yīng)1次計(jì)算男图,由wa+b可知示姿,每個(gè)參數(shù)參與1次計(jì)算,所以1個(gè)單位的偏置b也算進(jìn)去)
----------------------------------------
S2層(下采樣層):是一個(gè)下采樣層逊笆,有6個(gè)14*14的特征圖栈戳。特征圖中的每個(gè)單元與C1中相對(duì)應(yīng)特征圖的2*2鄰域相連接。
1. 特征圖大心疡伞:每個(gè)單元的2*2感受野并不重疊子檀,因此S2中每個(gè)特征圖的大小是C1中特征圖大小的1/4(行和列各1/2)
2. 參數(shù)個(gè)數(shù):S2層有 12個(gè)?(6*(1+1)=12) 可訓(xùn)練參數(shù)。S2層?每個(gè)濾波器路過(guò)的4個(gè)鄰域的4個(gè)輸入相加差牛,乘以1個(gè)可訓(xùn)練參數(shù)w命锄,再加上1個(gè)可訓(xùn)練偏置b(即一個(gè)濾波器對(duì)應(yīng)兩個(gè)參數(shù))堰乔。(對(duì)于子采樣層偏化,每一個(gè)特征映射圖的的可變參數(shù)需要考慮你使用的采樣方式而定,如文中的采樣方式镐侯,每一個(gè)特征映射圖的可變參數(shù)數(shù)量為2個(gè)侦讨,有的采樣方式不需要參數(shù))
3. 鏈接個(gè)數(shù)/FLOPS個(gè)數(shù):5880個(gè)連接,(?(2*2+1)*6 *14*14=5880)苟翻。左邊是濾波器在C1層滑過(guò)的神經(jīng)元個(gè)數(shù)韵卤,右邊是S2層每個(gè)feature map的神經(jīng)元個(gè)數(shù),相乘即為連接數(shù)崇猫。
----------------------------------------
C3層(卷積層):是一個(gè)卷積層沈条,它同樣通過(guò)5x5的卷積核去卷積層S2,然后得到的特征map就只有10x10個(gè)神經(jīng)元诅炉,但是它有16種不同的卷積核蜡歹,所以就存在16個(gè)特征map了。
1. 特征圖大刑樯铡:C3中每個(gè)特征圖由S2中所有6個(gè)或者幾個(gè)特征map組合(幾個(gè)濾波器計(jì)算的神經(jīng)元的值 相加 合并成一個(gè)神經(jīng)元)而成月而。
為什么不把S2中的每個(gè)特征圖連接到每個(gè)C3的特征圖呢?原因有2點(diǎn)议纯。
第1父款,不完全的連接機(jī)制將連接的數(shù)量保持在合理的范圍內(nèi)。
第2瞻凤,也是最重要的憨攒,其破壞了網(wǎng)絡(luò)的對(duì)稱性。由于不同的特征圖有不同的輸入阀参,所以迫使他們抽取不同的特征(希望是互補(bǔ)的)肝集。(14-5+1=10)
2. 參數(shù)個(gè)數(shù):例如,存在的一個(gè)方式是:
C3的前6個(gè)特征圖:相當(dāng)于需要6組濾波器结笨,每組以S2中 3個(gè)相鄰?特征圖子集 為輸入包晰,共享一個(gè)偏置湿镀。(C3每個(gè)特征圖 由 S2中3個(gè)特征圖分別用不同濾波器 再加和得到)
C3的接下來(lái)6個(gè)特征圖:相當(dāng)于需要6組濾波器,每組以S2中 4個(gè)相鄰?特征圖子集 為輸入伐憾,共享一個(gè)偏置勉痴。(1對(duì)4)
C3的接下來(lái)3個(gè)特征圖:相當(dāng)于需要3組濾波器,每組以S2中4個(gè)不相鄰?特征圖子集 為輸入树肃,共享一個(gè)偏置蒸矛。(1對(duì)4)
C3的最后1個(gè)特征圖:相當(dāng)于需要1組濾波器,每組將S2中所有?特征圖 為輸入胸嘴,共享一個(gè)偏置雏掠。(1對(duì)6)
這樣C3層有1516個(gè)可訓(xùn)練參數(shù)。計(jì)算:6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+(25*6+1)=1516劣像。此處乡话,C3個(gè)特征圖由 S2中n個(gè)卷積結(jié)果合并,然后共享1個(gè)b耳奕,組合計(jì)算得到绑青。
3.鏈接個(gè)數(shù)/FLOPS個(gè)數(shù):1516*10*10=151600個(gè)連接。左邊是濾波器滑過(guò)的S2層神經(jīng)元個(gè)數(shù)屋群,右邊是C3層特征圖大小闸婴。
------------------------------------------
S4層(下采樣層):是一個(gè)下采樣層,由16個(gè)5*5大小的特征圖構(gòu)成芍躏。特征圖中的每個(gè)單元與C3中相應(yīng)特征圖的2*2鄰域相連接邪乍,跟C1和S2之間的連接一樣。
1. 特征圖大卸钥ⅰ:5*5大小庇楞。每個(gè)單元的2*2感受野并不重疊,因此S2中每個(gè)特征圖的大小是C1中特征圖大小的1/4(行和列各1/2)
2. 參數(shù)個(gè)數(shù):S4層有32個(gè)可訓(xùn)練參數(shù)柏肪。(每個(gè)特征圖1個(gè)因子w和1個(gè)偏置b姐刁,16*(1+1)=32)
3.?鏈接個(gè)數(shù)/FLOPS個(gè)數(shù):16* (2*2+1) *5*5=2000個(gè)連接。左邊是濾波器在C3層滑過(guò)的神經(jīng)元個(gè)數(shù)烦味,右邊是S4層神經(jīng)元個(gè)數(shù)聂使,相乘即為連接數(shù)。
--------------------------------------------
C5層(卷積層或第一個(gè)全連接層):是一個(gè)卷積層谬俄,有120個(gè)特征圖(或者說(shuō)神經(jīng)元)柏靶。每個(gè)單元與S4層的全部16個(gè)單元的5*5鄰域(與S4層特征圖一樣大)相連。(120組濾波器, 每組16個(gè)濾波器,分別與 S4層16個(gè)特征圖 進(jìn)行卷積, 每組得到C5層的一個(gè)神經(jīng)元/特征圖)
1. 特征圖大欣B邸:由于S4層特征圖的大小也為5*5(同濾波器一樣)屎蜓,故C5特征圖的大小為1*1。(5-5+1=1), 這構(gòu)成了S4和C5之間的全連接钥勋。之所以仍將C5標(biāo)示為卷積層而非全相聯(lián)層炬转,是因?yàn)槿绻鸏eNet-5的輸入變大辆苔,而其他的保持不變,那么此時(shí)特征圖的維數(shù)就會(huì)比1*1大扼劈。
2. 參數(shù)個(gè)數(shù):120* (16*5*5+1)=48120個(gè)驻啤。濾波器個(gè)數(shù)120*16個(gè),所以w有120*16*5*5個(gè)荐吵,同組16個(gè)濾波器共用一個(gè)b骑冗,所以有120個(gè)b。
3.?鏈接個(gè)數(shù)/FLOPS個(gè)數(shù):48120*1*1,左邊是濾波器滑過(guò)的神經(jīng)元個(gè)數(shù)先煎,右邊是C5層特征圖大小(其實(shí)現(xiàn)在已經(jīng)變成了單個(gè)神經(jīng)元贼涩,大小1*1),相乘即為連接數(shù)薯蝎,此處也即FLOPS個(gè)數(shù)遥倦。
--------------------------------------------
F6層(全連接層):雖然是全連接層,得到F6層每個(gè)神經(jīng)元 由?每組120個(gè)1*1的濾波器對(duì)C5層卷積良风,一共84組濾波器谊迄,得到84個(gè)神經(jīng)元闷供。
1. 特征圖大醒萄搿:有84個(gè)單元(之所以選這個(gè)數(shù)字的原因來(lái)自于輸出層的設(shè)計(jì)),與C5層全相連歪脏。
2. 參數(shù)個(gè)數(shù):有 84* (120*(1*1)+1)=10164 個(gè)可訓(xùn)練參數(shù)疑俭。如同經(jīng)典神經(jīng)網(wǎng)絡(luò),F(xiàn)6層計(jì)算輸入向量(120)和權(quán)重向量(1*1)之間的點(diǎn)積婿失,再加上一個(gè)偏置(+1)钞艇。然后將其傳遞給sigmoid函數(shù)產(chǎn)生單元i的一個(gè)狀態(tài)。
3.?鏈接個(gè)數(shù)/FLOPS個(gè)數(shù):10164* 1*1豪硅,左邊是濾波器在C5層滑過(guò)的神經(jīng)元個(gè)數(shù)哩照,右邊是F6層特征圖大小。1個(gè)鏈接對(duì)應(yīng)1次計(jì)算懒浮。
--------------------------------------------
輸出層:由歐式徑向基函數(shù)(Euclidean Radial Basis Function)單元組成飘弧,每類一個(gè)單元,每個(gè)有84個(gè)輸入砚著。
--------------------------------------------
三次伶、卷積和下采樣說(shuō)明
圖3 卷積和子采樣過(guò)程
卷積過(guò)程包括:用一個(gè)可訓(xùn)練的濾波器fx去卷積一個(gè)輸入的圖像(第一階段是輸入的圖像,后面的階段就是卷積特征map了)稽穆,然后加一個(gè)偏置bx冠王,得到卷積層Cx。
子采樣過(guò)程包括:每鄰域四個(gè)像素求和變?yōu)橐粋€(gè)像素舌镶,然后通過(guò)標(biāo)量Wx+1加權(quán)柱彻,再增加偏置bx+1豪娜,然后通過(guò)一個(gè)sigmoid激活函數(shù),產(chǎn)生一個(gè)大概縮小四倍的特征映射圖Sx+1哟楷。