天天看點

論文筆記《Going deeper with convolutions》1409

Abstract

Inception網絡的主要特點是在網絡内提高計算資源的使用率。在有限的計算預算下,作者精心設計網絡架構來增加網絡的深度和寬度。

Introduction

目标檢測領域增益來自:

  • 更深更大的網絡模型
  • 深度架構與經典CV的結合,如R-CNN

移動和嵌入計算的需求使得算法的有效性(功耗和記憶體)日漸重要。

Related Work

從LeNet-5開始,卷積神經網絡已經有一個标準的結構——卷積層堆積(有選擇性地增加contrast normalization and max-pooling)緊跟着一個或多個全連接配接層。對于大資料集如ImageNet,最近的趨勢是增加層的數目和層的尺寸,同時利用dropout來克服過拟合問題。

盡管擔心max-pooling層會導緻空間資訊的丢失,卷積網絡結構如【9】被成功用來定位、目标檢測和人的姿态評估。受神經科學裡靈長目動物視覺平層模型的靈感激發,Serre【15】等人利用一系列不同尺寸的固定Gabor濾波器來處理多尺度問題,與Inception模型類似。但是和Serre固定兩層深度模型不同的是,Inception裡所有的filters都是學習的。更進一步講,Inception層被重複若幹次,直至22層深度模型比如GoogLeNet模型。

Network-in-Network【12】是由Lin等人提出來的方法來增加神經網絡表示能力的。當應用在卷積層時,該方法可以被視為額外的1x1卷積層和修正線性激活函數(ReLu)。這使它能容易地被整合到目前CNN架構内。在我們的架構内,我們用了很多這種政策。但是在我們的設定内,1x1卷積有兩個目的,最關鍵的是它們主要被當做次元降低子產品來減少計算瓶頸,不然的話會限制我們網絡的尺寸。這在沒有嚴重表現懲罰的情況下,不僅可以增加深度,也可以增加寬度。

目前目标檢測的主流方法是R-CNN,由Girshick等人提出。R-CNN将整體檢測問題分解成兩個子問題:首先利用低層次信号如顔色和超像素連續性來擷取可能的object proposals,在一個category-agnostic fashion,然後用CNN分類器來确定那些位置的目标種類。這樣的兩階段方法作為杠杆作用在基于低層信号的bounding-box分割準确率和現代CNNs的高分類力量。我們在detection submission裡采取了相似的流程,但是在兩個階段都探索提升,例如對更高的物體bounding box召回率的multi-box 預測,以及bounding box proposals 更好分類內建方法。

Motivation and High Level Considerations

提高深度網絡表現的最直接的方式增加網絡規模:包括網絡深度和寬度。但是這種簡單的解決方案有兩大缺點。

大模型有很多數量的參數,使得網絡更容易過拟合,尤其是在訓練集中标簽樣本數目有限的情況下。然而高品質訓練集的生成需要技巧,代價也比較昂貴。

另一個缺點是會極大增加計算資源。

解決這兩個問題重要的方式是将全連接配接網絡完全改成稀疏連接配接架構,甚至在卷積内部。除了模仿生物系統以外,也有堅實的理論基礎優勢(Arora等人的突破性工作【2】)。他們主要結果陳述了:如果資料集的機率分布能夠被大且稀疏的深度網絡表示,那麼能夠一層一層地去建構最優網絡拓撲結構,方法是借助最後一層激活的相關性統計分析和高度相關性輸出的神經元聚類。盡管嚴格的數學證明需要非常強的條件,但是這種陳述和著名的Hebbian原則(同時放電的神經元串聯在一起,注:記憶力或許也可以通過該原則來解釋)相呼應。這提醒我們,即使在實際應用時的寬松條件下,該基本思想也是可運用的。

令人消極的是,當涉及到在不均勻稀疏資料結構的數值運算時,今天的計算基礎架構是非常低效的。即使在算術操作的數目減小100X情況下,查找的天花闆和緩存丢失也占很大成分,以緻于轉向稀疏矩陣的方法并不有效。這種間隙被進一步拉大了,因為(穩步提升、高度調整、大量的庫)允許稠密矩陣的超快運算,開拓了基本CPU或GPU硬體的微小細節。同時,不均勻稀疏模型需要更複雜的工程和計算基本架構。目前大多數視覺導向的機器學習系統利用卷積來實作空間域裡的稀疏性。但是在淺層,卷積實作時是一種緊密連接配接到patch的聚合。傳統上,自從【11】卷積神經網絡在特征次元上采用随機和稀疏連接配接表,來打破對稱性和提高學習。領域又趨向使用全連接配接【9】來更好的優化并行計算。結構的一緻性、大量的filters以及更大的batch size允許采用有效的緊密計算。

