深度學習中幾種常用的模型


  最近再從事深度學習方面的工作,感覺還有很多東西不是很了解,各種網絡模型的結構的由來還不是很清晰,在我看來所有的網絡都是一層層的卷積像搭積木一樣打起來的,由於還沒實際跑所以還沒很深刻感受到幾種網絡類型的區別,在此我想梳理一下幾種常見的網絡結構,加深一下理解。

       本文轉自此文https://www.cnblogs.com/houkai/p/6553221.html,此文條理清晰,總結較為到位。

  目前常見的網絡結構:AlexNet、ZF、GoogLeNet、VGG、ResNet等等都可謂曾一戰成名,它們都具有自身的特性,它們都提出了創新點。     

LeNet

是由Yann LeCun完成的具有開拓性的卷積神經網絡,是大量網絡結構的起點。網絡給出了卷積網絡的基本特性:

1.局部感知。人對外界的認知是從局部到全局的,相鄰局部的像素聯系較為緊密。每個神經元沒必要對全局圖像進行感知,只需要對局部進行感知,然后更高層將局部的信息綜合起來得到全局的信息。

2.多層卷積。層數越高,學到的特征越全局化。

3.參數共享。每個卷積都是一種提取特征的方式,大大降低了參數的數目。

4.多卷積核。提取多類特征,更為豐富。

5.池化。降低向量維度,並避免過擬合。

特性1自然引出了特性2,特性3自然引出了特性4。

網絡用於mnist手寫體識別任務,網絡結構用 http://ethereon.github.io/netscope/#editor 查看,常見網絡:http://ethereon.github.io/netscope/quickstart.html 

 

AlexNet

2012年,深度學習崛起的元年,Alex Krizhevsky 發表了Alexet,它是比LeNet更深更寬的版本,並以顯著優勢贏得了ImageNet競賽。貢獻有:

 1.使用RELU作為激活單元。

 2.使用Dropout選擇性忽略單個神經元,避免過擬合。

 3.選擇最大池化,避免平均池化的平均化效果。

 AlexNet是目前應用極為廣泛的網絡,結構講解見:http://blog.csdn.net/sunbaigui/article/details/39938097

 網絡整體上給我們帶來了三個結構模塊:

 image

 

1、單層卷積的結構:conv-relu-LRN-pool。前面的卷積步長大,快速降低featureMap的大小(較少后面的計算量),后面深層卷積保持featureMap大小不變。LRN的功能放在今天來看是無關痛癢的,並不是很強。

 2、多層卷積的結構,網絡更深,特征更抽象。

 3、全連接的結構,drop避免過擬合。

 

ZFNet

由 Matthew D Zeiler和Rob Fergus於2013年在“Visualizing and Understanding Convolutional Networks”論文中提出,屬於AlexNet網絡的變體。論文具有重要意義,闡述了卷積網絡為什么有效,ZF網絡是他們順帶提出來的。ZF在faster rcnn等應用中做為特征提取模塊被廣泛應用,一般來講比AlexNet略優。

主要的改動是:減少第一層卷積的size和stride(11->7、4->2),提取更多的底層特征,增加第二層卷積的步長stride(1->2)。從而取得到了和AlexNei基本相同的感知野,featureMap的大小相同,后面的卷積計算量也保持不變。

 

VGG

VGG-16又稱為OxfordNet,是由牛津視覺幾何組(Visual Geometry Group)開發的卷積神經網絡結構。該網絡贏得了ILSVR(ImageNet)2014的冠軍。時至今日,VGG仍然被認為是一個傑出的視覺模型——盡管它的性能實際上已經被后來的Inception和ResNet超過了。

網絡結構:http://ethereon.github.io/netscope/#/preset/vgg-16

1709146-203d21703e0c7ac9

我們就看D(VGG16)和E(VGG19)好了。因為前面的網絡效果沒有D和E的效果好,而且比起D和E來講不夠簡潔。

VGG是把網絡分為5組(模仿AlexNet的五層),然而它使用了3*3的過濾器,並把它們組合起來作為一個卷積序列進行處理。特征:

1.網絡更深DCNN,channel數目更大。

2.采用多個3*3的卷積,模仿出更大的感受野的效果。這些思想也被用在了后續的網絡架構中,如 Inception 與 ResNet。

GoogLeNet

Christian Szegedy開始追求減少深度神經網絡的計算開銷,並於2014年設計出 GoogLeNet——第一個 Inception 架構。

“Going Deeper with Convolutions”中google提出了Inception模塊:

image

受NIN的啟發,Inception的思路是減少每一層的特征過濾器的數目,從而減少運算量。用 1*1的卷積塊在昂貴的並行模塊之前減少特征的數量,比 AlexNet 與 VGG 的分類器的運算數量少得多。這種做法一般稱為瓶頸層(Bottleneck)。

而且,盡管我們做了更好的運算,我們在此層也沒有損失其通用性(generality)。事實證明瓶頸層在 ImageNet 這樣的數據集上已經表現出了頂尖水平,而且它也被用於接下來介紹的 ResNet 這樣的架構中。

它之所以成功是因為輸入特征是相關聯的,因此可通過將它們與 1×1 卷積適當結合來減少冗余。然后,在小數量的特征進行卷積之后,它們能在下一層被再次擴展成有意義的結合。

ResNet

2015 年 12 月又出現了新的變革,這和 Inception V3 出現的時間一樣。ResNet 有着簡單的思路:供給兩個連續卷積層的輸出,並分流(bypassing)輸入進入下一層(論文:Deep Residual Learning for Image Recognition),在imagenet2015奪得冠軍。

計算機視覺領域,特征隨着網絡加深而愈加抽象,而且深層網絡也會帶來梯度彌散/爆炸等問題。而且在實踐中,深層網絡(很深)的性能會劣於淺層網絡,這反映了一個事實:非線性網絡無法逼近恆等映射網絡(y=x)。所以我們轉而去學習恆等映射的擾動。

ResNet要學習的便是殘差函數:F(x)=H(x)-x,殘差塊的結構是:

20160907100309_40

這是第一次網絡層數超過一百,甚至還能訓練出 1000 層的網絡。實際中,考慮計算的成本,對殘差塊做了計算優化,即將兩個3x3的卷積層替換為1x1 + 3x3 + 1x1。

20160907100309_801

通過首先是由帶有更小輸出(通常是輸入的 1/4)的 1×1 卷積較少特征的數量,然后使用一個 3×3 的層,再使用 1×1 的層處理更大量的特征。類似於 Inception 模塊,這樣做能保證計算量低,同時提供豐富的特征結合。

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM