Inception-v1論文拜讀:Going deeper with convolutions

原文鏈接:https://arxiv.org/pdf/1409.4842v1.pdf

0 摘要

我們提出了一個代號爲Inception的深度卷積神經網絡架構,負責在ImageNet 2014年大型視覺識別挑戰(ILSVRC14)中設置分類和檢測的最新技術。該體系結構的主要特點是提高了網絡內部計算資源的利用率。這是通過一個精心設計來實現的,它允許增加網絡的深度和寬度,同時保持計算預算不變。爲了優化質量,架構決策基於Hebbian原則和多尺度處理的直覺。在我們提交的ILSVRC14中使用的一個特殊的化身是GoogLeNet,它是一個22層的深層網絡,其質量是在分類和檢測的環境中評估的。

1 介紹

在過去的三年中,主要由於深度學習、更具體的卷積網絡[10]的發展,圖像識別和目標檢測的質量得到了極大的提高。一個令人鼓舞的消息是,這一進步不僅僅是更強大的硬件、更大的數據集和更大的模型的結果,而且主要是新思想、算法和改進的網絡架構的結果。例如,在ILSVRC 2014競賽中,除了用於檢測目的的同一競賽的分類數據集外,沒有使用新的數據源。我們提交給ILSVRC 2014的GoogLeNet實際上比兩年前Krizhevsky等人的獲獎架構少用了12個參數,同時顯著更準確。在目標檢測方面,最大的收穫並不是僅僅來自深度網絡或更大模型的利用,而是來自深度架構和經典計算機視覺的協同,例如Girshick等人的R-CNN算法。

另一個值得注意的因素是,隨着移動和嵌入式計算的不斷髮展,我們的算法的效率,尤其是它們的能力和內存使用變得越來越重要。值得注意的是,在這篇文章中提出的深層架構設計的考慮因素包括了這個因素,而不是完全依賴於精確的數字。對於大多數的實驗,模型計算的預算是爲了保持1:5十億multiply-adds在推理時,這樣他們不最終是一個純學術的好奇心,但可以把現實世界中使用,即使在大型數據集,以合理的成本。

在這篇論文中,我們將重點研究一種高效的用於計算機視覺的深度神經網絡架構,代號爲Inception,它的名字來源於Lin等人的網絡論文中的網絡,並結合著名的“we need to go deeper ” 網絡流行語[1]。在我們的例子中,"deep"這個詞有兩種不同的含義:首先,我們以"Inception模塊"的形式引入了一個新的組織層次,同時也從更直接的意義上增加了網絡深度。一般來說,我們可以將Inception模型視爲[12]的邏輯頂點,同時從Arora等人的理論著作中獲得靈感和指導。該體系結構的優點在ILSVRC 2014分類和檢測挑戰中得到了實驗驗證,在這方面它顯著優於當前的技術水平。

2 相關工作

從LeNet-5[10]開始,卷積神經網絡(CNN)通常有一個標準結構,層疊的卷積層(可選地緊隨對比歸一化和maxpooling)之後是一個或多個全連接層。這種基本設計的變體在圖像分類文獻中很流行,並在MNIST、CIFAR和ImageNet分類挑戰中取得了迄今爲止最好的結果[9,21]。對於較大的數據集,如Imagenet,最近的趨勢是增加層數[12]和層大小[21,14],同時使用dropout[7]來解決過擬合問題。

儘管存在max-pooling層導致精確空間信息丟失的問題,但與[9]相同的卷積網絡架構也成功用於定位[9,14]、目標檢測[6,14,18,5]和人體姿態估計[19]。Serre等人受靈長類視覺皮層的神經科學模型啓發,使用一系列不同大小的固定Gabor過濾器來處理多個尺度,類似於Inception模型。然而,與[15]固定的2層深度模型相反,Inception模型中的所有過濾器都是學習的。此外,先啓層重複了許多次,導致在GoogLeNet模型中有一個22層的深度模型。

網絡中的網絡是Lin等人爲了提高神經網絡的表示能力而提出的一種方法。當應用於卷積層時,該方法可視爲附加的11個卷積層,之後通常是經過整流的線性激活[9]。這使得它可以很容易地集成到當前的CNN管道中。我們在架構中大量使用這種方法。然而,在我們的設置中,11個卷積有雙重目的:最關鍵的是,它們主要用作降維模塊來消除計算瓶頸,否則將限制網絡的大小。這不僅可以增加網絡的深度,還可以在不影響性能的情況下增加網絡的寬度。

