深度學習概覽及主流模型演進

目錄

一、人腦視覺機理

二、深度學習的訓練過程

三、卷積神經網絡

四、主流模型及演進

LeNet-5

AlexNet

GoogLeNet

GoogLeNet中的inception

VGG-Net

FCN-fully convolutional network

Resnet

Densenet


一、人腦視覺機理

        1981 年的諾貝爾醫學獎,頒發給了David Hubel(出生於加拿大的美國神經生物學家)和 TorstenWiesel。這兩位的主要貢獻是“發現了視覺系統的信息處理”:可視皮層是分級的,如下圖所示:

 這個生理學的發現,促進了計算機人工智能,在四十年後的突破性發展。總的來說,人的視覺系統的信息處理是分級的。從低級的V1區提取邊緣特徵,再到V2區的形狀或者目標的部分等,再到更高層,整個目標、目標的行爲等。高層的特徵是低層特徵的組合,從低層到高層的特徵表示越來越抽象,越來越能表現語義或者意圖,深度學習正是借鑑了人腦視覺機理的這一過程,通過逐層的抽象來學習對輸入數據的抽象的、高層次的、層級結構的表徵。

 

二、深度學習的訓練過程

       深度學習算法主要採用反向傳播算法與梯度下降算法,其訓練示意圖如下所示

 

 

三、卷積神經網絡

       卷積神經網絡(convolutional neural network, CNN)是目前深度學習方法中得到普遍運用的一種網絡結構,其主要模擬大腦神經元分層處理人眼攝入圖片流程。

       一個基本的卷積神經網絡結構如下圖所示,基本的卷積網絡主要由卷積層(C標識)和池化層(S標識)交替組合,信息由輸入層輸入網絡後經多層卷積層池化層交替處理,最後使用全連接層(F1標識)提取的特徵量作爲輸出層進行結果計算。

 

四、主流模型及演進

LeNet-5

1998年提出,神經網絡的鼻祖,詳細解析:

https://cuijiahua.com/blog/2018/01/dl_3.html

見論文: Gradient-Based Learning Applied to Document Recognition,Published in: Proceedings of the IEEE ( Volume: 86 , Issue: 11 , Nov 1998 )

LeNet5 這個網絡雖然很小,但是它包含了深度學習的基本模塊:卷積層,池化層,全鏈接層。LeNet-5共有7層,不包含輸入,每層都包含可訓練參數;每個層有多個Feature Map,每個FeatureMap通過一種卷積濾波器提取輸入的一種特徵,然後每個FeatureMap有多個神經元。

  • LeNet-5是一種用於手寫體字符識別的非常高效的卷積神經網絡。
  • 卷積神經網絡能夠很好的利用圖像的結構信息。
  • 卷積層的參數較少,這也是由卷積層的主要特性即局部連接和共享權重所決定。

AlexNet

AlexNet是2012年ImageNet競賽冠軍獲得者Hinton和他的學生Alex Krizhevsky設計的。也是在那年之後,更多的更深的神經網絡被提出。自此之後就有了更深的模型。

AlexNet將LeNet的思想發揚光大,把CNN的基本原理應用到了很深很寬的網絡中。AlexNet主要使用到的新技術點如下:

(1)成功使用ReLU作爲CNN的激活函數,並驗證其效果在較深的網絡超過了Sigmoid,成功解決了Sigmoid在網絡較深時的梯度彌散問題。雖然ReLU激活函數在很久之前就被提出了,但是直到AlexNet的出現纔將其發揚光大。

(2)訓練時使用Dropout隨機忽略一部分神經元,以避免模型過擬合。Dropout雖有單獨的論文論述,但是AlexNet將其實用化,通過實踐證實了它的效果。在AlexNet中主要是最後幾個全連接層使用了Dropout。

(3)在CNN中使用重疊的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。並且AlexNet中提出讓步長比池化核的尺寸小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特徵的豐富性。

(4)提出了LRN層,對局部神經元的活動創建競爭機制,使得其中響應比較大的值變得相對更大,並抑制其他反饋較小的神經元,增強了模型的泛化能力。

(5)使用CUDA加速深度卷積網絡的訓練,利用GPU強大的並行計算能力,處理神經網絡訓練時大量的矩陣運算。

(6)數據增強,隨機地從256*256的原始圖像中截取224*224大小的區域(以及水平翻轉的鏡像),相當於增加了2*(256-224)^2=2048倍的數據量。

注意,此時還沒有batch Norm

GoogLeNet

GoogLeNet是2014年Christian Szegedy提出的一種全新的深度學習結構,在這之前的AlexNet、VGG等結構都是通過增大網絡的深度(層數)來獲得更好的訓練效果,但層數的增加會帶來很多負作用,比如overfit、梯度消失、梯度爆炸等。inception的提出則從另一種角度來提升訓練結果:能更高效的利用計算資源,在相同的計算量下能提取到更多的特徵,從而提升訓練結果。

 

GoogLeNet中的inception

從v1-v4

該結構將CNN中常用的卷積(1x1,3x3,5x5)、池化操作(3x3)堆疊在一起(卷積、池化後的尺寸相同,將通道相加),一方面增加了網絡的寬度,另一方面也增加了網絡對尺度的適應性。

通過設計一個稀疏網絡結構,但是能夠產生稠密的數據,既能增加神經網絡表現,又能保證計算資源的使用效率。

VGG-Net

VGG模型是2014年ILSVRC競賽的第二名,第一名是GoogLeNet。

但是VGG模型在多個遷移學習任務中的表現要優於googLeNet。而且,從圖像中提取CNN特徵,VGG模型是首選算法。它的缺點在於,參數量有140M之多,需要更大的存儲空間。但是這個模型很有研究價值。

  • 小卷積核。作者將卷積核全部替換爲3x3(極少用了1x1);

  • 小池化核。相比AlexNet的3x3的池化核,VGG全部爲2x2的池化核;

  • 層數更深特徵圖更寬。基於前兩點外,由於卷積核專注於擴大通道數、池化專注於縮小寬和高,使得模型架構上更深更寬的同時,計算量的增加放緩;

  • 全連接轉卷積。網絡測試階段將訓練階段的三個全連接替換爲三個卷積,測試重用訓練時的參數,使得測試得到的全卷積網絡因爲沒有全連接的限制,因而可以接收任意寬或高爲的輸入。

FCN-fully convolutional network

2015Best cvpr

1、之前的分類網絡採用全連接的連接,但是全連接會忽視很多位置信息,因此FCN採用了卷積和池化替代全連接,更好的解決稠密問題。
2、FCN連接了不同全局步長的層,增加了一些細節信息。

 

VGG之後,BatchNorm才被提出。

Resnet

https://www.jianshu.com/p/93990a641066

加入殘差單元,解決了梯度傳導不暢的問題,即Y=f(x)+x

Densenet

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