24組-Going Deeper with Convolutions

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Abstract

????????本文提出了一種代號為Inception的深度卷積神經(jīng)網(wǎng)絡結(jié)構(gòu),其最大特點就是對網(wǎng)絡內(nèi)部計算資源的利用進行了優(yōu)化。通過新的設計來使得在計算消耗穩(wěn)定性不變的情況下增加網(wǎng)絡的寬度與深度。為了提高質(zhì)量,架構(gòu)的設計以Hebbian理論和多尺度處理直覺為基礎。我們在ILSVRC 2014提交中應用的一個特例被稱為GoogLeNet,它是一個22層的深度網(wǎng)絡,我們在分類和檢測這兩項指標中對其性能進行了評估。

1. Introduction

????????由于深度學習和卷積網(wǎng)絡的發(fā)展,我們在目標分類和檢測上的能力得到了很大的提高,這主要歸功于新的想法、算法和網(wǎng)絡結(jié)構(gòu),而不僅僅是更強的硬件、更多的數(shù)據(jù)集和更大模型的結(jié)果。我們在ILSVRC 2014中的GoogLeNet中實際使用的參數(shù)只有兩年前Krizhevsky等人獲勝結(jié)構(gòu)參數(shù)的1/12,但我們的結(jié)果明顯更加準確。另一個顯著的因素是,隨著移動和嵌入式設備的發(fā)展,我們的算法的效率尤其是其能量和存儲利用率,變得越來越重要。值得注意的是,本文中提出的深度架構(gòu)設計正是基于這樣的考慮,而不是單純的為了提高準確率。

????????在本文中,我們所關(guān)注的是一個應用于計算機視覺的深度神經(jīng)網(wǎng)絡,其代號為Inception,在這里單詞“deep”有兩個不同的含義:首先,我們以“Inception module”的形式引入了一種新層次的組織方式,同時以更加直接的方式來增加網(wǎng)絡深度。一般來說,可以把Inception模型看作是從Arora等人的理論工作中得到了靈感。這種架構(gòu)的優(yōu)勢已經(jīng)在ILSVRC 2014分類與檢測挑戰(zhàn)賽中得到了驗證,其明顯優(yōu)于現(xiàn)有最好水平。

2.?Related Work

????????從LeNet-5 開始,卷積神經(jīng)網(wǎng)絡(CNN)通常有一個標準的結(jié)構(gòu)——堆疊的卷積層,后面是一個或更多的全連接層。這種基礎設計的變種在圖像分類領域十分流行,對于比較大的數(shù)據(jù)集例如ImageNet來說,最近的趨勢是增加層的數(shù)目和層的大小,同時使用dropout來解決過擬合問題。

????????盡管max-pooling層可能會引起準確空間信息的損失,但與其相同的卷積網(wǎng)絡結(jié)構(gòu)已經(jīng)被成功的應用于定位、目標檢測和行人姿態(tài)估計等領域。受到神經(jīng)科學對主要視覺皮層進行建模的啟發(fā),Serre等人用一系列不同大小的固定的Gabor濾波器去處理多尺度,這與Inception是相一致的。但是,和以往不同的是Inception中所有濾波器是學習得到的。此外,Inception的各層都重復多次出現(xiàn),形成了GoogLeNet——一個22層網(wǎng)絡模型。

????????在我們的結(jié)構(gòu)中也大量的使用了類似于在Network-in-Network中添加額外的1 × 1卷積層,來增加網(wǎng)絡的深度。,在這里添加額外卷積層最關(guān)鍵的是,它們主要是用來作為降維模塊來移除卷積瓶頸,否則將會限制我們網(wǎng)絡的大小。這使得我們不僅可以加深網(wǎng)絡,同時還可以加寬,而不造成嚴重的性能下降。

????????我們在我們的結(jié)構(gòu)種也采用了類似于Girshick等人的基于區(qū)域的卷積神經(jīng)網(wǎng)絡(R-CNN)方法。R-CNN將整個檢測問題分解為兩個子問題:利用低層次的信號例如顏色,紋理以跨類別的方式來產(chǎn)生目標位置候選區(qū)域,然后用CNN分類器來識別那些位置上的對象類別。但我們對其中的每一步都進行了加強,比如采用多盒預測以提高邊界識別集合的召回率,還對bounding box提出的分類建議進行了不同方法的搭配合成,以獲得更好的結(jié)果。

