經典CNN:LeNet-5,AlexNet,VGG,ResNets

1. 爲什麼要進行實例探究?

(Why look at case studies)

上週我們講了CNN的基本構建,比如卷積層、池化層以及全連接層等。事實上,過去幾年計算機視覺中的大量研究都集中在如何把這些基本構件組合起來,形成有效的卷積神經網絡。對於我們來說,通過研究別人構建的有效組件案例是個不錯的辦法。

實際上在計算機視覺任務中表現良好的神經網絡框架往往也適用於其它任務,也就是說,如果有人已經訓練或者計算出擅長識別貓、狗、人的神經網絡或者神經網絡框架,而你的計算機視覺識別任務是構建一個自動駕駛汽車,你完全可以借鑑別人的神經網絡框架來解決自己的問題。


2. 經典的卷積網絡

(Classic networks)

介紹幾種經典的卷積神經網絡結構,分別是LeNet、AlexNet、VGGNet。

  • LeNet-5
    LeNet-5模型主要是針對灰度設計的,由Yann LeCun教授於1998年提出來的,它是第一個成功應用於數字識別問題的卷積神經網絡。在MNIST數據中,它的準確率達到大約99.2%。典型的LeNet-5結構包含CONV layer,POOL layer和FC layer,順序一般是 CONV layer->POOL layer->CONV layer->POOL layer->FC layer->FC layer->OUTPUT layer,即 y^\hat{y}。下圖所示的是一個數字識別的LeNet-5的模型結構:
    在這裏插入圖片描述
    該LeNet模型總共包含了大約6萬個參數。值得一提的是,當時Yann LeCun提出的LeNet-5模型池化層使用的是average pool,而且各層激活函數一般是Sigmoid和tanh。現在,我們可以根據需要,做出改進,使用max pool和激活函數ReLU。

  • AlexNet
    AlexNet模型是由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同提出的,其直接對彩色的大圖像進行處理,+結構如下所示:
    在這裏插入圖片描述
    AlexNet模型與LeNet-5模型類似,只是要複雜一些,總共包含了大約6千萬個參數。同樣可以根據實際情況使用激活函數ReLU。原作者還提到了一種優化技巧,叫做Local Response Normalization(LRN)。 而在實際應用中,LRN的效果並不突出。

  • VGG
    VGG也稱爲VGG-16網絡,其參數多達1億3千萬,模型更加複雜一些,一般情況下,其CONV layer和POOL layer設置如下:

    • CONV = 3×3 filters, s = 1, same
    • MAX-POOL = 2×2, s = 2

    在這裏插入圖片描述


3.殘差網絡(ResNets)

(Residual Networks)

如果神經網絡層數越多,網絡越深,由於梯度消失和梯度爆炸的影響,整個模型難以訓練成功。解決的方法之一是人爲地讓神經網絡某些層跳過下一層神經元的連接,隔層相連,弱化每層之間的強聯繫。這種神經網絡被稱爲 殘差網絡 (ResNets)。

下面是一個普通的神經網絡塊的傳輸:
在這裏插入圖片描述
而殘差網絡由許多隔層相連的神經元子模塊組成,我們稱之爲 殘差塊 Residual block。單個 殘差塊 的結構如下圖所示:
在這裏插入圖片描述
上圖中紅色部分稱爲 short cut 或者 skip connection,直接建立 a[l]a^{[l]}a[l+2]a^{[l+2]}之間的隔層聯繫。其前向傳播的計算步驟爲:

  • z[l+1]=W[l+1]a[l]+b[l+1]z^{[l+1]}=W^{[l+1]}a^{[l]}+b^{[l+1]}
  • a[l+1]=g(z[l+1])a^ {[l+1]}=g(z^{ [l+1]} )
  • z[l+2]=W[l+2]a[l+1]+b[l+2]z ^{[l+2]} =W ^{[l+2]} a^{[l+1]}+b^{ [l+2]}
  • a[l+2]=g(z[l+2]+a[l])a^{ [l+2] }=g(z ^{[l+2]} +a^{ [l]} )

a[l]a ^{[l]} 直接隔層與下一層的線性輸出相連,與 z[l+2]z^{[l+2]} 共同通過激活函數(ReLU)輸出 a[l+2]a^{[l+2]}

該模型由Kaiming He, Xiangyu Zhang, Shaoqing Ren和Jian Sun共同提出。由多個 殘差塊 組成的神經網絡就是 殘差網絡。其結構如下圖所示:

在這裏插入圖片描述

實驗表明,這種模型結構對於訓練非常深的神經網絡,效果很好。另外,爲了便於區分,我們把 非殘差網絡 稱爲 Plain Network。

與 Plain Network 相比,Residual Network 能夠訓練更深層的神經網絡,有效避免發生發生梯度消失和梯度爆炸。從下面兩張圖的對比中可以看出,隨着神經網絡層數增加,Plain Network 實際性能會變差,training error 甚至會變大。然而,Residual Network 的訓練效果卻很好,training error 一直呈下降趨勢。

在這裏插入圖片描述

參考:
大樹先生:DeepLearning.ai 筆記
紅色石頭:deeplearning.ai筆記

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