目前領先的目標檢測方法是Girshick等人提出的卷積神經網絡(R-CNN)區域。R-CNN將整個檢測問題分解爲兩個子問題:首先利用顏色和超像素一致性等低層次線索,以一種與類別無關的方式來識別潛在的對象建議,然後使用CNN分類器來識別這些位置的對象類別。這種兩階段的方法利用了邊界框分割的準確性和低水平線索,以及最先進的CNNs的強大分類能力。我們在提交檢測時採用了類似的管道,但在這兩個階段都進行了增強,比如多框[5]預測更高的對象邊界框回收,以及集成方法更好地分類邊界框建議。

3 動機和高層次的考慮

提高深度神經網絡性能最直接的方法是增加其規模。這包括增加網絡的深度、層數和寬度:每一層的單元數。這是一種訓練高質量模型的簡單和安全的方法,特別是考慮到有大量標記的訓練數據的可用性。然而,這個簡單的解決方案有兩個主要缺點。

通常情況下,較大的尺寸意味着更多的參數,這使得擴大後的網絡更容易發生過擬合,特別是在訓練集中標記的例子數量有限的情況下。這可能成爲一個主要的瓶頸,因爲創建高質量的訓練集可能是棘手和昂貴的,特別是如果需要專業的人工評分員來區分類似於ImageNet中的細粒度可視類別(即使是在1000類ILSVRC子集中),如Figure 1所示。

網絡規模一致增長的另一個缺點是計算資源的使用急劇增加。例如,在深度視覺網絡中,如果將兩個卷積層連接起來,那麼它們的過濾器數量的任何均勻增加都會導致計算量的二次增加。如果沒有有效地使用增加的容量(例如,如果大多數權重最終接近於零),那麼就會浪費大量計算。由於在實踐中,計算預算總是有限的,所以即使主要目標是提高結果的質量,有效分配計算資源也比不加選擇地增加大小要好。

解決這兩個問題的基本方法是最終從完全連接的架構轉移到稀疏連接的架構,甚至在卷積內部也是如此。除了模仿生物系統,由於Arora等人開創性的工作,這也有更堅實的理論基礎的優勢。其主要結果狀態的概率分佈,如果先於可表示的是一個大型的、非常稀疏的深層神經網絡,優化網絡拓撲結構可以建造一層一層地分析相關統計數據的最後一層和集羣神經元的激活與高度相關的輸出。雖然嚴格的數學證明需要非常嚴格的條件,但這一說法與衆所周知的Hebbian原理——神經元一起放電、連接在一起——產生共鳴的事實表明,即使在不那麼嚴格的條件下,這一基本思想在實踐中也是適用的。

不利的一面是,當今的計算基礎設施在處理非均勻稀疏數據結構的數值計算時非常低效。即使算術運算的數量減少到100年,查找的開銷和緩存錯過主導,切換到稀疏矩陣不會償還。使用的差距進一步擴大穩步改善,高度調整,數值庫允許極快稠密矩陣乘法,利用底層的細節CPU或GPU硬件(16日9)。此外,非均勻稀疏模型需要更復雜的工程和計算基礎設施。目前大多數面向視覺的機器學習系統僅僅通過使用卷積來利用空間域的稀疏性。然而,卷積是作爲到前一層補丁的密集連接的集合來實現的。自[11]以來,ConvNets傳統上在特徵維中使用隨機和稀疏連接表,爲了打破對稱性,提高學習能力,爲了更好地優化並行計算,趨勢變回與[9]的完全連接。結構的均勻性和大量的過濾器和更大的批處理尺寸允許使用高效的密集計算。

這就提出了一個問題:是否還有希望進行下一個中間步驟:一種利用額外的稀疏性(即使在過濾器級別)的體系結構,就像理論所建議的那樣,但是通過利用密集矩陣上的計算來利用我們當前的硬件。大量關於稀疏矩陣計算的文獻(例如[3])表明,將稀疏矩陣聚類成相對稠密的子矩陣,往往能夠提供最先進的稀疏矩陣乘法的實用性能。在不久的將來,類似的方法將被用於非均勻深度學習體系結構的自動化構建,這似乎並不牽強。