3. Motivation and High LevelConsiderations

????????提高深度神經(jīng)網(wǎng)絡性能最直接的方式是增加它們的尺寸。這是一種訓練更高質(zhì)量模型容易且安全的方法,但是這個簡單方案有兩個主要的缺點。更大的網(wǎng)絡規(guī)模往往意味著更多的參數(shù),這使得擴大后的網(wǎng)絡更易過擬合,特別是當訓練集中的標簽樣例有限的時候。而且經(jīng)常需要專家評委在各種細粒度的視覺類別進行區(qū)分,例如圖1中顯示的ImageNet中的類別(甚至是1000類ILSVRC的子集)。

Figure 1: Two distinct classes from the 1000 classes of the ILSVRC 2014 classi?cation challenge.

????????另外一個統(tǒng)一增加網(wǎng)絡大小的缺點是計算資源的需求顯著增加。例如,在一個深度視覺網(wǎng)絡中,如果兩個卷積層相連,它們的濾波器數(shù)目的任何均勻增加都會引起計算量平方式的增加。如果增加的能力使用時效率低下,那么大量的計算會被浪費。實際應用中可用的計算力是有限的。

????????解決這兩個問題的一個基本方法就是將全連接層替換為稀疏的連接層,甚至是卷積層。由于Arora等人的開創(chuàng)性工作證明這樣做可以在理論上獲得更好的系統(tǒng)。Arora等人的主要成果說明如果數(shù)據(jù)集的概率分布可以通過一個大型稀疏的深度神經(jīng)網(wǎng)絡來表示,則最優(yōu)的網(wǎng)絡拓撲結(jié)構(gòu)可以通過分析前一層激活的相關(guān)性統(tǒng)計和聚類高度相關(guān)的神經(jīng)元來一層層的構(gòu)建。

????????但是,當碰到在非均勻的稀疏數(shù)據(jù)結(jié)構(gòu)上進行數(shù)值計算時,現(xiàn)在的計算架構(gòu)效率非常低下。隨著穩(wěn)定提升和高度調(diào)整的數(shù)值庫的應用,差距仍在進一步擴大,非均勻的稀疏模型要求更多的復雜工程和計算基礎結(jié)構(gòu)。目前大多數(shù)面向視覺的機器學習系統(tǒng)通過采用卷積的優(yōu)點來利用空域的稀疏性。然而,卷積被實現(xiàn)為對上一層塊的密集連接的集合。為了打破對稱性,提高學習水平,卷積神經(jīng)網(wǎng)通常在特征維度中使用隨機的稀疏的連接表,以打破對稱性,提高學習水平,然而,這種趨勢會倒退回全連接模式,以便更好的使用并行計算。統(tǒng)一的結(jié)構(gòu)、巨大的濾波器數(shù)量和更大的批次(batch)規(guī)模將允許使用高效的密集矩陣運算。

????????這提出了下一個中間步驟是否有希望的問題:一個架構(gòu)能利用濾波器水平的稀疏性,正如理論所認為的那樣,但能通過利用密集矩陣計算來利用我們目前的硬件。在不久的將來我們可能會利用將稀疏矩陣聚類為相對密集的子矩陣會有更佳的性能這種特性來進行非均勻深度學習架構(gòu)的自動構(gòu)建。

????????Inception架構(gòu)開始是作為案例研究,用于評估一個復雜網(wǎng)絡拓撲構(gòu)建算法的假設輸出, Inception被證明在定位上下文和目標檢測中尤其有用。有趣的是,雖然大多數(shù)最初的架構(gòu)選擇已被質(zhì)疑并分離開進行全面測試,但結(jié)果證明它們是局部最優(yōu)的。然而必須謹慎:盡管Inception架構(gòu)在計算機上領域取得成功,但這是否可以歸因于構(gòu)建其架構(gòu)的指導原則仍是有疑問的,確保這一點將需要更徹底的分析和驗證。

4. Architectural Details

