GoogleNet論文筆記

Abstract

本篇論文的主要成就是高效的利用了網(wǎng)絡(luò)內(nèi)部的計(jì)算能力,在保證計(jì)算消耗穩(wěn)定不變的情況下提升了網(wǎng)絡(luò)的深度和寬度。設(shè)計(jì)基于海扁準(zhǔn)則和多尺度處理問題的直覺。

1、introduction

在過去的三年中(2013-2015),由于深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,我們?cè)诜诸惡蜋z測(cè)問題上有了飛速的發(fā)展。并且,這些進(jìn)步往往是由于一系列的新想法,算法和提升的網(wǎng)絡(luò)結(jié)構(gòu)而并不是更強(qiáng)硬件或者更深的網(wǎng)絡(luò)或者更大的數(shù)據(jù)集導(dǎo)致的。有效率的利用計(jì)算資源才是今后發(fā)展的關(guān)鍵。就像我們的GoogleNet一樣強(qiáng)無敵(名為inception)。

2、Related Work

從LeNet-5開始,cnn就開始有了比較標(biāo)準(zhǔn)的結(jié)構(gòu)(有一系列的可選的標(biāo)準(zhǔn)化和池化層堆疊而成)。基于這種結(jié)構(gòu)的模型在各個(gè)數(shù)據(jù)中都有不錯(cuò)的表現(xiàn),而最近的趨勢(shì)則是增加網(wǎng)絡(luò)的深度和寬度并使用dropout來處理過擬合。盡管max-pooling會(huì)造成空間信息的丟失,但還是被應(yīng)用到了局部化,物體檢測(cè)和人體姿勢(shì)識(shí)別等方面。

收到生物神經(jīng)學(xué)的啟發(fā)有人使用了一系列固定的大小的不同Gabor濾波器來處理多尺度的問題。inception也使用了類似的結(jié)構(gòu)。但是不同的是,inception中所有的過濾器都是學(xué)習(xí)得來的,他們多次的出現(xiàn)構(gòu)成了22層的googlenet。

lin提出的network-in-network結(jié)構(gòu)增強(qiáng)了網(wǎng)絡(luò)的表現(xiàn)能力。他們使用11的卷積層增加了深度,在我們goolenet中同樣大量的使用了11的卷積層。主要是為了降低維度用以解決計(jì)算瓶頸。這使得我們不僅可以加深網(wǎng)絡(luò),同時(shí)還可以加寬,而不造成嚴(yán)重的性能下降。

現(xiàn)在最好的物體檢測(cè)方法是區(qū)域卷積神經(jīng)網(wǎng)R-CNN,它將整個(gè)檢測(cè)問題分解為兩個(gè)子問題:第一部使用低層線索比如組成潛在物體的顏色、超像素等,提取出一些類別不可知的信息,然后接下來利用CNN在這些區(qū)塊信息上識(shí)別物體類別。這種雙步方法中,低層線索會(huì)影響切分區(qū)塊大小的準(zhǔn)確性以及CNN分類的準(zhǔn)確度。我們?cè)谔峤坏臋z測(cè)程序中采用了同樣的管道,但我們對(duì)其中的每一步都進(jìn)行了加強(qiáng),比如采用多盒預(yù)測(cè)以提高邊界識(shí)別集合的召回率,還對(duì)bounding box提出的分類建議進(jìn)行了不同方法的搭配合成,以獲得更好的結(jié)果。

3、Motivation and High Level Considerations

最直接增強(qiáng)深度網(wǎng)絡(luò)的表現(xiàn)能力的方法就是增大他們的體積。尤其是當(dāng)???足夠大的訓(xùn)練集的時(shí)候,增大深度和寬度就顯得尤其簡(jiǎn)單粗暴。但是有兩個(gè)缺點(diǎn)
首先大號(hào)的網(wǎng)絡(luò)意味著很多的參數(shù),這就會(huì)更容易導(dǎo)致過擬合。
另一個(gè)問題就是會(huì)導(dǎo)致計(jì)算資源需求的增加,在深度網(wǎng)絡(luò)中,還可能會(huì)有很多計(jì)算資源被浪費(fèi)。
解決這兩個(gè)問題的根本途徑就是將全連接替換為稀疏連接結(jié)構(gòu),甚至是在卷積內(nèi)部。但是目前的計(jì)算設(shè)備對(duì)于非均勻的稀疏數(shù)據(jù)計(jì)算效率非常低下,即使是算術(shù)運(yùn)算量減少100倍,分支預(yù)測(cè)和緩存的開銷依然非常顯著導(dǎo)致稀疏矩陣無法運(yùn)用。cnn使用隨機(jī)和特征維度的稀疏連接表,打破網(wǎng)絡(luò)的對(duì)稱性和改善學(xué)習(xí)效果,但為了更好地優(yōu)化并行計(jì)算,趨勢(shì)又重新回到了全連接。文章中提到將稀疏矩陣分解成稠密子矩陣進(jìn)行計(jì)算加速,但同時(shí)指出稀疏矩陣在近期還不會(huì)用于深層網(wǎng)絡(luò)的構(gòu)建。

4、Architectural Details

