1.傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)
在上圖中我們看到左圖是沒(méi)有深度的倔丈,而右圖增加了深度。
左圖:全連接神經(jīng)網(wǎng)絡(luò)(平面),組成:輸入層朋蔫、激活函數(shù)棚品、全連接層
右圖:卷積神經(jīng)網(wǎng)絡(luò)(立體)躏筏,組成:輸入層蒜魄、卷積層檩禾、激活函數(shù)旺入、池化層兑凿、全連接層
2.卷積層計(jì)算
fliter在原始輸入上滑動(dòng),我們得到新的特征茵瘾,滑動(dòng)過(guò)程中有步長(zhǎng)的概念礼华。就上圖而言輸入時(shí)32x32x3,輸出是5x5x3拗秘,我們每個(gè)fliter(單層)與每一個(gè)輸入(單層)進(jìn)行卷積操作圣絮,然后,得到28x28的輸出層三個(gè)雕旨,我們需要對(duì)這三個(gè)進(jìn)行求和晨雳,然后加上偏置項(xiàng),最后得到28x28x1的卷積輸出層奸腺。
步長(zhǎng):即fliter滑動(dòng)的步長(zhǎng)餐禁,步長(zhǎng)越長(zhǎng),提取的特征越多突照,但是需要的計(jì)算時(shí)間也就越多帮非。
輸出層和輸入層之間的關(guān)系:
stride是步長(zhǎng),pad是卷積的補(bǔ)償讹蘑,即是為了防止邊緣的特征提取少于中間的特征提取末盔,所以加入了補(bǔ)償。如下圖所示
上圖中座慰,我們看到多個(gè)fliter在輸入上滑動(dòng)陨舱,我們會(huì)得到多個(gè)輸出,一般我們會(huì)使用多個(gè)fliter版仔。
在卷積神經(jīng)網(wǎng)絡(luò)中游盲,有一個(gè)非常重要的特性:權(quán)值共享。
所謂的權(quán)值共享就是說(shuō)蛮粮,給一張輸入圖片益缎,用一個(gè)filter去掃這張圖,filter里面的數(shù)就叫權(quán)重然想,這張圖每個(gè)位置是被同樣的filter掃的莺奔,所以權(quán)重是一樣的,也就是共享变泄。
3.池化層
上圖顯示令哟,池化就是對(duì)特征圖進(jìn)行特征壓縮恼琼,池化也叫做下采樣。選擇原來(lái)某個(gè)區(qū)域的max或mean代替那個(gè)區(qū)域屏富,整體就濃縮了晴竞。下面演示一下pooling操作,需要制定一個(gè)filter的尺寸役听、stride、pooling方式(max或mean):
4.卷積神經(jīng)網(wǎng)絡(luò)組成
5.反向傳播
6.卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
VGGNet深度更多表窘,有很多卷積層和池化層典予。一個(gè)版本有16層,另一個(gè)版本有19層(較常用)乐严。
VGGNet的特點(diǎn):
filter只有3*3的瘤袖,意味著計(jì)算的特征較多,粒度更細(xì)昂验。同時(shí)pooling的參數(shù)也有固定捂敌。
注意:傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)層數(shù)越多并以意味著效果更好。而在2016年推出了深度殘差網(wǎng)絡(luò)達(dá)到了152層既琴。后續(xù)講介紹占婉。
那么訓(xùn)練一個(gè)VGGNet有多少內(nèi)存開(kāi)銷呢?
從圖可得知甫恩,訓(xùn)練過(guò)程中一張224*224*3的圖像會(huì)有138M個(gè)參數(shù)會(huì)占93MB的內(nèi)存逆济。因此每個(gè)batch中圖像的數(shù)目應(yīng)該受內(nèi)存的約束,即 93*圖像數(shù)目<內(nèi)存總?cè)萘俊?/p>