????????Inception架構(gòu)的主要思想是基于找出如何能夠?qū)⒕矸e神經(jīng)網(wǎng)絡中的最優(yōu)局部稀疏結(jié)構(gòu)用現(xiàn)成的稠密結(jié)構(gòu)所近似替代。因為轉(zhuǎn)換不變性,我們的網(wǎng)絡將會以卷積構(gòu)建塊為基礎進行構(gòu)建。我們所需要做的就是找到一個最優(yōu)的局部結(jié)構(gòu)并在空間上重復它。Arora等人提出了一種層級結(jié)構(gòu),其中每一層應該分析上一層的相關(guān)統(tǒng)計并把它們聚合成具有高相關(guān)性的單元組。這些聚類構(gòu)成了下一層的單元并且與上一層的單元相連接。我們假設每個來自前面層的單元都與輸入圖像的某個區(qū)域相對應,而且這些單元被分到濾波器組。在較低的層(接近輸入的層)相關(guān)的單元會集中于局部區(qū)域。這意味著,我們最終會有很多聚類集中于單個區(qū)域并且它們都可以被下一層的一個1×1卷積層所覆蓋,正如[12]中所示。然而,也可以期望將會有在空間上擴展更多的而且能被更大塊卷積覆蓋的更小數(shù)量的聚類,并且隨著區(qū)域的增大,塊的數(shù)量將會下降。為了避免塊校正的問題,目前Inception架構(gòu)的典型被限制在了1×1,3×3,5×5的濾波器,然而這個決定更多的是基于便利性而不是必要性的考量。這也意味著提出的架構(gòu)是那些層的集合,它們的輸出濾波器被連接成一個輸出向量作為下一階段的輸入。另外,因為池化操作對于當前階段的卷積網(wǎng)絡的成功是必不可少的,所以在每個這樣的階段添加一個可選的并行池化路徑應該會有額外的好處。

????????因為這些Inception模塊在彼此的頂部相堆疊,它們的輸出相關(guān)統(tǒng)計必定會不同:因為高層抽象的特征是被較高的層數(shù)所捕捉的,它們的空間集中度預計會減少,這意味高層的3×3,5×5卷積單元的比例會增加。

Figure 2: Inception module

????????以上模塊,至少在這種樸素的形式中,會有一個大問題就是在有大量濾波器的卷積層之上,即使是中等數(shù)量的5×5卷積也會變得非常昂貴。這個問題會變得更加突出一旦池化單元加入到混合中:它們的輸出濾波器的數(shù)量等同于前一階段的濾波器數(shù)量。池化層與卷積層輸出的合并會導致階段到階段的輸出數(shù)量不可避免的增長。雖然這種架構(gòu)可能會包含最優(yōu)的稀疏結(jié)構(gòu),但是它會十分低效,導致在幾個階段內(nèi)計算量爆炸。

????????這導致了關(guān)于提出的架構(gòu)的第二個想法:在計算要求過于龐大的地方明智地應用降維和投影。這是基于嵌入方法的成功:即使是低維的嵌入也可能包含關(guān)于相對較大的圖像塊的大量信息。然而,嵌入方法通過密集的、壓縮的形式來表達信息,并且壓縮過的信息很難建模。我們希望在大多數(shù)地方保持我們稀疏的表示(正如[2]中的條件要求)并且只當它們需要集合的時候才進行壓縮。也就是說,在昂貴的3×3,5×5卷積前使用1×1的卷積來進行降維。除了被用來降維以外,它們也被用來修正線性激活函數(shù)。最終的結(jié)果展示在figure 2(b)中。

????????這種架構(gòu)的一個主要好處在于它允許在每個階段增加單元數(shù)量而且不會導致無法控制的計算復雜度爆炸。降維的普遍使用使得大量的來自上一層的大量輸入濾波器能夠進入下一層,先進行降維,再與大塊進行卷積。這種設計的另一個好處是它符合了視覺信息應該在不同尺度上處理再進行聚合的直覺,這樣下個階段就能夠同時在不同尺度上進行特征提取。

5. GOOGLENET

