1. 程式人生 > >典型卷積神經網絡架構

典型卷積神經網絡架構

5.0 深度學習 文獻 www cep 分享 並且 mage vol

  • 參考資料
  • 0 Figures First
  • 1 LeNet5
    • 貢獻
  • 2 Dan Ciresan Net
  • 3 AlexNet
    • 貢獻
  • 4 VGG19
    • 貢獻
  • 5 Network-in-network(NiN)
  • 6 Inception V1-V3
    • 貢獻

參考資料

  • Neural Network Architectures
  • CS231N Spring 2017 Lecture9

0 Figures First

  1. CNN架構演變
    技術分享圖片
    搬運一張圖,總結的很好。
  2. Top1 vs operations, size ∝ parameters
    技術分享圖片
    上圖是精度(Top1)與運算量的比較,詳細分析在這裏。
  3. ImageNet比賽獲獎網絡
    技術分享圖片
    這是何凱明大神的成果,參考文獻還沒找到。

1 LeNet5

技術分享圖片

第一個卷積神經網絡,1994年由Yann LeCun基於1988年以來的工作提出,並命名為LeNet5。

貢獻

  • 在神經網絡中引入卷積層
  • 引入下采樣
  • 卷積+池化(下采樣)+非線性激活的組合是CNN的典型特征
  • 使用MPL作為分類器

雖然是一個只有5層的小網絡,但卻是當之無愧的開創性工作。卷積使得神經網絡可以共享權值,一方面減少了參數,另一方面可以學習圖像不同位置的局部特征.
引入下采樣是因為圖像特征的相對位置比其精確位置更重要,而後來的網絡更多采用最大池化。

2 Dan Ciresan Net

2010年,Dan Claudiu Ciresan和Jurgen Schmidhuber實現了第一個GPU神經網絡。

3 AlexNet

技術分享圖片

AlexNet是2012年ImageNet比賽的冠軍,第一個基於CNN的ImageNet冠軍,網絡比LeNet5更深(8層)。

貢獻

  • 使用ReLU作為非線性激活函數
  • 數據擴增
  • 使用最大池化
  • 使用dropout避免過擬合
  • batch
  • 使用GPU減少訓練時間

從直覺來說,最大池化獲得的是每個2x2位置的最具代表性特征,最後輸出整個圖像各個區域的典型特征,這樣做可以在避免重復的同時保留足夠的特征用於分類,所以池化可以避免過擬合。
圖像分類的樣本都是將分類對象置於中心的,雖然池化考慮到了特征的相對空間關系,但是物體有太大的平移或旋轉時分類效果難以保證,所以有時候訓練時需要做數據擴增。在物體檢測和分割等任務中還需要設計特殊的網絡結構來探測不同位置的感興趣對象。
從AlexNet之後,深度學習就變成了一種叫做"解決任務的更大規模的神經網絡

"的技術。^_~

4 VGG19

技術分享圖片

VGG是2014年的ImageNet分類的亞軍,物體檢測冠軍,使用了更小的卷積核(3x3),並且連續多層組合使用。

貢獻

  • 更深
  • 連續多個3x3的卷積層

VGG論文的一個主要結論就是深度的增加有益於精度的提升,這個結論堪稱經典。
連續3個3x3的卷積層(步長1)能獲得和一個7x7的卷積層等效的感知域(receptive fields),而深度的增加在增加網絡的非線性時減少了參數(3*3^2 vs 7^2)。從VGG之後,大家都傾向於使用連續多個更小的卷積層,甚至分解卷積核(Depthwise Convolution)。
但是,VGG簡單的堆疊卷積層,而且卷積核太深(最多達512),特征太多,導致其參數猛增,搜索空間太大,正則化困難,因而其精度也並不是最高的,在推理時也相當耗時,和GoogLeNet相比性價比十分之低。

5 Network-in-network(NiN)

技術分享圖片

NiN發表於13年底,它洞察到使用1x1卷積可以為卷積層的特征提供更強的組合能力,一個簡單但是真的超贊的想法。

1x1卷積用於在空間上對卷積之後的特征進行組合,高效的利用了少量參數,將其共享到該特征的所有像素,最後得到更加power的特征。

6 Inception V1-V3

技術分享圖片

GoogLeNet是2014年的ImageNet圖像分類的冠軍,比VGG19多3層,而其參數卻只有AlexNet的1/12,同時獲得了當時state-of-the-art的結果。

貢獻

  • Inception模塊
    技術分享圖片
    Inception模塊使用1x1的卷積(bottleneck layer)減少了特征數量,同時,分類器部分只保留了必要的一個全連接層,極大的降低了運算數量。Inception模塊是GoogLeNet以更深的網絡和更高的計算效率取得更好的結果的主要原因。
    此後,Inception模塊不斷改進,產生了Inception-2和Inception-3。
  • Inception-v2
    Inception-2使用了Batch Normalization。
  • Inception-v3
    Inception-3有兩方面改進,一是像VGG一樣,使用了連續的3x3卷積核代替更大的卷積核;另一方面進一步使用了Depthwise Convolution分解卷積。

典型卷積神經網絡架構