DNN结构演进History—CNN-GoogLeNet :Going Deeper with Convolutions
??? ??? 抄襲了一片文章,進行少量修改:http://www.gageet.com/2014/09203.php
????? 作者:Christian Szegedy( google )? 劉偉(北卡羅來納? 大學)? 賈清揚(Google)? ....... (.......)
??????? GoogleNet的研究點是引入了Inception結構,構建網絡中的網絡,使網絡稀疏化,使CNN網絡更像一個“神經元-網絡”。因此可以實現:看起來更深,其實更稀疏,全局性能更好的網絡。在數學上表示為,把稀疏網絡轉化成局部稠密的網絡,加快計算速度。
1.摘要 Abstract:
??????? 本文提出了一種新的分類和檢測的新網絡。該網絡最大的特點就是提升了計算資源的利用率。在網絡需要的計算不變的前提下,通過工藝改進來提升網絡的寬度和深度。最后基于Hebbian?Principle( 赫布理論(英語:Hebbian theory) )和多尺寸處理的直覺來提高性能。在ILSVRC-2014中提交了這種網絡,叫GoogLeNet有22層。
2.簡介 Introduction:
??????? 硬件性能的提升是一個主要因素,還有更多的數據集更復雜的模型。更有用的是一系列的想法、算法和網絡結構的更新。
?????? 在ILSVRC2014上GoogLeNet?只用了比[9](Krizhevsky 兩年前)少12倍的參數,但正確率更高。本文最大的工作是通過CNN和普通的計算機視覺結合,類似于R-CNN[6]。因為算法的 ongoing?traction?of?mobile 和嵌入式計算,使算法的效率變得 更高。也導致了本文不會關心絕對的權重比率。
??????? 本文將會關注CV的深度神經網絡“Inception”。本文既將Inception提升到了一個新的高度,也加深了網絡的深度。此文中深度的兩個解釋:引入一個新的層—以生物學模塊的形式——更像一個神經元的結構;并使網絡層次直接變深。換句話說,可以把此生物學模塊看做 一個邏輯高層, 此方法借鑒于 [2,12] 。
3.近期工作匯總 Related?Work:
??????? 從最初廣泛應用的LeNet-5開始,CNN有了標準結構——堆棧式的卷積層(有選擇性的/稀疏 鏈接層、對比歸一化層和 池化層) 隨后鏈接一個或者多個全連接層。這種標準結構天然對應了圖像的二維結構,在圖像分類上具有優越性。為應對更大的數據集和更廣泛的應用場景,主流的方法是通過擴增網絡鏈接層數和 層的大小,并且使用DropOut的方法(網絡結構冗余)進行防止網絡結構可能出現的過擬合。
???? ?? 盡管CNN的池化層會導致空間精確信息的損失,傳統的相似結構的CNN還用來進行定位、檢測、人體姿勢估計。
??????? [15]用了不同尺寸的固定Gabor濾波器處理縮放問題。GoogLeNet用了很多相同的層,使得總層數共22層。[12]利用Network?in?Network用來提高神經網絡的power,使網絡更容易協調。本文用Network?in?Network有兩方面用途,降低維度來降低計算瓶頸(限制了網絡的結構增大),也可以提高網絡的深度和寬度。
???????? 最近主流的目標檢測方法是R-CNN(局部感受——CNN),Girshick[6]所提出的R-CNN將檢測分解成兩部分:在淺層 利用底層信息如顏色、超像素組成的信息 進行 潛在目標檢測,再利用深層的CNN進行分類。作者對這種表現良好的方法再進行了一次提高,使用了多 包圍盒的方法等。
4.改進和高層優化 Motivation?and?High?Level?Considerations:
??????? 為提高網絡的分類性能,直觀的方法是可以使網絡更深更大,但這樣造成兩個問題。復雜模型容易導致過擬合,且訓練時間過長增加計算性能的消耗。
??????? 其根本的解決辦法是將全連接層變為稀疏鏈接層[2],甚至卷積層也變成稀疏鏈接。方法的主要描述為:若數據集致使網絡極大、極為稀疏,網絡構建和訓練過程可以逐層進行,通過分析前一層和 有高響應輸出的神經元群 的鏈接關系統計 。 盡管這種關系的成立性證明 需要強假設,但這種描述與生物學的 赫本原理 是一致的,其描述 為神經元具有結群和纏繞特性, 方法原理是 實驗性 無誤的。
???????? 當下,現在的計算結構,對于非均衡的稀疏數據,計算效率不高。(或許需要神經元計算機來進行加速)。卷積可以被視為網絡前期的稠密矩陣收集。結構的統一化、更多的濾波器、更大的批處理尺寸 可以用來提高稠密計算。
???????? [3]提出將多個稀疏矩陣 合并成 相關的稠密子矩陣來解決問題。
……
5.框架細節 Architectural?Details:
??????? Inception主要的思想就是如何找出最優的局部稀疏結構并將其覆蓋為近似的稠密的組件。[2]提出一個層與層的結構,在結構的最后一層進行相關性統計,將高相關性的聚集到一起。這些簇構成下一層的單元,與上一層的單元連接。假設前面層的每個單元對應輸入圖像的某些區域,這些單元被濾波器進行分組。低層(接近input層)的單元集中在某些局部區域,意味著在最終會得到在單個區域的大量群,他們能在下一層通過1*1卷積覆蓋[12]。然而也可以通過一個簇覆蓋更大的空間來減小簇的數量。
?????? 為了避免patch-alignment問題,現在濾波器大小限制在1*1,3*3和5*5(主要是為了方便也非必要)。在pooling層添加一個備用的pooling路徑可以增強效率。
?????? Inception模塊都堆在其他Inception模塊的上面(層層堆疊),……
?????? 上述模塊一個巨大的問題就是,即使是一個合適數量的卷積,也會因為大量的濾波而變得特別expensive。經過pooling層輸出的合并,最終可能會導致數量級增大不可避免。處理效率不高導致計算崩潰。
??????? 第二種方法:在需要大量計算的地方進行慎重的降維。壓縮信息以聚合。1*1卷積不僅用來降維,還用來修正線性特性。
??????? 只在高層做這個,底層還是普通的卷積。
GoogleLenet:
???????? #3*3?reduce代表3*3卷積前1*1濾波器的個數。所有的reduction/projection層都利用了修正線性激活。網絡包含22層帶參數層和5層不含參數的pooling層。總共有約100層。分類前的pooling是基于[12],只是我們利用了不同的線性層。有利于精細的調節網絡,但不期望它有多出色。從全連接層move到下采樣會將Top1準確率提高0.6%,但是dropout仍然需要。
圖:
Figure 3: GoogLeNet network with all the bells and whistles
? A 1*1 convolution with 128 filters for dimension reduction and rectified linear activation.?????? 128個1*1的卷積網絡,用于降維和線性激活
? A fully connected layer with 1024 units and rectified linear activation.? 一個1024個單元的全連接層
? A dropout layer with 70% ratio of dropped outputs. 70%的隨機丟棄—意味著70%的網絡冗余
? A linear layer with softmax loss as the classifier (predicting the same 1000 classes as themain classifier, but removed at inference time).
?? SoftMax 損失層
???????? 在淺層網絡來說,相對中間的網絡產生的特征非常有辨識力。在這些層中增加一些額外的分類器,能個增加BP的梯度信號和提供額外的正則化。這些分類器將小的卷積網絡放在4a和4b的輸出上。在訓練過程中,損失會根據權重疊加,而在測試時丟棄。
6.Training?Methodology:
?????? 訓練速率:
?????? 利用[4]-DistBelief提供的分布式機器學習系統和數據平行。用數個高端GPU,一周達到收斂,短板在于內存。利用[17]異步隨機梯度下降,0.9動量,學習率每八個周期下降4%。最后用Polyak?averaging?[13]來創建最后用來測試的模型。
?????? 采樣變化/擾動 很大,其中幾個月的時間聯合調節一些超參數、比如 丟棄 和學習速率,沒有一個普遍的指導性原則用于 有效的訓練網絡。發現:[8]的光度扭曲(添加灰度值干擾/濾波)有助于對付過擬合。還進行了隨機插入(bilinear, area, nearest neighbor and cubic, with equal probability),同時并不能準確確定哪些因素影響了最終結果。
7.ILSVRC?2014?Classification?Challenge?Setup?and?Results:
①訓練了7個版本的 GoogleLeNet 網絡,初始化方式保證相同,只是采樣方法和隨機輸入圖像不同,取綜合值。
②將圖像的短邊縮放成4中:256,288,320,352。取圖像的上中下塊。每塊取四個角、中間的224*224和將其縮放到224*224以及它們的鏡像。結果是4*3*6*2=144,即每個圖像采樣144塊輸入圖。但可能實際生產中不能應用。
③ 使用maxpooling 和 在分類器平均,最后的結果都不如簡單的平均好。
表 2
表2
7.ILSVRC?2014?Detection?Challenge?Setup?and?Results
??????? 方法與[6]的R-CNN很像,但增加了Inception模塊。結合了用multi-box?[5]?的方法和Selective?Search?[20]?來提高定位框的召回率。這讓從Selective?Search?[20]?得到的結果減半。再加上200個[6]的方法,總共[6]占60%,可以將覆蓋率從92%提高到93%。上述方法可以將準確率相對單一模型提高1%。在分類區域的時候利用6個卷積網絡科將準確率從40%提高到43.9%。
??????? 表4最后GoogLeNet最好,比去年大了接近一倍。表5表示GoogLeNet在單模型的情況下,只比最好的低0.3%,但那個用了3個模型,而GoogLeNet在多模型的情況下結果好得多。
表4
表5
Conclusions
?????? 將最佳稀疏結構稠密化是一種有效提高CV神經網絡的方法。優點是只適度增加計算量。本文檢測方法不利用上下文,不會定位框回歸,證明了Inception方法的強壯。本文提供了一個將稀疏變稠密的途徑。
[2]?Sanjeev?Arora,?Aditya?Bhaskara,?Rong?Ge,?and?Tengyu?Ma.?Provable?bounds?for?learning?some?deep?representations.?CoRR,?abs/1310.6343,?2013.
[6]?Ross?B.?Girshick,?Jeff?Donahue,?Trevor?Darrell,?and?Jitendra?Malik.?Rich?feature?hierarchies?for?accurate?object?detection?and?semantic?segmentation.?In?Computer?Vision?and?Pattern?Recognition,?2014.?CVPR?2014.?IEEE?Conference?on,?2014.
[9]?Alex?Krizhevsky,?Ilya?Sutskever,?and?Geoff?Hinton.?Imagenet?classification?with?deep?con-volutional?neural?networks.?In?Advances?in?Neural?Information?Processing?Systems?25,?pages?1106–1114,?2012.
[12]?Min?Lin,?Qiang?Chen,?and?Shuicheng?Yan.?Network?in?network.?CoRR,?abs/1312.4400,?2013.
[15]?Thomas?Serre,?Lior?Wolf,?Stanley?M.?Bileschi,?Maximilian?Riesenhuber,?and?Tomaso?Poggio.?Robust?object?recognition?with?cortex-like?mechanisms.?IEEE?Trans.?Pattern?Anal.?Mach.?Intell.,?29(3):411–426,?2007.
總結
以上是生活随笔為你收集整理的DNN结构演进History—CNN-GoogLeNet :Going Deeper with Convolutions的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 忍者必须死3小黑武器怎么带
- 下一篇: 802.11标准及无线网运行模式