????????通過“GoogLeNet”這個名字,我們提到ILSVRC 2014競賽中我們提交的Inception架構(gòu)的具體特例。 我們還使用了一個質(zhì)量略優(yōu)的更深更寬的Inception網(wǎng)絡,但將它添加到組合中似乎只能稍微改善結(jié)果。 我們忽略了該網(wǎng)絡的細節(jié),因為經(jīng)驗證據(jù)表明確切的架構(gòu)參數(shù)的影響相對較小。表1說明了比賽中使用的最常見的例子。 該網(wǎng)絡(使用不同的圖像塊采樣方法進行訓練)被用于我們組合中7個模型中的6個。

????????所有的卷積,包括那些包括在Inception模塊內(nèi)的,都使用了修正的線性激活。我們網(wǎng)絡中使用的感受域是在均值為0的RGB空間中的,大小是224×224。"#3×3 reduce"和"#5×5reduce"表示在3×3和5×5卷積前降維層使用的1×1濾波器的數(shù)量。在pool proj列可以看到內(nèi)置的最大池化之后,投影層中1×1濾波器的數(shù)量。所有這些降維、投影層也都使用修正線性激活。

????????網(wǎng)絡是考慮到計算效率和實用性而設計的,所以可以推斷能在個人設備上運行,包括那些有限計算資源的設備,特別是低內(nèi)存占用的設備。當只考慮有參數(shù)的層數(shù)時,網(wǎng)絡只有22層(考慮池化的話有27層)。構(gòu)建網(wǎng)絡所總共用到的層數(shù)(獨立構(gòu)建層)大約是100。然而這個數(shù)目取決于使用的機器學習基礎設施系統(tǒng)。在分類器前使用的平均池化shiver基于[12],盡管我們的實現(xiàn)有一個額外的線性層。這使得我們的網(wǎng)絡能夠很容易適應其他的標簽集,但是它主要是為了方便,我們并不期望它能有多大用處。我們發(fā)現(xiàn)從全連接層變?yōu)槠骄鼗?,提高了大約0.6%的top-1準確率,但是在移除全連接層之后,dropout的使用還是至關(guān)重要的。

Table 1: GoogLeNet incarnation of the Inception architecture

????????給定相對較深的網(wǎng)絡,將梯度有效的通過所有的層反向傳播是一個需要考慮的問題。一個有趣的見解是相對較淺的網(wǎng)絡在這方面的強大表現(xiàn)暗示著網(wǎng)絡中部產(chǎn)生的特征是非常具有識別力的。通過添加鏈接到中間層的輔助分類器,我們期望激勵在較低階段的分類器的區(qū)分度,從而增強傳回的梯度信號并且提供額外的正則化。這些分類器采取小型卷積網(wǎng)絡的形式并且被放在Inception(4a)和(4d)模塊的輸出上。在訓練期間,它們的loss會被加權(quán)加到總的Loss上(額外輔助分類器的loss的權(quán)重是0.3)。在推斷階段,這些額外的輔助分類器會被丟棄。

????????包括輔助分類器在內(nèi)的附加網(wǎng)絡的具體結(jié)構(gòu)如下:

? ? ? ? (1)一個濾波器大小為5×5,步長為3的平均池化層,導致4(a)的輸出是4×4×512,4d的輸出是4×4×528

? ? ? ? (2)一個具有128個濾波器的1×1卷積,勇于降維和修正線性激活

? ? ? ? (3)一個有著1024個單元和修正線性激活的全連接層

? ? ? ? (4) 一個丟棄70%輸出的dropout層

? ? ? ? (5)一個使用softmax loss的線性層的分類器(作為主分類器時預測1000個分類,但是在推斷時移除)

????????最終網(wǎng)絡的結(jié)構(gòu)如figure3所示:

Figure 3: GoogLeNet network with all the bells and whistles

6. Training Methodology

????????利用分布式機器學習系統(tǒng)和數(shù)據(jù)并行來訓練網(wǎng)絡,雖然實現(xiàn)時只用了CPU,但是可以用個別高端的GPU一周達到收斂的。采用異步隨機梯度下降,動量為0.9,固定的學習率計劃(每8次遍歷下降學習率4%)。用Polyak平均來創(chuàng)建最后的模型。圖像采樣的塊大小從圖像的8%到100%,選取的長寬比在3/4到4/3之間,光度扭曲也有利于減少過擬合,還使用隨機插值方法結(jié)合其他超參數(shù)的改變來調(diào)整圖像大小。

