「模型解讀」從LeNet到VGG,看卷積+池化串聯的網絡結構

2020-12-12 有三AI

從本篇開始,我們將帶領大家解讀深度學習中的網絡的發展,這是深度學習模型解讀第一篇,本篇我們將介紹LeNet,AlexNet,VGGNet,它們都是卷積+池化串聯的基本網絡結構。

1 LeNet5

LeNet5【1】有3個卷積層,2個池化層,2個全連接層。卷積層的卷積核都為5*5,stride=1,池化層都為Max pooling,激活函數為Sigmoid,具體網絡結構如下圖:

下面我們詳細解讀一下網絡結構,先約定一些稱呼。

我們先約定一些叫法,比如featuremap為28*28*6,卷積參數大小為(5*5*1)*6。其中28*28是featuremap的高度,寬度,6是featuremap的通道數。(5*5*1)*6卷積核表示5*5的高度,寬度,通道數為1的卷積核有6個。你可以把(5*5*1)想像成一個厚度為1,長度,寬度各為5的卷積塊,以下依此類推。

1.Input

輸入圖像統一歸一化為32*32。

2.C1卷積層

經過(5*5*1)*6卷積核,stride=1, 生成featuremap為28*28*6。

3.S2池化層

經過(2*2)採樣核,stride=2,生成featuremap為14*14*6。

4.C3卷積層

經過(5*5*6)*16卷積核,stride=1,生成featuremap為10*10*16。

5.S4池化層

經過(2*2)採樣核,stride=2,生成featuremap為5*5*16。

6.C5卷積層

經過(5*5*16)*120卷積核,stride=1, 生成featuremap為1*1*120。

7.F6全連接層

輸入為1*1*120,輸出為1*1*84,總參數量為120*84。

8.Output全連接層 。

輸入為1*1*84,輸出為1*1*10,總參數量為84*10。10就是分類的類別數。

2 AlexNet

2012年,Imagenet比賽冠軍—Alexnet (以第一作者Alex命名)【2】直接刷新了ImageNet的識別率,奠定了深度學習在圖像識別領域的優勢地位。網絡結構如下圖:

1.Input

輸入圖像為227*227*3。

2.Conv1

經過(11*11*3)*96卷積核,stride=4, (227-11)/4+1=55,生成featuremap為55*55*96。

3.Pool1

經過3*3的池化核,stride=2,(55-3)/2+1=27,生成featuremap為27*27*96。

4.Norm1

local_size=5,生成featuremap為27*27*96。

5.Conv2

經過(5*5*96)*256的卷積核,pad=2,group=2,(27+2*2-5)/1+1=27,生成featuremap為27*27*256。

6.Pool2

經過3*3的池化核,stride=2,(27-3)/2+1=13,生成featuremap為13*13*256。

7.Norm2

local_size=5, 生成featuremap為13*13*256。

8.Conv3

經過(3*3*256)*384卷積核,pad=1, (13+1*2-3)/1+1=13,生成featuremap為13*13*384。

9.Conv4

經過(3*3*384)*384卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*384。

10.Conv5

經過(3*3*384)*256卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*256。

11.Pool5

經過(3*3)的池化核,stride=2,(13-3)/2+1=6,生成featuremap為6*6*256。

12.Fc6

輸入為(6*6*256)*4096全連接,生成featuremap為1*1*4096。

13.Dropout6

在訓練的時候以1/2概率使得隱藏層的某些神經元的輸出為0,這樣就丟掉了一半節點的輸出,BP的時候也不更新這些節點,以下Droupout同理。

14.Fc7

輸入為1*1*4096,輸出為1*1*4096,總參數量為4096*4096。

15.Dropout7

生成featuremap為1*1*4096。

16.Fc8

輸入為1*1*4096,輸出為1000,總參數量為4096*1000。

小結:

1.網絡比LeNet更深,包括5個卷積層和3個全連接層。

2.使用relu激活函數,收斂很快,解決了Sigmoid在網絡較深時出現的梯度消失問題。

3.加入了Dropout層,防止過擬合。

