從圖像中提取CNN特征式镐,VGG模型是首選算法 堂飞。VGG是牛津大學(xué)?Visual Geometry Group(視覺(jué)幾何組)的縮寫路狮,以研究機(jī)構(gòu)命名步绸。
VGG論文給出了一個(gè)非常振奮人心的結(jié)論:卷積神經(jīng)網(wǎng)絡(luò)的深度增加和小卷積核的使用對(duì)網(wǎng)絡(luò)的最終分類識(shí)別效果有很大的作用尝丐,VGG基本全部是 3x3小卷積核 和 2x2池化核显拜。
VGG典型的有16層的VGG16和19層的VGG19,VGG之所以堆疊很多3x3的小卷積核的卷積層爹袁,就要說(shuō)到CNN感受野的問(wèn)題了远荠。
關(guān)于感受野有一個(gè)說(shuō)法:兩個(gè)3x3卷積層等于一個(gè)5x5卷積層,三個(gè)3x3卷積層失息,等于一個(gè)7x7卷積層譬淳。
感受野(receptive field)用來(lái)表示網(wǎng)絡(luò)內(nèi)部的不同神經(jīng)元對(duì)原圖像的感受范圍的大小档址,或者說(shuō),CNN每一層輸出的特征圖(feature map)上的像素點(diǎn)在原始圖像上映射的區(qū)域大小邻梆。
舉個(gè)例子守伸,在單個(gè)maxpooling層中,如果它的kenerl size是2x2浦妄,輸出結(jié)果中的每一個(gè)元素都是其對(duì)應(yīng)輸入的2x2的區(qū)域中的最大值尼摹,所以這一層的感受野大小就是2。其實(shí)感受野的大小是由kernel size和stride size一起決定的剂娄,公式是:?
rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize (?其中out是指上一層感受野的大写览浴)
注意:感受野在計(jì)算的時(shí)候不考慮“邊界填充”,因?yàn)樘畛涞倪吔缫呀?jīng)不是原始圖像本身的內(nèi)容了阅懦,感受野描述的是輸出特征到原始圖像的映射關(guān)系和二,故而不考慮padding 。實(shí)際建模過(guò)程中可能需要填充邊界耳胎,原理一樣惯吕,只是計(jì)算稍微復(fù)雜點(diǎn)。?
而不考慮padding的卷積的正向維度計(jì)算公式是:??? 场晶,是上式反推
上面是遞推的公式混埠,下面是卷積過(guò)程的圖解,為了簡(jiǎn)單诗轻,步幅設(shè)定為1.
從上面可以看出:第一層網(wǎng)絡(luò)輸出的圖像中钳宪,輸出結(jié)果為8x8,output1輸出的每一個(gè)特征(即每一個(gè)像素)受到原始圖像的3x3區(qū)域內(nèi)的影響扳炬,故而第一層的感受野為3吏颖,用字母表示為
RF1=3 (每一個(gè)像素值與原始圖像的3x3區(qū)域有關(guān))
再說(shuō)回VGG用多個(gè)3x3卷積層疊加而不是更少的大尺寸卷積核的原因
這樣做的主要目的是:
(1)保證具有相同感知野的條件下,提升了網(wǎng)絡(luò)的深度恨樟,在一定程度上提升了神經(jīng)網(wǎng)絡(luò)的效果半醉;
(2)減少計(jì)算參數(shù)量。一個(gè)7x7卷積核的參數(shù)有49個(gè)劝术,三個(gè)3x3卷積核的參數(shù)有27個(gè)缩多,減少約一半
(3)多個(gè)?3x3?的卷基層比一個(gè)大尺寸?filter卷積層有更多的非線性(更多層的非線性函數(shù)),使得判決函數(shù)更加具有判決性