這提出一個問題:是否有希望實作下一步即中間步驟。就像理論所建議的,一個網絡結構能否利用額外的稀疏性(即使在filter水準),但是在緊密矩陣使用計算來開發我們目前硬體。大量稀疏矩陣計算的文獻【3】建議:針對稀疏矩陣的計算,将稀疏矩陣分類到相對緊密的子矩陣似乎可以得到較好的實際表現。不難想到,在不久的将來,同樣的方法可以被用來自動建構不均勻深度網絡結構。

Inception結構作為第一個作者的案例研究,來評估一個複雜網絡拓撲建構算法的假設輸出,該複雜網絡拓撲嘗試接近一種稀疏結構(被【2】用于視覺網絡);以及涉及密集已提供元素的假設輸出結果。盡管是一個高度推測任務,僅僅過了兩次拓撲的精确選擇,我們已經看到相對【12】架構的平穩上漲。經過進一步學習率、超參數和訓練方法的調節,在基于【6】和【5】的網絡中,Inception架構在定位和目标檢測中是非常有用的。有趣的是,盡管大多數原始架構選擇被提出和仔細檢測,他們至少都被證明是局部最優的。

但是我們仍需謹慎對待:盡管提出的架構在計算機視覺領域是成功的,至于它的品質是否能歸功于建構它的指導原則,這仍然有待商榷。證明需要更多仔細的分析和驗證:例如,對于視覺網絡,是否基于下面描述原則的自動工具能夠發現類似但更好的拓撲結構。最令人信服的證據将是,如果一個自動系統能創造出網絡拓撲結構,該網絡結構可以在其他領域産生相似的增益,利用相同的算法但是看起來非常不同的全局架構。最後,Inception架構的初始成功為未來該方向激動人心的研究提供了堅定的動力。

Architectural Details

Inception架構的主要想法是基于尋找出,在卷積視覺網絡中一個局部最優稀疏結構怎樣能被提供好的dense components所近似和取代。值得注意的是,平移不變假設意味着我們的網絡将從卷積構造子產品開始搭建。我們需要的是尋找到局部最優架構,然後空間上重複之。Arora等人【2】建議按層建構,這種方式要求研究人員對最後一層進行相關性分析并且将高度相關的單元聚類到一起。這些聚類形成了下一層的單元并且與前一層相連接配接。我們猜想前一層的每一個單元都和輸入圖像的某個區域相對應,并且這些單元被分組到濾波池中。在低級别層中(靠近輸入)相關聯的單元将聚焦到局部區域。這意味着我們最終以許多集中在單個區域的聚類結束,這些聚類能被下一層的1x1卷積所覆寫,就像【12】中所建議的。但是人們也會預期,有更小數目但空間覆寫更大的聚類,這些聚類可以被更大patch的卷積覆寫。并且随着越來越大的區域,卷積patch的數目會越來越少。為了避免patch對齊問題,目前Inception架構的實作被限制在1x1,3x3和5x5的濾波器尺寸,但是這樣的決策更多的是基于便利而不是必需。這也意味着,推薦的架構是所有那樣的層和他們的輸出濾波池連結成單個輸出向量,形成下一層的輸入。除此以外,因為池化操作已經被證明是目前卷積網絡成功的必需品,這也建議在每個這樣的stage增加一個可選擇的平行路徑應該會有額外的好處。

因為這些Inception子產品一層一層地疊加,他們的輸出相關性必然是不一樣的:因為更高抽象的特征被更高層擷取,可預計他們的空間聚集度會降低,這也建議當我們移到更高層時,3x3和5x5卷積的比例應該增加。

上述子產品(至少在這最原始的形式上)的一個大問題是即使不多數目的5x5卷積在有大量濾波器的深層卷積層中的代價也是幾乎不可行的。一旦池化單元被增加到混合,這個問題變得更為明顯:他們輸出濾波器的數量等于前一層的濾波器數目。随着層次加深,池化層和卷積層輸出的融合将會導緻輸出數目不可避免的增加。即使該架構可能包含優化的稀疏結構,這也将是非常低效的,導緻在很少層内計算量爆炸。

這引出了提出架構的第二種想法:無論在哪個計算需求大量增加的地方,明智地應用次元降低和映射。這基于embedding的成功:即使低次元的embedding也可能包含許多相對大的圖像塊資訊。但是,embeddings代表着緊密壓縮形式的資訊,而壓縮的資訊更難去模組化。我們希望在大多數地方保持稀疏表征(就像【2】中情形所要求的),僅僅在不得不全體聚集時壓縮信号。那就是,在昂貴的3x3和5x5卷積之前采用1x1卷積來降維。除了用于降維外,他們也包含了修正激活函數的作用。這使得1x1擁有雙重目标。最後的結果如文中圖2所描述。

總的來說,一個Inception網絡是一個有上述類型的子產品一個個堆積而成,同時偶爾stride=2的max-pooling來減半格點的分辨率。因為技術原因(訓練時的記憶體效率),在相對高的層開始使用Inception子產品,而在淺層保留傳統的卷積模式看起來更有利。這不是嚴格需要的,簡單反映出一些在我們目前實作中的架構低效。

繼續閱讀