4.使用了LRN歸一化層,對局部神經元的活動創建競爭機制,抑制反饋較小的神經元,放大反應大的神經元,增強了模型的泛化能力。

5.使用裁剪翻轉等操作做數據增強,增強了模型的泛化能力。預測時使用提取圖片四個角加中間五個位置並進行左右翻轉一共十幅圖片的方法求取平均值,這也是後面刷比賽的基本使用技巧。

6.分塊訓練,當年的GPU沒有這麼強大,Alexnet創新地將圖像分為上下兩塊分別訓練,然後在全連接層合併在一起。

6.總體的數據參數大概為240M。

3 VGG

VGGNet【3】主要的貢獻是利用帶有很小卷積核(3*3)的網絡結構對逐漸加深的網絡進行評估,結果表明通過加深網絡深度至16-19層可以極大地改進前人的網絡結構。這些發現也是參加2014年ImageNet比賽的基礎,並且在這次比賽中,分別在定位和分類跟蹤任務中取得第一名和第二名。

VGGNet的網絡結構如下圖:

類型從A到E。此處重點講解VGG16。也就是圖中的類型D。如圖中所示,共有13個卷積層,3個全連接層。其全部採用3*3卷積核,步長為1,和2*2最大池化核,步長為2。

1.Input層

輸入圖片為224*224*3。

2.CONV3-64

經過(3*3*3)*64卷積核,生成featuremap為224*224*64。

3.CONV3-64

經過(3*3*64)*64卷積核,生成featuremap為224*224*64。

4.Max pool

經過(2*2)max pool核,生成featuremap為112*112*64。

5.CONV3-128。

經過(3*3*64)*128卷積核,生成featuremap為112*112*128。

6. CONV3-128

經過(3*3*128)*128卷積,生成featuremap為112*112*128。

7.Max pool

經過(2*2)maxpool,生成featuremap為56*56*128。

8.CONV3-256

經過(3*3*128)*256卷積核,生成featuremap為56*56*256。

9.CONV3-256

經過(3*3*256)*256卷積核,生成featuremap為56*56*256。

10.CONV3-256

經過(3*3*256)*256卷積核,生成featuremap為56*56*256。

11.Max pool

經過(2*2)maxpool,生成featuremap為28*28*256

12.CONV3-512

經過(3*3*256)*512卷積核,生成featuremap為28*28*512

13.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為28*28*512。

14.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為28*28*512。

15.Max pool

經過(2*2)maxpool,生成featuremap為14*14*512。

16.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

17.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

18.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

19.Max pool

經過2*2卷積,生成featuremap為7*7*512。

20.FC-4096

輸入為7*7*512,輸出為1*1*4096,總參數量為7*7*512*4096。

21.FC-4096

輸入為1*1*4096,輸出為1*1*4096,總參數量為4096*4096。

22.FC-1000

輸入為1*1*4096,輸出為1000,總參數量為4096*1000。

小結:

1. 共包含參數約為550M。

2. 全部使用3*3的卷積核和2*2的最大池化核。

3. 簡化了卷積神經網絡的結構。

總結

LeNet5是早期用於工程應用的網絡結構,發展到AlexNet,激活函數從sigmoid變為relu,加入了Dropout層等操作,引起了新一輪的深度學習熱潮。VGG基本是AlexNet的加強版,深度上是其2倍左右,參數量大小也是兩倍多。

這三個網絡結構本質上都是(卷積+池化)堆疊的網絡結構,是深度學習復興以來的第一個有重大工程意義的網絡設計系列。

參考文獻

[1] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.

[3] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.

