(CNN)卷積神經網絡(五)常見卷積神經網絡

  1. Letnet
  2. Alexnet
  3. ZFnet
  4. VGG
  5. Googlenet
  6. Resnet: Deep Residual Learning Network
  7. fine-tune

第一篇文章介紹了卷積神經網絡的數據輸入形式和權值的初始化:CNN)卷積神經網絡(一) 第二篇文章介紹了卷積操作,常用的激活函數(CNN)卷積神經網絡(二)
第三篇介紹了卷積神經網絡的池化層,可視化理解以及用數學的角度理解卷積操作:[(CNN)卷積神經網絡(三)]
第四篇介紹了dropout的三種不同理解方式:(CNN)卷積神經網絡(四)dropout

這一篇看一下常見的卷積神經網絡

1.Letnet

這是一開始最簡單的卷積神經網絡,用來做手寫數字識別的。
這裏寫圖片描述

這是它的網絡結構:
這裏寫圖片描述
其實就是最經典的:

[CONVPOOLCONVPOOLCONVFC]

2.Alexnet

這裏寫圖片描述
第一層卷積層用55個神經元,每次採樣採用11X11的滑動窗口,然後得到55個feature map。
它的top5的準確度超出第二10%。
這裏寫圖片描述

3.ZFnet

這裏寫圖片描述
ZFnet只是對前面的網絡做了一些調整,改動不是很大。
在第一層卷積層,只是把11X11的滑動窗口改爲7X7,步長設爲2。

4.VGG

這個是VGG-16的
這裏寫圖片描述
能訓練出一個16層的神經網絡,真的很不容易,因爲那時候梯度消失還沒有得到比較好的解決。

參數比較:
這裏寫圖片描述

消耗內存計算:
這裏寫圖片描述
總內存:24M*4bytes -=93MB/image
總參數:138M parameters

不要覺得自己有GPU就屌爆了,一次丟太多圖片,你的服務器照樣受不了。

5.Googlenet

這裏寫圖片描述
它把全連接層換成了小卷積,而且它只有5百萬個參數。

6.Resnet: Deep Residual Learning Network

這裏寫圖片描述
resnet的網絡深度比VGG還要深8倍,但是它比VGG好訓練。
由上圖的中間圖,你會發現這是平鋪的網絡,其實就是

F(W1,F(W2,F(W3,F(W4,x))))
這樣層層嵌套的結構,這樣在求梯度的時候非常容易導致梯度消失,所以就由人想出了下圖這樣的結構:
這裏寫圖片描述

它相當於x這樣的輸入數據,和經過卷積之後的輸出數據 F(x) 共同作爲下一層的輸入,讓模型學習他們之間的殘差,其實就是x和 F(x) 之間的差異,然後把這樣的差異值疊加。

與之前的差異:求偏導時由:

F(W1,F(W2,F(W3,F(W4,x))))
變成了 F(x)+x 。求偏導函數對於 和函數比嵌套函數更好求嘛。

7.fine-tune

站在巨人的肩膀上來做自己的事情吧,這裏有所有CNN的參數文件下載改改就可以用了。
Model-Zoo