Inception架構最初是作爲第一作者的一個案例研究,用於評估一個複雜的網絡拓撲結構構建算法的假設輸出,該算法試圖近似於視覺網絡中[2]所暗示的稀疏結構,並通過密集的、容易獲得的組件覆蓋假設的結果。儘管這是一項高度投機的工作,但是只有在對拓撲的精確選擇進行兩次迭代之後,我們才能看到基於[12]的參考體系結構所帶來的好處。在進一步調整了學習速率、超參數和改進的訓練方法之後,我們確定了所得到的Inception架構在定位和對象檢測上下文中特別有用,作爲[6]和[5]的基礎網絡。有趣的是,儘管大多數最初的架構選擇都受到了質疑和徹底的測試,但它們至少在局部是最優的。

然而,人們必須謹慎:儘管所提議的體系結構已經在計算機視覺方面取得了成功,但它的質量是否可以歸因於導致其構建的指導原則仍然值得懷疑。確保這一點將需要更徹底的分析和驗證:例如,如果基於下面描述的原則的自動化工具能夠發現類似但更好的視覺網絡拓撲結構。最有說服力的證據是,自動化系統是否會創建網絡拓撲,從而在其他領域使用相同的算法獲得類似的收益,但其全局架構的外觀卻非常不同。至少,Inception架構最初的成功產生了在這個方向上令人興奮的未來工作的堅定動機。

4 架構細節

Inception架構的主要思想是找出卷積視覺網絡中最優的局部稀疏結構是如何被容易獲得的稠密組件近似和覆蓋的。注意,假設平移不變性意味着我們的網絡將由卷積構建塊構建。我們所需要的是找到最優的局部結構並在空間上重複它。Arora 等人[2]提出了一種分層結構,在這種結構中,應該分析最後一層的相關統計數據,並將它們分組爲具有高相關性的單元。這些集羣構成下一層的單元,並連接到上一層的單元。我們假設前一層的每個單元對應於輸入圖像的某個區域,這些單元被分組到濾波器組中。在較低的層(靠近輸入的層),相關的單元將集中在局部區域。這意味着,我們最終會得到許多集羣集中在一個區域,它們可以被下一層的 1 x 1 個卷積覆蓋,就像[12]中建議的那樣。然而,我們也可以預期,在更大的patch上,能夠被卷積覆蓋的空間分佈更廣的集羣的數量會更少,而在更大的patch上,patch的數量會越來越少。爲了避免patchal問題,Inception架構的當前版本被限制爲過濾大小爲1 x 1,3 x 3 和 5 x 5,然而這個決定更多的是基於方便而不是需要。它還意味着建議的體系結構是所有這些層的組合,它們的輸出過濾器連接成一個單獨的輸出向量,形成下一階段的輸入。此外,由於池化操作對於當前最先進的卷積網絡的成功至關重要,因此它建議在每個這樣的階段添加一個可選的並行池化路徑也應該會產生額外的有益效果(參見 Figure 2(a))。

由於這些“Inception modules”相互堆疊,它們的輸出相關統計必然會有所不同:當更高的抽象特徵被更高的層捕獲時,它們的空間集中度預計會降低,這意味着當我們移動到更高的層時,3 x 3和5 x 5的卷積的比例應該增加。

與上述模塊的一個大問題,至少在這個naıve形式,甚至適度數量的5 x 5旋轉可以昂貴的卷積層與大量的過濾器。一旦池單元被添加到混合中,這個問題就變得更加突出:它們的輸出過濾器數量等於前一階段的過濾器數量。池化層的輸出與卷積層的輸出合併,必然會導致輸出的數量逐級增加。儘管這種架構可能覆蓋最優的稀疏結構,但它的效率非常低,在幾個階段內就會導致計算崩潰。

這就引出了提出的體系結構的第二個想法:明智地在計算需求增加太多的地方應用維縮減和投影。這是基於嵌套的成功:即使是低維的嵌套也可能包含大量關於一個相對較大的圖像修補程序的信息。然而,嵌入以密集的、壓縮的形式表示信息,而壓縮的信息更難建模。我們希望在大多數地方保持稀疏的表示(根據[2]的條件所要求的),並且僅在需要大量聚集信號時壓縮它們。也就是說,在昂貴的3 x 3和5 x 5卷積之前,使用1 x 1卷積來計算約簡。除了用作還原,它們還包括使用整流線性激活,這使它們具有雙重用途。最終結果如Figure 2(b)所示。

通常,Inception 網絡是由上述類型的模塊組成的網絡,這些模塊相互堆疊,偶爾使用最大池層,使用步幅爲 2將網格的分辨率減半。由於技術上的原因(訓練期間的內存效率),開始只在較高的層上使用Inception模塊似乎是有益的,同時保持傳統的卷積方式的較低的層。這並不是嚴格必要的,只是反映了我們當前實現中的一些基礎設施效率低下。

這種體系結構的一個主要優點是,它允許在每個階段顯著增加單元的數量,而不會在計算複雜度上失控。維約簡的普遍使用允許將上一層的大量輸入過濾器屏蔽到下一層,首先減少它們的維數,然後將它們與一個大的補丁大小進行卷積。這個設計的另一個實際有用的方面是,它符合直覺,即視覺信息應該在不同的尺度上處理,然後聚合,以便下一階段可以同時從不同的尺度上抽象特徵。

計算資源的改進使用允許增加每個階段的寬度和階段的數量,而不會陷入計算困難。利用inception架構的另一種方法是創建稍次的,但在計算上更便宜的版本。我們發現所有包含的旋鈕和控制桿都允許計算資源的受控平衡,這可以使網絡的運行速度比使用非先啓架構的類似網絡快2到3倍,但是在這一點上,這需要仔細的手工設計。

5 GoogleNet

在ILSVRC14比賽中,我們選擇了GoogLeNet作爲我們的隊名。這個名字是向Yann LeCuns先驅LeNet 5網絡[10]致敬。我們也使用GoogLeNet來指代我們提交給競賽的Inception架構的特殊化身。我們還使用了一個更深更廣的先啓網絡,它的質量稍差一些,但是將它添加到集成中似乎能略微改善結果。我們忽略了網絡的細節,因爲我們的實驗表明,確切的架構參數的影響相對較小。在這裏,爲了演示的目的,Table 1描述了最成功的特定實例(名爲GoogLeNet)。在我們的集成中,7個模型中的6個使用了完全相同的拓撲結構(使用不同的採樣方法進行訓練)。

所有的卷積,包括先啓模塊內部的卷積,都使用經過整流的線性激活。我們的網絡中接受域的大小是224×224,取RGB顏色通道,取平均減法。“#3×3 reduce”和“#5×5 reduce”表示在進行3×3和5×5卷積之前,約化層中使用的1×1個濾波器的數量。在pool proj列中內置的max-pooling之後,可以看到投影層中1×1個過濾器的數量。所有這些還原/投影層也都使用了校正的線性激活。

該網絡的設計考慮了計算效率和實用性,因此推理可以在單個設備上運行,甚至包括那些計算資源有限的設備,特別是低內存佔用的設備。如果只計算帶參數的層,則網絡深度爲22層(如果也計算池,則爲27層)。用於構建網絡的總層數(獨立的構建塊)約爲100個。然而,這個數字取決於所使用的機器學習基礎設施系統。分類器之前使用的平均池是基於[12]的,儘管我們的實現的不同之處在於我們使用了額外的線性層。這使我們能夠很容易地調整和微調我們的網絡以適應其他標籤集,但它主要是方便的,我們不希望它有一個主要的影響。結果發現,從全連接層到平均池的移動將前1名的準確性提高了約0.6%,然而,即使在刪除了全連接層之後,dropout的使用仍然至關重要。

考慮到網絡的深度相對較大,以有效的方式將梯度傳播回所有層的能力令人擔憂。一個有趣的發現是,相對較淺的網絡在這項任務上的強大性能表明,網絡中間各層所產生的特徵應該具有很強的辨別能力。通過添加連接到這些中間層的輔助分類器,我們可以期望在分類器的較低階段鼓勵識別,增加傳回的梯度信號,並提供額外的正則化。這些分類器採用更小的卷積網絡的形式,放在Inception (4a)和(4d)模塊的輸出之上。在訓練過程中,他們的損失以折算權加入到網絡的總損失中(輔助分類器的損失加權爲0.3)。在推理時,這些輔助網絡被丟棄。

