概述
Google Inception Net最大的特點是控制計算量和參數(shù)量的同時白华,獲得了較好的性能。它的參數(shù)量僅為AlexNet的1/12贩耐,Inception V1有22層深弧腥。Inception Net參數(shù)少但效果好的原因,除了網(wǎng)絡(luò)模型層數(shù)較深潮太,還有2點:
(1)去除了全連接層管搪,用平均池化層來代替;去除全連接層后模型訓(xùn)練更快并且減輕了過擬合铡买。用平均池化層取代全連接層的做法借鑒了Network In Network(NIN)論文更鲁。
(2)Inception Net設(shè)計的Inception Module提高了參數(shù)的利用效率。
Inception V1為什么以降低參數(shù)量為目的:
參數(shù)越多奇钞,計算壓力更大澡为,需要的計算資源越多。
參數(shù)越多景埃,模型越容易過擬合媒至。
參數(shù)越多顶别,模型就需要更多的數(shù)據(jù)來學(xué)習(xí),但是高質(zhì)量的訓(xùn)練數(shù)據(jù)很寶貴拒啰。
參數(shù)越多驯绎,模型訓(xùn)練越慢。
Inception V1如何降低參數(shù)量:
用全局平均池化層代替了全連接谋旦。
大量1x1的卷積核的使用条篷。
Inception Net設(shè)計的思路是什么?(好的深度網(wǎng)絡(luò)有哪些設(shè)計原則):
(1)逐層構(gòu)造網(wǎng)絡(luò):如果數(shù)據(jù)集的概率分布能夠被一個神經(jīng)網(wǎng)絡(luò)所表達(dá)蛤织,那么構(gòu)造這個網(wǎng)絡(luò)的最佳方法是逐層構(gòu)造網(wǎng)絡(luò)--即將上一層高度相關(guān)的節(jié)點連接在一起。幾乎所有效果好的深度網(wǎng)絡(luò)都具有這一點鸿染,不管AlexNet指蚜,VGGNet堆疊多個卷積層,GoogleNet堆疊多個Inception Module涨椒,還是ResNet堆疊多個resblock摊鸡;并且模塊化方便網(wǎng)絡(luò)的修改。
(2)稀疏的結(jié)構(gòu):人腦的神經(jīng)元連接就是稀疏的蚕冬,因此大型神經(jīng)網(wǎng)絡(luò)的合理連接方式也應(yīng)該是稀疏的免猾。稀疏的結(jié)構(gòu)對于大型神經(jīng)網(wǎng)絡(luò)至關(guān)重要,可以減輕計算量并減少過擬合囤热。 卷積操作(局部連接猎提,權(quán)值共享)本身就是一種稀疏的結(jié)構(gòu)(相比于全連接網(wǎng)絡(luò)結(jié)構(gòu)是很稀疏的)。
(3)符合Hebbian原理: 一起發(fā)射的神經(jīng)元會連在一起旁蔼。 相關(guān)性高的節(jié)點應(yīng)該被連接而在一起锨苏。
Inception中 1×1的卷積恰好可以融合三者。我們一層可能會有多個卷積核棺聊,在同一個位置但在不同通道的卷積核輸出結(jié)果相關(guān)性極高伞租。一個1×1的卷積核可以很自然的把這些相關(guān)性很高,在同一個空間位置限佩,但不同通道的特征結(jié)合起來葵诈。而其它尺寸的卷積核(3×3,5×5)可以保證特征的多樣性祟同,因此也可以適量使用作喘。于是,這就完成了Inception module下圖的設(shè)計初衷:4個分支:
New Version比Old Version是如何減少參數(shù)量的:
原始結(jié)構(gòu):
參數(shù):(1×1×192×64) + (3×3×192×128) + (5×5×192×32) = 153600
最終輸出的feature map:64+128+32+192 = 416
加入不同channel的1×1卷積后:
參數(shù):1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32)+
1x1x192x32=22016
最終輸出的feature map: 64+128+32+32=256
New Version引入1×1的卷積后的效果:
(1)減少了模型參數(shù)
(2)減少了計算量
(3)減低了輸出特征圖的維度
1×1的卷積能減少參數(shù)和計算量的原理是:把通道變換的任務(wù)分成幾步耐亏,其中1步讓它來完成徊都。在Old Version中,輸入特征圖的通道太多广辰,3x3和5x5的卷積核所需的計算量就太大暇矫,為了避免這種情況主之,在3x3和5x5的卷積操作前分別加上了1x1的卷積核,以起到減少輸入特征圖通道數(shù)的作用(減少卷積的計算量)李根。
GoogleNet有22層深槽奕,比同年的VGG-19還深。包含了9個Inception Module房轿,其結(jié)構(gòu)如下圖所示:
對上圖說明如下:
(1)GoogLeNet采用了模塊化的結(jié)構(gòu)(Inception結(jié)構(gòu))粤攒,方便增添和修改;
(2)網(wǎng)絡(luò)最后采用了average pooling(平均池化)來代替全連接層囱持,該想法來自NIN夯接,事實證明這樣可以將準(zhǔn)確率提高0.6%。但是纷妆,實際在最后還是加了一個全連接層盔几,主要是為了方便對輸出進(jìn)行靈活調(diào)整;
(3)雖然移除了全連接掩幢,但是網(wǎng)絡(luò)中依然使用了Dropout ;
(4)為了避免梯度消失逊拍,網(wǎng)絡(luò)額外增加了2個輔助的Softmax用于向前傳導(dǎo)梯度(輔助分類器)。輔助分類器是將中間某一層的輸出用作分類际邻,并按一個較小的權(quán)重(0.3)加到最終分類結(jié)果中芯丧,這樣相當(dāng)于做了模型融合,同時給網(wǎng)絡(luò)增加了反向傳播的梯度信號世曾,也提供了額外的正則化缨恒,對于整個網(wǎng)絡(luò)的訓(xùn)練很有裨益。而在實際測試的時候轮听,這兩個額外的Softmax會被去掉肿轨。