7.?ILSVRC 2014 ClassificationChallenge Setup and Results

????????ILSVRC 2014的分類任務有1000個子類、120萬訓練圖像、5萬驗證圖像和10萬測試圖像,每一張圖像與一個實際類別相關(guān)聯(lián),性能度量基于分類器預測的最高分。挑戰(zhàn)賽使用top-5錯誤率來進行排名,即比較實際類別與前5個預測類別,如果圖像實際類別在top-5中,則認為圖像分類正確。

????????為獲得更高性能的測試中采用的一系列技巧:

? ? ? ? (1)訓練了7個網(wǎng)絡,初始化和權(quán)重都相同,只是采樣方法和隨機輸入圖像不同。

? ? ? ? (2)將圖像的短邊分別縮放成256、288、320、352這樣4種尺度,取圖像的左中右塊(肖像圖片為上中下塊),每塊取4個角、中心224×224裁剪圖像、方塊尺寸歸一化為224×224,以及它們的鏡像,但實際應用中可能不需要這么多。

? ? ? ? (3)softmax概率在多個裁剪圖像上和所有單個分類器上進行平均獲得最終預測,簡單的平均結(jié)果最好。

????????最終在驗證集和測試集上的top-5錯誤率都是6.67%,獲得了第一。與其他方法相比的提高如表所示:

Table 2: Classi?cation performance

????????改變預測圖像時使用的模型數(shù)量和作物數(shù)量,獲得的性能對比如下:

Table 3: GoogLeNet classi?cation performance break down

8. ILSVRC 2014 DetectionChallenge Setup and Results

????????檢測任務是在200個可能的類別中生成圖像中目標的邊界框,如果檢測到的對象匹配的它們實際類別并且它們的邊界框重疊至少50%,則認為正確。報告的結(jié)果使用平均精度均值(mAP)。檢測采用的方法類似于R-CNN,但用Inception模塊作為區(qū)域分類器進行了增強。通過選擇搜索方法和多箱預測相結(jié)合改進了區(qū)域生成步驟,來提高目標邊界框的召回率,但沒有使用邊界框回歸。

????????下表顯示了比賽的結(jié)果對比和每個隊伍的常見策略:使用外部數(shù)據(jù)、集成模型或上下文模型。所有表現(xiàn)最好的團隊都使用了卷積網(wǎng)絡。

Table 4: Detection performance
Table 5: Single model performance for detection

9. Conclusions

????????結(jié)果證明了通過易獲得的密集構(gòu)造塊來近似期望的最優(yōu)稀疏結(jié)果是改善計算機視覺神經(jīng)網(wǎng)絡的一種可行方法。相比于較淺且較窄的架構(gòu),這個方法的主要優(yōu)勢是在計算需求適度增加的情況下有顯著的質(zhì)量收益。目標檢測工作沒有利用上下文,也沒有執(zhí)行邊界框回歸,但仍然具有競爭力,這顯示了Inception架構(gòu)優(yōu)勢。

????????未來的工作將在此基礎上以自動化方式創(chuàng)建更稀疏更精細的結(jié)構(gòu),以及將Inception架構(gòu)的思考應用到其他領域。

10. The experience of our team

????????GoogleNet 的核心可歸結(jié)為:引入Inception結(jié)構(gòu)、應用平均池化代替全連接層、加入輔助softmax防止梯度消失,網(wǎng)絡層數(shù)達到22層,其中提出了很多新穎的結(jié)構(gòu)和想法,其特點是提高了網(wǎng)絡內(nèi)部計算資源的利用率。

????????Inception既能保持網(wǎng)絡結(jié)構(gòu)的稀疏性,又能利用密集矩陣的高計算性能。借鑒了NIN的多層感知器結(jié)構(gòu),采用1x1卷積核來進行降維,解決了計算瓶頸,提高了神經(jīng)網(wǎng)絡的表達能力。.GoogleNet對數(shù)據(jù)卷積核進行并聯(lián)(多尺度的對圖像卷積,底層用大卷積核,上層用小卷積核),亦值得我們學習與借鑒。

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

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

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