包括輔助分類器在內的側部額外網絡的具體結構如下:

  • 一個平均池化層與5×5的過濾器大小和步幅爲3,導致4×4×512輸出的(4a)和4×4×528的(4d)階段。
  • 一個1×1的卷積與128個過濾器的降維和整流線性激活。
  • 全連接層1024個單元,線性激活整流。
  • 一個具有70%輸出輸出的dropout層。
  • 以softmax損耗作爲分類器的線性層(預測與主分類器相同的1000個類,但在推斷時刪除)。

結果網絡的示意圖如Figure 3所示。

在這裏插入圖片描述

6 訓練方法

我們的網絡使用不可靠的[4]分佈式機器學習系統進行訓練,該系統使用少量的模型和數據並行性。雖然我們只使用基於 CPU 的實現,但粗略估計 GoogLeNet 網絡可以在一週內使用很少的高端 GPUs 進行收斂訓練,主要限制是內存的使用。我們的訓練使用了0.9動量[17]的異步隨機梯度下降,固定的學習速率計劃(每8個週期減少4%的學習速率)。使用Polyak平均[13]來創建推理時使用的最終模型。

在比賽前的幾個月裏,我們的圖像採樣方法發生了很大的變化,並且已經聚合模型訓練與其他選項,有時結合改變超參數,輟學和學習速率,所以很難給出一個明確的指導,最有效的單一的方式來訓練這些網絡。更復雜的是,受[8]的啓發,一些模型主要針對相對較小的作物,另一些則針對較大的作物。儘管如此,有一種方法在比賽後被證實是非常有效的,那就是對圖像中大小不一的小塊進行採樣,這些小塊的大小均勻地分佈在圖像面積的8%到100%之間,其縱橫比隨機選擇在3/43/44/34/3之間。此外,我們發現,由安德魯霍華德的光度失真[8]是有用的打擊過度擬合在一定程度上。此外,我們開始使用隨機插值方法(雙線性、面積、最近鄰和立方,概率相等)來調整相對較晚的大小,並結合其他超參數的變化,因此我們無法明確地知道最終的結果是否受到它們的使用的積極影響。

7 ILSVRC 2014分類挑戰的設置和結果

ILSVRC 2014年的分類挑戰包括將圖像分類爲Imagenet層次結構中的1000個葉節點類別之一。大約有120萬張用於培訓的圖像,5萬張用於驗證,10萬張用於測試。每個圖像都與一個地面真值類別相關聯,並根據得分最高的分類器預測來測量性能。兩個數字通常報道:排名前準確率,比較了地面真理反對第一個預測類,前5名的錯誤率,比較了地面真理對前5預測類:一個圖像被認爲是正確的分類,如果地面真理是前5名中,無論其排名。該挑戰使用前5名的錯誤率進行排名。

我們參加了挑戰,沒有外部數據用於培訓。除了本文中提到的培訓技術外,我們還在測試中採用了一套技術來獲得更高的性能,我們將在下面詳細介紹。

  1. 我們獨立訓練了7個版本的相同的GoogLeNet模型(包括一個更大的版本),並對它們進行了集合預測。這些模型使用相同的初始化(甚至使用相同的初始權值,這主要是由於疏忽)和學習速率策略進行訓練,它們只在採樣方法和看到輸入圖像的隨機順序上有所不同。
  2. 在試驗過程中,我們採用了比Krizhevsky等人的[9]更激進的裁剪方法。具體來說,我們將圖像大小調整爲4個尺度,其中較短的維度(高度或寬度)分別爲256、288、320和352,取這些調整大小的圖像的左、中、右正方形(對於人像圖像,取頂部、中心和底部正方形)。每一個方塊,我們然後採取四個角落和中心224 x 224 crop以及方形大小調整到224×224,以及他們的鏡像版本。結果得到4×3×6×2=1444×3×6×2 = 144crop per image。Andrew Howard[8]在前一年的條目中使用了類似的方法,我們通過經驗驗證,其性能略差於提議的方案。我們注意到,在實際應用中,這種激進的種植方式可能是不必要的,因爲在合理數量的作物出現後,更多 crops 的收益就會變得非常有限(我們稍後將展示這一點)。
  3. 對多個 crops 和所有分類器的softmax概率求平均值,以獲得最終預測。在我們的實驗中,我們分析了驗證數據的替代方法,如 crops 上的最大池法和分類器上的平均法,但它們導致的性能不如簡單的平均法。

