新聞中心

        EEPW首頁 > 智能計算 > 設計應用 > 深度學習之GoogLeNet解讀

        深度學習之GoogLeNet解讀

        作者: 時間:2017-05-17 來源:網絡 收藏

          提出背景

        本文引用地址:http://www.104case.com/article/201705/359304.htm

          ?始于LeNet-5,一個有著標準的堆疊式卷積層冰帶有一個或多個全連接層的結構的卷積神經網絡。通常使用dropout來針對過擬合問題。

          ?為了提出一個更深的網絡,做到了22層,利用inception結構,這個結構很好地利用了網絡中的計算資源,并且在不增加計算負載的情況下,增加網絡的寬度和深度。同時,為了優化網絡質量,采用了Hebbian原理和多尺度處理。在分類和檢測上都取得了不錯的效果。

          ?最近的發展,大多來源于新的想法,算法以及網絡結構的改善,而不是依賴于硬件,新的數據集,更深的網絡,并且的研究不應該完全專注于精確度的問題上,而更應該關注與網絡結構的改善方面的工作。

          相關工作

          ?參考Robust object recognition with cortex-like mechanisms.中利用固定的多個Gabor濾波器來進行多尺度處理的方法,對inception結構中的所有濾波器都進行學習,并運用至整個22層網絡。

          ?GoogLeNet參考Network in network.中對1x1卷積的使用來增加網絡深度的做法,GoogLeNet也利用了1x1卷積來進行降維和限制網絡尺寸的作用。

          ?GoogLeNet參考Rich feature hierarchies for accurate object detection and semantic segmentation.即R-CNN將整個檢測任務分為兩個子問題的做法,即首先利用底層特征如顏色,文本等來進行提取與類別無關的proposals,然后將這些proposals放入CNN中進行訓練來確定類別信息的做法。GoogLeNet也借鑒這種方式,并對兩個階段都進行了改進,第一個階段使用多邊框預測,第二個階段則是使用更好的CNN網絡結構。

          基本思想及過程

          ?GoogLeNet提出最直接提升深度神經網絡的方法就是增加網絡的尺寸,包括寬度和深度。深度也就是網絡中的層數,寬度指每層中所用到的神經元的個數。但是這種簡單直接的解決方式存在的兩個重大的缺點。

          (1) 網絡尺寸的增加也意味著參數的增加,也就使得網絡更加容易過擬合。

          (2) 計算資源的增加。

          ?因此想到將全連接的方式改為稀疏連接來解決這兩個問題。由Provable bounds for learning some deep representations.提到數據集的概率分布由大又稀疏的深度神經網絡表達時,網絡拓撲結構可由逐層分析與輸出高度相關的上一層的激活值和聚類神經元的相關統計信息來優化。但是這有非常多的限制條件。因此提出運用Hebbian原理,它可以使得上述想法在少量限制條件下就變得實際可行。

          ?通常全連接是為了更好的優化并行計算,而稀疏連接是為了打破對稱來改善學習,傳統常常利用卷積來利用空間域上的稀疏性,但卷積在網絡的早期層中的與patches的連接也是稠密連接,因此考慮到能不能在濾波器層面上利用稀疏性,而不是神經元上。但是在非均勻稀疏數據結構上進行數值計算效率很低,并且查找和緩存未定義的開銷很大,而且對計算的基礎設施要求過高,因此考慮到將稀疏矩陣聚類成相對稠密子空間來傾向于對稀疏矩陣的計算優化。因此提出了inception結構。

            

        這里寫圖片描述

         

          ?inception結構的主要思想在于卷積視覺網絡中一個優化的局部稀疏結構怎么樣能由一系列易獲得的稠密子結構來近似和覆蓋。上面提到網絡拓撲結構是由逐層分析上一層的相關統計信息并聚集到一個高度相關的單元組中,這些簇(單元組)表達下一層的單元(神經元)并與之前的單元相連接,而靠近輸入圖像的底層相關的單元在一塊局部區域聚集,這就意味著我們可以在一塊單一區域上聚集簇來結尾,并且他們能在下一層由一層1x1的卷積層覆蓋,也即利用更少的數量在更大空間擴散的簇可由更大patches上的卷積來覆蓋,也將減少越來越大的區域上patches的數量。

          ?為了避免patch對齊問題,因此限制了inception結構中濾波器的大小為1x1,3x3,5x5。由于inception結構中都是互相堆疊的,因此輸出相關統計信息一定不同:為了在高層能提取更抽象的特征,就要減少其空間聚集性,因此通過增加高層inception結構中的3x3,5x5卷積數量,捕獲更大面積的特征。

          ?在上述inception結構中,由于濾波器數量的增加,加上池化操作使得5x5大小的濾波器的計算開銷非常大,池化層輸出與卷積層輸出的合并增加了輸出值的數量,并且可能覆蓋優化稀疏結構,處理十分低效,引起計算爆炸。因此引出下面這個inception結構。

            

        這里寫圖片描述

         

          ?inception結構中有很多嵌套,低維嵌套包含了大量的圖片patch信息,且這種嵌套表達了一個稠密且壓縮的信息的形式,但我們想要表達的更加稀疏,并且只在大量聚集的時候才對信號進行壓縮,因此考慮利用在3x3和5x5卷積操作前進行1x1卷積來進行降維處理,1x1不僅降維,而且還引入了ReLU非線性激活。實際發現,只在高層中使用inception結構對整個網絡更加有利。

          ?inception結構的好處在于在沒有計算復雜度不受控制的計算爆炸時,可以增加每個階段的單元個數,也就是網絡的寬度,當然還有深度;同時這種結構也類似于圖像中多尺度處理之后將處理結果聚集在一起以便于下一個階段能同時提取不同尺寸下的特征。

          ?由于稀疏結構的計算量大的問題,所以采用1x1的卷積來減少參數的計算,其中1x1 卷積解釋為:

          在3x3和5x5層前,各自增加一個1x1的卷積操作。1x1的卷積(或者網絡層中的網絡),提供了一個減少維度的方法。比如,我們假設你擁有一個輸入層,體積是100x100x60(這并不定是圖像的三個維度,只是網絡中每一層的輸入)。增加20個1x1的卷積濾波器,會讓你把輸入的體積減小到100x100x20。這意味著,3x3層和5x5層不需要處理輸入層那么大的體積。這可以被認為是“池特征”(pooling of feature),因為我們正在減少體積的高度,這和使用常用的最大池化層(maxpooling layers)減少寬度和長度類似。另一個需要注意的是,這些1x1的卷積層后面跟著的是ReLU 單元,這肯定不會有害。

          ?有了上面的這種結構形式,叫inception:這個inception模型由一個網絡層中的網絡、一個中等大小的過濾卷積、一個大型的過濾卷積、一個操作池(pooling operation)組成。網絡卷積層中的網絡能夠提取輸入體積中的每一個細節中的信息,同時5x5的濾波器也能夠覆蓋大部分接受層的的輸入,進而能提起其中的信息。你也可以進行一個池操作,以減少空間大小,降低過度擬合。在這些層之上,你在每一個卷積層后都有一個ReLU,這能改進網絡的非線性特征。基本上,網絡在執行這些基本的功能時,還能同時考慮計算的能力。這篇論文還提供了更高級別的推理,包括的主題有稀疏和緊密聯結。

            

        這里寫圖片描述

         

          ?上圖為GoogLeNet的網絡框圖細節,其中“#3x3 reduce”,“#5x5 reduce”代表在3x3,5x5卷積操作之前使用1x1卷積的數量。輸入圖像為224x224x3,且都進行了零均值化的預處理操作,所有降維層也都是用了ReLU非線性激活函數。

            

        這里寫圖片描述

         

          ?如上圖用到了輔助分類器,Inception?Net有22層深,除了最后一層的輸出,其中間節點的分類效果也很好。因此在Inception?Net中,還使用到了輔助分類節點(auxiliary?classifiers),即將中間某一層的輸出用作分類,并按一個較小的權重(0.3)加到最終分類結果中。這樣相當于做了模型融合,同時給網絡增加了反向傳播的梯度信號,也提供了額外的正則化,對于整個Inception?Net的訓練很有裨益。

            

        這里寫圖片描述

         

         



        關鍵詞: 深度學習 GoogLeNet

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淮阳县| 司法| 临沂市| 正安县| 金川县| 靖宇县| 敦煌市| 正镶白旗| 石渠县| 峨山| 仙居县| 仪陇县| 阿克| 承德市| 涿鹿县| 藁城市| 桦南县| 灵璧县| 白山市| 阿合奇县| 从化市| 西华县| 望都县| 城固县| 沾化县| 栾川县| 调兵山市| 科技| 临湘市| 北宁市| 平武县| 舒城县| 蒙山县| 额尔古纳市| 宁德市| 申扎县| 临洮县| 如东县| 黎川县| 萨嘎县| 乌兰县|