GoogLeNet學習筆記

Abstract

Inception的最大特點:提高網絡內部計算資源的利用率
架構決策基於Hebbian原則和多尺度處理。

  • 關於Hebbian原則和多尺度處理的理解:
    詳細的解釋可參考這篇博客 ,解釋的很好。
    (我只是勤勞的搬運工)
  1. Hebbian原則的理解:
    Hebbian principle的精確表達就是如果兩個神經元常常同時產生動作電位,或者說同時激動,這兩個神經元之間的連接就會變強,反之則變弱。舉個例子就是,在給狗餵食時,先搖鈴鐺,之後再餵食,久而久之,狗聽到鈴鐺就會口水連連。這就是狗的“聽到”鈴鐺的神經元與“控制”流口水的神經元之間的鏈接被加強了。用在神經網絡裏就是當某個數據集的分佈可以用一個稀疏網絡表達的時候就可以通過分析某些激活值的相關性,將相關度高的神經元聚合,來獲得一個稀疏的表示。
  2. 多尺度處理的理解:
    在某些特徵檢測提取算法中(如sift等),用到的某些算子會對圖像的某些信息作出反應,例如圖像當中像素點快速變化的一些區域(一般就是圖像當中的一些邊緣信息),然後記錄下來,形成該圖的一組特徵。但是某些時候我們的圖往往是不能確定大小的(這個大小,也可以理解爲相同大小時候,圖像的模糊程度),需要做的就是在圖像不同大小時,算法都能有效的提出相同的關鍵點。
    由此,我們需要對一張圖,生成一組由清晰逐漸變模糊的一組圖像,這就是圖像的多尺度。總的來說,多尺度模擬了不同遠近的相同物體在視網膜上的形成。而尺度不變性保證不同遠近物體可以對視覺神經有相同的刺激。
    Gabor濾波器就是爲了保證對不同尺度的圖像,都能檢測出相同特徵。論文的模型採用了這一觀點,使用不同大小的卷積核來提升不同尺度
    圖像的檢測能力。

Introduction

  • 使用同樣的數據,比Alexnet少12倍的參數就可以實現比Alexnet更好的結果。
  • 即使在一個很大的數據集上,也能實現合理的cost,可以實際應用。

Realted Work

  • 儘管人們擔心最大池化層層會導致精確的空間信息丟失,但與Alexnet同樣的結構已經被成功地用於定位,目標檢測,和人體姿態估計。
  • 使用了一系列固定的不同大小的Gabor濾波器來處理多尺度。在初始模型中的所有濾波器都是學習的。
  • Inception層重複了很多次,在GoogLeNet模型中得到了一個22層的深度模型。
  • 在架構中大量使用1x1卷積。具有雙重用途: 主要用作降維模塊,以消除計算瓶頸,否則會限制網絡的規模。這不僅允許增加深度,而且還允許網絡的寬度沒有顯著的性能損失。

Motivation and High Level Considerations

  • 最簡單的提高網絡性能的方法:
    增加寬度和深度。
    深度:增加層的個數
    寬度:增加每一層的神經元個數
    該方法的缺點
    1. 增加了參數數量,(數據集有限的情況下)容易產生過擬合,而獲得高品質的數據集可能是很困難的,尤其是一些需要專業人員才能製作的數據集。
    2. 造成了計算資源的浪費。
  • 解決以上問題的根本方法就是把全連接的網絡變爲稀疏連接(卷積層其實就是一個稀疏連接),當某個數據集的分佈可以用一個稀疏網絡表達的時候就可以通過分析某些激活值的相關性,將相關度高的神經元聚合,來獲得一個稀疏的表示。
    缺點是,今天的計算架構對於非均勻稀疏數據結構的數值計算效率很低。目前大多數面向視覺的機器學習系統都是利用空間域的稀疏性來實現的。但是,卷積是作爲與前一層中的patches的密集連接的集合來實現的。
  • 將稀疏矩陣聚類成相對密集(dense)的子矩陣,往往會給稀疏矩陣乘法提供最先進的實際性能。

怎麼理解dense和sparse?
dense和sparse都是形容網絡結構中的隱層的。
如果一個隱藏層和前面的輸入層和後面的輸出層有很多連結,那麼就可以稱爲是dense。比如全連接層就是dense。而dropout隨機刪掉一些神經原就是sparse,包括卷積操作也是sparse。直觀理解起來,就是形容這個層是緊密連接的(dense)還是稀疏連接的(sparse)。

Architectural Details

  • 主要idea:找出卷積視覺網絡中最優的局部稀疏結構是如何被容易獲得的密集分量所覆蓋的。
  • Arora等人提出一種逐層結構,對上一層的相關統計量進行分析,並將其聚成一組具有高度相關性的單元。相關的塊會集中在一個單一的區域,可以被1x1代替。作者認爲空間上擴展後的塊可以被更大的卷積塊代替。
  • 因爲池化有用,所以加了一個單獨的池化層進行並行計算。
  • 得到的初始圖像如下圖圖a,但是這樣即使是3x3的卷積核也需要很大的計算量,所以加入1x1實現降維,減少了參數量。同時1x1引入了新的非線性操作,增加了模型的非線性。
  • Inception模型的好處:
  1. 可以增加每層神經元的個數而不用考慮複雜度的問題,提高了2-3倍的速度。
  2. 它與直覺一致,即視覺信息應該在不同的尺度上進行處理,然後進行聚類,以便下一階段能夠同時從不同的尺度中提取特徵。
  • 爲了訓練時的內存效率,可以只在高層使用inception,淺層使用傳統的卷積網絡,但這不是必要的,只是因爲基礎設施低下時的折中辦法。

在這裏插入圖片描述

GoogLeNet

在這裏插入圖片描述

特點:

  • 增加與中間層相連接的輔助分類器,在分類器的較低階段增強識別,增加傳播回來的梯度信號,並提供額外的正則化。
  • 去掉一層全連接層,減少參數。

後面基本都是一些實驗結果,就不貼出來了,附上兩篇我覺得寫的不錯的文章鏈接
Google Inception Net論文細讀
GoogLeNet的心路歷程(二)
需要好好學習一下人家看完論文以後是怎麼總結的

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