在本文的其餘部分,我們將分析影響最終提交的整體性能的多個因素。

我們最終提交的挑戰中,驗證和測試數據的前5名錯誤佔6.67%,在所有參與者中排名第一。這與2012年的監督方法相比,減少了56.5%,與前一年的最佳方法(Clarifai)相比,減少了約40%,這兩種方法都使用外部數據來訓練分類器。Table 2顯示了一些性能最好的方法的統計數據。

我們還通過改變模型數量和預測 Table 3中圖像時使用的 crops 數量,來分析和報告多重測試選擇的性能。當我們使用一個模型時,我們選擇驗證數據的前1位錯誤率最低的模型。所有數字都報告在驗證數據集上,以避免與測試數據統計數據過度匹配。

7 ILSVRC 2014檢測挑戰的設置和結果

ILSVRC檢測任務是在200個可能的類中生成圖像中對象周圍的包圍框。如果檢測到的對象與真實狀況的類匹配,並且它們的邊界框重疊至少50%(使用Jaccard索引),則視爲正確。額外的檢測被認爲是假陽性,將受到處罰。與分類任務不同的是,每個圖像可能包含許多對象,也可能不包含任何對象,其規模可能從大到小。結果使用平均平均精度(mAP)報告。

GoogLeNet的檢測方法類似於[6]的R-CNN,但是它被Inception模型擴展爲區域分類器。此外,區域建議步驟通過結合選擇性搜索[20]方法和高目標邊界框回收的多框[5]預測得到了改進。爲了減少誤報的數量,超像素大小增加了2倍。這一半的建議來自選擇搜索算法。我們重新添加了200個來自多框[5]的區域提案,總的來說,在[6]使用的提案中,有60%來自於此,同時將覆蓋率從92%提高到93%。通過增加覆蓋率來減少提案數量的總體效果是,單個模型案例的平均精度提高了1%。最後,在對每個區域進行分類時,我們使用了6個卷積神經網絡的集合,將結果的準確率從40%提高到43.9%。注意,與R-CNN相反,由於時間有限,我們沒有使用邊界框迴歸。

我們首先報告頂部檢測結果,並顯示自第一版檢測任務以來的進展。與2013年的結果相比,準確率幾乎翻了一番。表現最好的團隊都使用卷積網絡。我們報告了 Table 4中的官方評分和每個團隊的常用策略:使用外部數據、集成模型或上下文模型。外部數據通常是用於訓練模型的ILSVRC12分類數據,然後在檢測數據上進行細化。一些團隊還提到了本地化數據的使用。由於定位任務邊界框的很大一部分沒有包含在檢測數據集中,因此可以使用這些數據對一般的邊界框迴歸器進行預訓練,其方法與使用分類進行預訓練的方法相同。GoogLeNet條目沒有使用本地化數據進行預訓練。

在Table 5中,我們僅使用單個模型比較結果。表現最好的模型是由深刻的洞察力,令人驚訝的是,只有0.3個百分點的改善與3個模型的集合,而GoogLeNet得到明顯更強的結果與集合。

9 結論

我們的結果似乎提供了一個可靠的證據,接近預期的最優稀疏結構,隨時可用的密集建築塊是一個可行的方法,以改善神經網絡的計算機視覺。該方法的主要優點是,與較淺且較寬的網絡相比,在計算量適度增加的情況下,可以獲得顯著的質量增益。還要注意,我們的檢測工作是競爭性的,儘管既沒有利用上下文,也沒有執行邊界盒迴歸,這一事實爲Inception架構的強度提供了進一步的證據。雖然我們期望通過更昂貴的具有相似深度和寬度的網絡來獲得相似質量的結果,但我們的方法提供了堅實的證據,表明轉向更稀疏的架構通常是可行和有用的。這意味着未來有希望在[2]的基礎上,以自動化的方式創建更稀疏、更精細的結構。

10 致謝

Reference

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章