經典分類網路結構
- 學習目標
- 1. LeNet-5決議
- 1.1 網路結構
- 1.2 引數形狀總結
- 2. AlexNet
- 3. 卷積網路結構的優化
- 3.1 常見結構特點
- 4. Inception 結構
- 4.1 MLP卷積(1x1卷積)
- 4.2 1x1卷積介紹
- 4.3 通道數變化
- 4.4 Inception層
- 4.5 Inception改進
- 4.6 GoogleNet結構
- 5. 卷積神經網路學習特征可視化
- 6. 案例:使用pre_trained模型進行VGG預測
- 7. 總結
學習目標
- 目標
- 知道LeNet-5網路結構
- 了解經典的分類網路結構
- 知道一些常見的卷機網路結構的優化
- 知道NIN中1x1卷積原理以及作用
- 知道Inception的作用
- 了解卷積神經網路學習程序內容
下面我們主要以一些常見的網路結構去決議,并介紹大部分的網路的特點,這里看一下卷積的發展歷史圖,

1. LeNet-5決議
首先我們從一個稍微早一些的卷積網路結構LeNet-5(這里稍微改了下名字),開始的目的是用來識別數字的,從前往后介紹完整的結構組成,并計算相關輸入和輸出,
1.1 網路結構

- 激活層默認不畫網路圖當中,這個網路結構當時使用的是sigmoid和Tanh函式,還沒有出現Relu函式
- 將卷積、激活、池化視作一層,即使池化沒有引數
1.2 引數形狀總結
| shape | size | parameters | |
|---|---|---|---|
| Input | (32,32,3) | 3072 | 0 |
| Conv1(f=5,s=1) | (28,28,6) | 4704 | 450+6 |
| Pool1 | (14,14,6) | 1176 | 0 |
| Conv2(f=5,s=1) | (10,10,16) | 1600 | 2400+16 |
| Pool2 | (5,5,16) | 400 | 0 |
| FC3 | (120,1) | 120 | 48000+120 |
| FC4 | (84,1) | 84 | 10080+84 |
| Ouput:softmax | (10,1) | 10 | 840+10 |
- 中間的特征大小變化不宜過快
事實上,在過去很多年,許多機構或者學者都發布了各種各樣的網路,其實去了解設計網路最好的辦法就是去研究現有的網路結構或者論文,大多數網路設計出來是為了Image Net的比賽(解決ImageNet中的1000類影像分類或定位問題),后來大家在各個業務上進行使用,
2. AlexNet
2012年,Alex Krizhevsky、Ilya Sutskever在多倫多大學Geoff Hinton的實驗室設計出了一個深層的卷積神經網路AlexNet,奪得了2012年ImageNet LSVRC的冠軍,且準確率遠超第二名(top5錯誤率為15.3%,第二名為26.2%),引起了很大的轟動,AlexNet可以說是具有歷史意義的一個網路結構,

- 總引數量:60M=6000萬,5層卷積+3層全連接
- 使用了非線性激活函式:ReLU
- 防止過擬合的方法:Dropout
- 批標準化層的使用
3. 卷積網路結構的優化
3.1 常見結構特點
整個程序:AlexNet—NIN—(VGG—GoogLeNet)—ResNet
- NIN:引入1 * 1卷積
- VGG,斬獲2014年分類第二(第一是GoogLeNet),定位任務第一,
- 引數量巨大,140M = 1.4億
- 19layers
- VGG 版本
- VGG16
- VGG19

- GoogleNet,2014年比賽冠軍的model,這個model證明了一件事:用更多的卷積,更深的層次可以得到更好的結構,(當然,它并沒有證明淺的層次不能達到這樣的效果)
- 500萬的引數量
- 22layers
- 引入了Inception模塊
- Inception V1
- Inception V2
- Inception V3
- Inception V4

- 下面我們將針對卷積網路架構常用的一些結構進行詳細分析,來探究這些結構帶來的好處
4. Inception 結構
首先我們要說一下在Network in Network中引入的1 x 1卷積結構的相關作用
4.1 MLP卷積(1x1卷積)

- 目的:提出了一種新的深度網路結構,稱為“網路中的網路”(NIN),增強接受域內區域貼片的模型判別能力,
- 做法
- 提出MLP卷積取代傳統線性卷積核
- 作用或優點:
- 重要作用:1x1的卷積核操作還可以實作卷積核通道數的降維和升維,實作引數的減小化
- 多個1x1的卷積核,提高特征抽象能力(Multilayer Perceptron,縮寫MLP,就是一個多層神經網路)
4.2 1x1卷積介紹

從圖中,看到1 x 1卷積的程序,那么這里先假設只有3個1x1Filter,那么最終結果還是56x56x3,但是每一個FIlter的三個引數的作用
- 1、看作是對三個通道進行了線性組合,
我們甚至可以把這幾個FIlter可以看成就是一個簡單的神經元結構,每個神經元引數數量與前面的通道數量相等,
- 2、通常在卷積之后會加入非線性激活函式,在這里之后加入激活函式,就可以理解成一個簡單的MLP網路了,
4.3 通道數變化
那么對于1x1網路對通道數的變化,其實并不是最重要的特點,因為畢竟3 x 3,5 x 5都可以帶來通道數的變化,
而1x1卷積的引數并不多,我們拿下面的例子來看,

- 保持通道數不變
- 提升通道數
- 減少通道數
4.4 Inception層
這個結構其實還有名字叫盜夢空間結構,
- 目的:
- 代替人手工去確定到底使用1x1,3x3,5x5還是是否需要max_pooling層,由網路自動去尋找適合的結構,并且節省計算,

- 特點
- 是每一個卷積/池化最終結果的長、寬大小一致
- 特殊的池化層,需要增加padding,步長為1來使得輸出大小一致,并且選擇32的通道數
- 最終結果28 x 28 x 256
- 使用更少的引數,達到跟AlexNet或者VGG同樣類似的輸出結果
4.5 Inception改進
改進目的:減少計算,如5 x 5卷積那的運算量

- 上面的引數:5 x 5 x 32 x 192 =153600
- 下面的引數:192 x 16 + 5 x 5 x 16 x 32 = 3072 + 12800 = 15872
所以上面的結構會需要大量的計算,我們把這種改進的結構稱之為網路的"瓶頸",網路縮小后擴大,
那么這樣改變會影響網路的性能和效果嗎?
GoogleNet就是如此,獲得了非常好的效果,所以合理的設計網路當中的Inception結構能夠減少計算,實作更好的效果,
4.6 GoogleNet結構
其中包含了多個Inception結構,

完整結構:

5. 卷積神經網路學習特征可視化
我們肯定會有疑問真個深度的卷積網路到底在學習什么?
可以將網路學習程序中產生的特征圖可視化出來,并且對比原圖來看看每一層都干了什么,
- 可視化案例使用的網路

- 可視化結果





- layer1,layer2學習到的特征基本是顏色、邊緣等低層特征
- layer3學習到的特征,一些紋理特征,如網格紋理
- layer4學習到的特征會稍微復雜些,比如狗的頭部形狀
- layer5學習到的是完整一些的,比如關鍵性的區分特征
6. 案例:使用pre_trained模型進行VGG預測
Google 在提供VGG行預測的時候效果會更好一些,所以選擇VGG來進行測驗,
請參考:【卷積神經網路】案例:使用pre_trained模型進行VGG預測
7. 總結
- 掌握LeNet-5 結構計算
- 了解卷積常見網路結構
- 掌握1x1卷積結構作用
- 掌握Inception結構作用
- 掌握keras的VGG模型的使用
加油!
感謝!
努力!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293703.html
標籤:AI
