論文筆記:Going deeper with convolutions(GoogLeNet)

一、基本信息

標題:Going deeper with convolutions
時間:2014
出版源:IEEE
論文領域:深度學習,CNN
引用格式:Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

二、研究背景

隨着移動設備和嵌入式發展,算法的有效性特別是在耗電和內存方面越來與重要。
最近研究增加網絡層數和大小,使用dropout解決過擬合。

直接增加網絡深度和寬度有2個缺點:

  • 更大尺寸意味更多參數,更容易過擬合,需要更好的訓練集,然而這是困難的
  • 是計算資源的使用顯著增加。如果大多數權重最終接近於零,那麼就會浪費大量計算。

解決方法:
使用稀疏連接替代稠密結構。
理論依據(Arora):一個概率分佈可以用一個大的稀疏的深度神經網絡表示,最優的結構的構建通過分析上層的激活狀態的統計相關性,並把輸出高度相關的神經元聚合。這與生物學中Hebbian法則“有些神經元響應基本一致,即同時興奮或抑制”一致。
存在問題:計算機的基礎結構在遇到稀疏數據計算時會很不高效,使用稀疏矩陣會使得效率大大降低。
目標:設計一種既能利用稀疏性,又可以利用稠密計算的網絡結構。

將稀疏矩陣聚類爲相對密集的子矩陣,往往能給出稀疏矩陣乘法的最先進的實用性能.

Inception架構開始用來評估一個複雜的網絡拓撲構造算法的假設輸出,該算法試圖近似於視覺網絡中所暗示的稀疏結構,並用密集的、容易獲得的組件覆蓋假設的結果。

在進一步調整學習率、超參數和改進的訓練方法之後,我們確定了由此產生的在先啓架構在定位和目標檢測的背景下特別有用。

三、創新點

  • 深度架構和經典計算機視覺的協同作用,如R-CNN算法。
  • 內存方面佔用更少,可以應用於工業界

1 * 1卷積有雙重用途:
用作降維模塊,限制網絡的大小。
在不影響性能的情況下增加網絡的寬度。

結構細節

主要思想是基於找出卷積視覺網絡中的最優局部稀疏結構如何被現成的密集組件逼近和覆蓋。我們所需要的就是找到最優的局部結構,然後在空間上重複它
我們最終會將許多簇集中在一個區域,而在下一層中,它們可以被1 * 1卷積的層所覆蓋。

channel的意思其實就是神經元的個數,這裏降維的意思其實就是減少神經元的個數,比如原先的2828512 在11256 之後 就是2828256(stride爲1的情況), 這樣在整個網絡結構這一層就降維了,原作者發現在沒有1*1之前的參數空間存在很多稀疏的數據,這裏降維之後,參數空間會更dense,這樣就解決了文章說的痛點(也就是稀疏性增大計算困難的問題)

池化操作對於當前的卷積網絡的成功至關重要,因此建議在每個這樣的階段中添加一個可選的並行池化路徑也會產生額外的有益效果。
在這裏插入圖片描述

(a)是最原始的模型。可以看出,因爲卷積並不一定就改變大小,而通道數目由於分散的連接最終會增加,這樣很容易造成參數個數的指數級別的上升。論文中使用了NIN網絡中提到的利用11卷積核降維的作用,在卷積層處理前,先對特徵圖層進行降維(注意是通道的降維,不是空間的降維),例如原本是M通道,降維到P通道後,在通過匯聚變成了M通道,這時參數的個數並沒有隨着深度的加深而指數級的增長,這樣做的合理性在於,Hebbin法則說的“有些神經元同時興奮或抑制”,而在區域中同一節點對應的區域可能一樣,認爲它們是相關的,所以通過11的卷積核將它們聚合(信息壓縮)後再卷積,符合Arora的理論。同時,注意到還有一個最大化池化層。這樣處理的好處是(1)深度增加,節點數目可控(2)出現多個尺度如33,11,55,77等。

在這裏插入圖片描述

  1. 卷積 - 池化

  2. 卷積 - 池化
    在這裏插入圖片描述

  3. inception(3a) - inception(3b) - 池化
    在這裏插入圖片描述

  4. inception(4a) … inception(4e) - 池化
    在這裏插入圖片描述

  5. inception(5a) - inception(5b) - 池化
    在這裏插入圖片描述

  6. dropout - liner - softmax
    在這裏插入圖片描述

GoogLeNet網絡有22層,最後一層使用了NIN(??)網絡中的全局平均池化層,但還是會加上FC層,再輸入到softmax函數中。如下圖:
在這裏插入圖片描述
在深度加深的情況下,在BP算法執行時可能會使得某些梯度爲0,這會使得網絡的收斂變慢。論文中使用的方法是增加兩個輸出層(Auxiliary Classifiers),這樣一些權值更新的梯度就會來自於多個部分的疊加,加速了網絡的收斂。但預測時會吧AC層去掉。

四、實驗結果

在這裏插入圖片描述

五、結論與思考

作者結論

這種方法的主要優點是,與較淺和較不寬的網絡相比,在計算需求適度增加的情況下,顯著地提高了質量。

總結

思考

參考

CV論文閱讀】Going deeper with convolutions(GoogLeNet)

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