inception的主要思想就是找到一個(gè)簡(jiǎn)單可實(shí)現(xiàn)的稠密組件去逼近和替代一個(gè)最優(yōu)的局部稀疏結(jié)構(gòu),并在空間上不斷重復(fù)這種結(jié)構(gòu)。
Arora提出了一個(gè)逐層了結(jié)構(gòu),它能夠?qū)ι弦粚舆M(jìn)行相關(guān)統(tǒng)計(jì)分析,將相關(guān)性較高的單元聚類在一起組成下一層并與上一層的單元相連。我們假設(shè)下層的每個(gè)單元都與輸入圖片的一些區(qū)域相關(guān),并且這些單元被組分到filter banks中,而在更底層(接近輸入)中的相關(guān)單元會(huì)注意集中在局部區(qū)域。因此我們就發(fā)現(xiàn)了很多的聚類關(guān)注是同一個(gè)區(qū)域,在下一層通過1*1的卷積覆蓋。


也可以通過在更大的patch上卷積,覆蓋少量的在空間上更大的聚類,區(qū)域越來越大,patch數(shù)越來越少

為了避免patch校準(zhǔn)問題,現(xiàn)在的濾波器大小限制在1x1,3x3和5x5,主要是為了方便,不是必要的。inception最后將這些層的結(jié)果合并到一起,作為下一步的輸入,此外inception結(jié)構(gòu)中也加入了pooling操作提升效果。


總結(jié):
1 . 采用不同大小的卷積核意味著不同大小的感受野,最后拼接意味著不同尺度特征的融合;
2 . 之所以卷積核大小采用1、3和5,主要是為了方便對(duì)齊。設(shè)定卷積步長(zhǎng)stride=1之后,只要分別設(shè)定pad=0、1、2,那么卷積之后便可以得到相同維度的特征,然后這些特征就可以直接拼接在一起了;
3 . 文章說很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
4 . 網(wǎng)絡(luò)越到后面,特征越抽象,而且每個(gè)特征所涉及的感受野也更大了,因此隨著層數(shù)的增加,3x3和5x5卷積的比例也要增加。

但是,使用5x5的卷積核仍然會(huì)帶來巨大的計(jì)算量。采用1x1卷積核來進(jìn)行降維。 例如:上一層的輸出為100x100x128,經(jīng)過具有256個(gè)輸出的5x5卷積層之后(stride=1,pad=2),輸出數(shù)據(jù)為100x100x256。其中,卷積層的參數(shù)為128x5x5x256。假如上一層輸出先經(jīng)過具有32個(gè)輸出的1x1卷積層,再經(jīng)過具有256個(gè)輸出的5x5卷積層,那么最終的輸出數(shù)據(jù)仍為為100x100x256,但卷積參數(shù)量已經(jīng)減少為128x1x1x32 + 32x5x5x256,大約減少了4倍。

具體改進(jìn)后的Inception Module:

這一結(jié)構(gòu)一個(gè)有利的方面是它允許每一步的神經(jīng)元大量增加,而不會(huì)導(dǎo)致計(jì)算復(fù)雜度的暴增。
降維的普遍存在能夠阻擋大量來自上一層的數(shù)據(jù)涌入下一層的過濾器,在大區(qū)塊上對(duì)其進(jìn)行卷積之前就對(duì)其進(jìn)行降維。
簡(jiǎn)而言之,inception用非對(duì)稱的稠密組件去近似一個(gè)稀疏結(jié)構(gòu),既增加了網(wǎng)絡(luò)的深度和寬度,減少了計(jì)算需求,稀疏連接的方式還有助于減少過擬合。

5、googlenet

總體結(jié)構(gòu):
1.包括Inception模塊的所有卷積,都用了修正線性單元(ReLU);
2.網(wǎng)絡(luò)的感受野大小是224x224,采用RGB彩色通道,且減去均值;
3.#3x3 reduce和#5x5 reduce分別表示3x3和5x5的卷積前縮減層中1x1濾波器的個(gè)數(shù);pool proj表示嵌入的max-pooling之后的投影層中1x1濾波器的個(gè)數(shù);縮減層和投影層都要用ReLU;
4.網(wǎng)絡(luò)包含22個(gè)帶參數(shù)的層(如果考慮pooling層就是27層),獨(dú)立成塊的層總共有約有100個(gè);
5.網(wǎng)絡(luò)中間的層次生成的特征會(huì)非常有區(qū)分性,給這些層增加一些輔助分類器。這些分類器以小卷積網(wǎng)絡(luò)的形式放在Inception(4a)和Inception(4b)的輸出上。在訓(xùn)練過程中,損失會(huì)根據(jù)折扣后的權(quán)重(折扣權(quán)重為0.3)疊加到總損失中。

具體細(xì)節(jié):
1.均值pooling層濾波器大小為5x5,步長(zhǎng)為3,(4a)的輸出為4x4x512,(4d)的輸出為4x4x528;
2.1x1的卷積有用于降維的128個(gè)濾波器和修正線性激活;
3.全連接層有1024個(gè)單元和修正線性激活;
4.dropout層的dropped的輸出比率為70%;
5.線性層將softmax損失作為分類器(和主分類器一樣預(yù)測(cè)1000個(gè)類,但在inference時(shí)移除)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容