相關焦點

  • 經典CNN網絡(Lenet、Alexnet、GooleNet、VGG、ResNet、DenseNet)
    inception的結構,一分四,然後做一些不同大小的卷積,之後再堆疊feature map。殘差網絡做了相加的操作,inception做了串聯的操作圖:inception v1    Googlenet的核心思想是inception,通過不垂直堆砌層的方法得到更深的網絡(我的理解是變寬且視野範圍種類多,vgg及resnet讓網絡變深,inception讓網絡變寬
  • 2D卷積網絡模型
    #神經網絡閱讀筆記:https://zhuanlan.zhihu.com/p/138829008【模型解讀】network in network中的1*1卷積,你懂了嗎?https://mp.weixin.qq.com/s?
  • 圖像分類-卷積網絡閱讀筆記(二)VGG
    ,主要的貢獻是通過使用具有非常小的卷積核的網絡結構以增加網絡的深度,當權值層增加到16-19層使網絡的性能有了明顯的提升。隨著卷積神經網絡在計算機視覺領域越來越通用,為取得更好的精度,已經有很多人嘗試改變AlexNet原始的結構,例如在第一個卷積層中使用更小的感受窗口和更小的步長。
  • 深度理論VGG-NET 網絡
    VGGNet的主要特點在於:(1)網絡很深;(2)卷積層中使用的卷積核很小,且都是3*3的卷積核。方法使用了卷積神經網絡,其中卷積核為3x3卷積核,按照模型的層數,分為11-19層,其中16層的模型為VGG-16,19層的為VGG-19論文中,作者測試了A-E不同深度的神經網絡。
  • 「模型解讀」從2D卷積到3D卷積,都有什麼不一樣
    接著模型解讀系列,在中國科幻作家劉慈欣的科幻小說《三體Ⅲ·死神永生》中,首次提出了降維打擊這個概念,這是本質上區別於同一維度的攻擊,破壞性也更大。而現在我們要說的是從二維卷積升級到三維卷積,它相比2D卷積是否會有不一樣呢?
  • 經典的CNN模型架構-LeNet、AlexNet、VGG、GoogleLeNet、ResNet
    該網絡以一個32×32的圖像作為輸入,然後進入卷積層(C1),接著進入子採樣層(S2),目前子採樣層被池化層取代。然後是另一個卷積層序列(C3),跟著是一個池化層(即子採樣層)(S4)最後,有三個全連接層,包括最後的輸出層(OUTPUT)。該網絡用於郵局的郵政編碼識別。從那以後,在這個比賽的助力下,每年都會引入不同的CNN架構。LeNet5網絡架構如圖1所示。
  • VGG:使用基礎卷積塊的網絡
    AlexNet在LeNet的基礎上增加了卷積層,但AlexNet對卷積窗口、輸出通道數和構造順序均做了大量的調整。雖然AlexNet指明了深度卷積神經網絡有出色的表現,但並沒有提供簡單的規則以指導後來的研究者如何設計新的網絡。
  • 深度學習之卷積神經網絡經典模型
    池化層包含了六個特徵映射,每個映射的像素值為14x14,這樣的池化層非常重要,可以在一定程度上保證網絡的特徵被提取,同時運算量也大大降低,減少了網絡結構過擬合的風險。因為卷積層與池化層是交替出現的,所以隱藏層的第三層又是一個卷積層,第二個卷積層由16個特徵映射構成,每個特徵映射用於加權和計算的卷積核為10x10的。
  • 從全卷積網絡到大型卷積核:深度學習的語義分割全指南
    本文由淺層模型到深度模型,簡要介紹了語義分割各種技術,雖然本文並沒有深入講解語義分割的具體實現,但本文簡要地概述了每一篇重要論文的精要和亮點,希望能給讀者一些指南。  什麼是語義分割?  語義分割指像素級地識別圖像,即標註出圖像中每個像素所屬的對象類別。
  • 零基礎入門深度學習(七):圖像分類任務之VGG、GoogLeNet和ResNet
    從本課程中,你將學習到:本周為開講第四周,百度深度學習技術平臺部資深研發工程師孫高峰,開始講解計算機視覺中圖像分類任務。在上一節課中,我們為大家介紹了經典的LeNet和AlexNet神經網絡結構在眼疾識別任務中的應用,本節將繼續為大家帶來更多精彩內容。
  • 深度 | 從AlexNet到殘差網絡,理解卷積神經網絡的不同架構
    優秀的卷積神經網絡具有數百萬個參數和大量隱藏層。事實上,一個錯誤的經驗法則是:「隱藏層的數量越多,卷積神經網絡越好」。流行的卷積神經網絡有 AlexNet、VGG、Inception、ResNet。這些網絡為什麼性能如此好?它們是如何設計的呢?為什麼它們的結構是現在這樣?本文給出了一個簡單而全面的概述。這些問題的答案並不簡單,無法全部涵蓋在一篇博客中。
  • 深度學習VGG模型核心拆解
    而VGGNet則清一色使用3x3卷積。因為卷積不僅涉及到計算量,還影響到感受野。前者關係到是否方便部署到移動端、是否能滿足實時處理、是否易於訓練等,後者關係到參數更新、特徵圖的大小、特徵是否提取的足夠多、模型的複雜度和參數量等等。
  • 港中文AAAI錄用論文詳解:ST-GCN 時空圖卷積網絡模型 | AAAI 2018
    本文為 AAAI 2018 錄用論文「Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition」作者向 AI 科技評論投遞的解讀稿件。
  • 深度學習元老Yann Lecun詳解卷積神經網絡
    帶有步幅的卷積(子樣本)緊密相連的池化過程>USPS 編碼數字:7300次訓練,2000次測試帶有步幅的卷積緊密相連的池化過程卷積神經網絡的結構卷積神經網絡的卷積運算過程大致如下:輸入圖像通過三個可訓練的濾波器組進行非線性卷積
  • 基礎入門,怎樣用PaddlePaddle優雅地寫VGG與ResNet
    深度學習模型中的卷積神經網絡(Convolution Neural Network, CNN) 直接利用圖像像素信息作為輸入,最大程度上保留了輸入圖像的所有信息,通過卷積操作進行特徵的提取和高層抽象,模型輸出直接是圖像識別的結果。這種基於"輸入-輸出"直接端到端的學習方法取得了非常好的效果。
  • 深入了解VGG卷積神經網絡濾波器
    這是 VGG16 網絡的內部結構。許多卷積層與最大池化層交替。一個平坦(flatten)層連接著三個密集層。其中最後一層被稱為預測層,這個圖層應該能夠檢測高級特徵,比如面部特徵,在此例中,是鳥的形狀。
  • ...ACEnet上下文編碼網絡;卷積網絡生物系統;欺詐檢測;DialogueGCN等
    這篇論文提出了一個名為ACEnet的解剖上下文編碼網絡,將3D空間和解剖上下文合併到2D卷積神經網絡中,以便從磁共振掃描中有效而準確地分割大腦結構。ACNnet包含三個重要的組成部分:1、解剖上下文編碼模塊,將解剖信息合併到2D CNN中;2、空間上下文編碼模塊,將3D圖像信息合併到2D CNN中;3、顱骨剝離模塊,指導2DCNN來建模大腦結構。
  • 深度| 一文概覽圖卷積網絡基本結構和最新進展
    選自tkipf.github作者:Thomas Kipf機器之心編譯參與:李詩萌、劉曉坤本文介紹了圖卷積網絡的基本結構,和最新的研究進展,並指出了當前模型的優缺點。通過對半監督學習應用 GCN 證明三層 GCN 模型不需要節點的任何特徵描述就可以對只有一個標籤實例的類進行線性分離。
  • 乾貨| Excel圖解卷積神經網絡結構
    現在裸眼識別出這是「4」就變得更簡單了。但把它交給全連接網絡之前,還需要平整化(flatten) 它,要讓我們能夠保留圖像的空間排列。希望你能注意到圖像從之前的 4 列數值變成了 3 列。因為我們現在一次移用兩個像素(在每次移動中像素被共享),圖像變的更小了。雖然圖像變小了,我們仍能在很大程度上理解這是「4」。而且,要意識到的一個重點是,我們採用的是兩個連貫的水平像素,因此只會考慮水平的排列。
  • 對卷積神經網絡工作原理做一個直觀的解釋
    第二,神經網絡,是指利用一層層神經元構建成一個類似大腦結構的模型,從而自動實現端到端的學習。為什麼要用神經網絡?因為傳統計算機視覺,對圖像的理解非常重要,圖像的特徵有顏色特徵、幾何特徵、邊緣特徵、局部特徵、梯度特徵等等,光學這些就需要大量的時間,然後才能學習計算機視覺的一些方法和模型。