【深度學習】論文導讀:GoogLeNet模型,Inception結構網絡簡化(Going deeper with convolutions)

論文下載

Going deeper with convolutions

google在ILSVRC14比賽中獲得冠軍的一個模型。GoogLeNet, 一個22層的深度網絡。

GoogLeNet模型的參數量只是兩年前該項賽事的冠軍Krizhevsky參數量的1/12,大大降低了網絡的複雜度,甚至還達到了比Krizhevsky更高的精度。
此篇論文討論的就是如何有效的控制computation cost,降低模型參數的量。

一、多尺度問題

對於多尺度問題,會涉及到很多數學上的東西,然而目前並不需要這些,我們只需要瞭解基本的概念
http://blog.csdn.net/xiaowei_cqu/article/details/8067881如果有興趣,這篇文章介紹了尺度空間理論
之所以引入尺度這個概念,其實是爲了更貼近人類的視覺系統。在某些特徵檢測提取算法中(如sift等),用到的某些算子會對圖像的某些信息作出反應,例如圖像當中像素點快速變化的一些區域(一般就是圖像當中的一些邊緣信息),然後記錄下來,形成該圖的一組特徵。但是某些時候我們的圖往往是不能確定大小的(這個大小,也可以理解爲相同大小時候,圖像的模糊程度),需要做的就是在圖像不同大小時,算法都能有效的提出相同的關鍵點。


由此,我們需要對一張圖,生成一組由清晰逐漸變模糊的一組圖像,這就是圖像的多尺度。總的來說,多尺度模擬了不同遠近的物體在視網膜上的形成。而尺度不變性保證不同遠近物體可以對視覺神經有相同的刺激。
受到神經科學對靈長類動物的視覺建模的啓發,Serre使用了一系列不同大小的Gabor濾波器用來解決圖像當中的多尺度問題,這裏使用一組
Gabor濾波器就是爲了保證對不同尺度的圖像,都能檢測出相同特徵。論文的模型採用了這一觀點,使用不同大小的卷積核來提升不同尺度
圖像的檢測能力。

GoogLeNet借鑑了NIN的特性,在原先的卷積過程中附加了1*1的卷積核加上ReLU激活,這不僅僅提升了網絡的深度,提高了representation 
power,而且文中還通過1*1的卷積來進行降維,減少了更新參數量。

二、NIN模型

Network-in-Network也是一個熱度比較高的模型,主要思想是,普通卷積層只做一次卷積得到一組feature map,這樣將不同feature分開對應多個feature map的方法並不是很精確,因爲我們按照特徵分類的時候只經歷了一層,這樣會導致對於該特徵的表達並不是很完備,所以Network-in-Network模型用全連接的多層感知機去代替傳統的卷積過程,以獲取特徵更加全面的表達,同時,因爲前面已經做了提升特徵表達的過程,傳統CNN最後的全連接層也被替換爲一個全局平均池化層,因爲作者認爲此時的map已經具備分類足夠的可信度了,它可以直接通過softmax來計算loss了。

NIN的結構


其實Network-in-Network的思想也是對傳統CNN做了簡化,參數量大大的減少了。

三、Hebbian principle

目前圖像領域的深度學習,是使用更深的網絡提升representation power,從而提高準確率,但是這會導致網絡需要更新的參數爆炸式增長,導致兩個嚴重的問題:
1、網絡更容易過擬合,當數據集不全的時候,過擬合更容易發生,於是我們需要爲網絡feed大量的數據,但是製作樣本集本身就是一件複雜的事情。
2、大量需要更新的參數就會導致需要大量的計算資源,而當下即使硬件快速發展,這樣龐大的計算也是很昂貴的

解決以上問題的根本方法就是把全連接的網絡變爲稀疏連接(卷積層其實就是一個稀疏連接),當某個數據集的分佈可以用一個稀疏網絡表達的時候就可以通過分析某些激活值的相關性,將相關度高的神經元聚合,來獲得一個稀疏的表示。
這種方法也呼應了Hebbian principle,一個很通俗的現象,先搖鈴鐺,之後給一隻狗餵食,久而久之,狗聽到鈴鐺就會口水連連。這也就是狗的“聽到”鈴鐺的神經元與“控制”流口水的神經元之間的鏈接被加強了,而Hebbian principle的精確表達就是如果兩個神經元常常同時產生動作電位,或者說同時激動(fire),這兩個神經元之間的連接就會變強,反之則變弱(neurons that fire together, wire together)

四、Inception結構

通過上述的分析,作者提出了Inception結構,這是一種高效表達特徵的稀疏性結構。基於底層的相關性高的單元,通常會聚集在圖像的局部區域(因爲通常CNN底層卷積提取的都是局部特徵),這就相當於在單個局部區域上,我們去學習它的特徵,然後在高層用1*1卷積代替這個區域,當然某些相關性可能是隔得比較遠的,通過使用大的卷積核學習即可。
最後就是這樣的一個結構:

不過3*3,5*5卷積可能會導致參數量過大的問題,所以在之前通過降維可以控制參數量。

而GoogLeNet無非就是stack這種Inception結構

爲什麼1*1卷積可以降維?在單張單通道的圖上做1*1卷積當然不能降維,降維是對於多通道而言的,具體解釋可以看這裏http://www.caffecn.cn/?/question/136

以下就是整個網絡的參數表:


發佈了45 篇原創文章 · 獲贊 387 · 訪問量 84萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章