日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

常见CNN网络结构

發(fā)布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 常见CNN网络结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄1. AlexNet(8)2. Network in Network3. VGG(19)4. GoogleLeNet(22)5. ResNet(152)6. 典型的CNN對比7. 如何設(shè)計CNN網(wǎng)絡(luò)

圖片分類,判斷圖片中是否有某個物體,一個圖對應(yīng)一個標(biāo)簽。性能指標(biāo):(1) Top1 error 第一次是否猜中,(2) Top5 error 猜5次其中有一次猜中。

很多出色的網(wǎng)絡(luò)結(jié)構(gòu)是從大賽中流行起來的。ImageNet Large Scale Visual Recognition Challenge ILSVRC 2017 年已經(jīng)停止舉辦,因為涉及的方面的算法技術(shù)已經(jīng)很成熟,沒有什么提升空間了。涉及圖像分類(1000個分類,訓(xùn)練集1.2M、驗證集50K、測試集150K,使用WorkNet的詞匯對圖像打標(biāo)簽)、場景分類(MIT的Places2數(shù)據(jù)集,圖片10M+、分類400+,365個場景分類,訓(xùn)練集8M、驗證集36K、測試集328K)、物體檢測、物體定位、場景解析等方面。在ILSCRC的 ImageNet Classification Top5 error 錯誤率2015年已經(jīng)降到3.57%

網(wǎng)絡(luò)進化過程中比較好的網(wǎng)絡(luò) AlexNet(深度8層)->VGG(19)->GoogleLeNet(22)->ResNet(152)

1. AlexNet(8)

原始論文 http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf
2012年ImageNet 競賽第一,遠比第二名領(lǐng)先,標(biāo)志著DNN深度學(xué)習(xí)革命的開始。
特點:5個卷積層+3個全連接層
60M個參數(shù)+650K個神經(jīng)元
2個分組->2個GPU(3GB、2塊GTX 580 訓(xùn)練5至6天)
引入的新技術(shù) ReLU、Max polling、Dropout regularization
LRU 相鄰?fù)ǖ纊ernel上同一位置的數(shù)值進行歸一化(VGGNet的論文認為沒什么用)
網(wǎng)絡(luò)結(jié)構(gòu)如圖:

為了后面下采樣除起來是個整數(shù),前面做成 227*227

輸~~~~~~~入
(227 imes 227 imes 3)
GPU 1 GPU 2 輸~~~~~~~~~~~~出
卷積層 1
(227 imes 227 imes 3)
卷積核(11 imes 11) 數(shù)量48 步長 4 卷積核(11 imes 11) 數(shù)量48 步長 4
激活函數(shù) relu 激活函數(shù) relu 特征圖: ((227-11)/4+1=55)
即 (55 imes 55 imes 96)
池化Max pooling, kernel size 3, stride 2 池化Max pooling, kernel size 3, stride 2 特征圖:((55-3)/2+1=27)
即 (27 imes 27 imes 96)
標(biāo)準(zhǔn)化 Local Response Normalization
卷積層 2
(27 imes 27 imes 96)
通道獨立
卷積核(5 imes 5) 數(shù)量128 步長 1 卷積核(5 imes 5) 數(shù)量128 步長 1 輸入特征圖先擴展padding2個像素
即(31 imes 31)
激活函數(shù) relu 激活函數(shù) relu 特征圖:((31-5)/1+1=27)
即 (27 imes 27 imes 256)
池化Max pooling, kernel size 3, stride 2 池化Max pooling, kernel size 3, stride 2 特征圖:((27-3)/2+1=13)
即 (13 imes 13 imes 256)
標(biāo)準(zhǔn)化 Local Response Normalization
卷積層 3
(13 imes 13 imes 256)
通道合并
雙GPU交互
卷積核(3 imes 3) 數(shù)量192 步長 1 卷積核(3 imes 3) 數(shù)量192 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數(shù) relu 激活函數(shù) relu 特征圖:((15-3)/1+1=13)
即 (13 imes 13 imes 384)
卷積層 4
(13 imes 13 imes 384)
通道獨立
卷積核(3 imes 3) 數(shù)量192 步長 1 卷積核(3 imes 3) 數(shù)量192 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數(shù) relu 激活函數(shù) relu 特征圖:((15-3)/1+1=13)
即 (13 imes 13 imes 384)
卷積層 5
(13 imes 13 imes 384)
通道獨立
卷積核(3 imes 3) 數(shù)量128 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數(shù) relu 激活函數(shù) relu 特征圖:((15-3)/1+1=13)
即 (13 imes 13 imes 256)
池化Max pooling, kernel size 3, stride 2 池化Max pooling, kernel size 3, stride 2 特征圖:((13-3)/2+1=6)
即 (6 imes 6 imes 256)
全連接 6
(6 imes 6 imes 256)
2048個神經(jīng)元 2048個神經(jīng)元
dropout dropout (4096 imes 1)的向量
全連接 7
(4096 imes 1)
2048個神經(jīng)元 2048個神經(jīng)元
dropout dropout (4096 imes 1)的向量
全連接 8
(4096 imes 1)
1000個神經(jīng)元 (1000 imes 1)的向量

2. Network in Network

論文 Network in Network
一個 (28 imes 28 imes 192) 的特征圖 被 32 個 (1 imes1 imes 192)的卷積核進行卷積。這樣最終是 (28 imes 28 imes 32).

假設(shè)輸入特征圖的某像素的(c)個通道值 ((x_1, x_2, cdots, x_c))
(k) 個 (1 imes 1 imes c) 的卷積核,((a_{11}, cdots, a_{1c}), cdots, (a_{k1}, cdots, a_{kc}))

((x_1, x_2, cdots, x_c)otimes egin{pmatrix}a_{11} & cdots & a_{1c}\ vdots & ddots &vdots\a_{k1}&cdots & a_{kc}end{pmatrix}=(y_1, y_2, cdots, y_k))

(f(a_{11}x_1+a_{12}x_2+cdots+a_{1c}x_c)=y_1cdotscdots)
實現(xiàn)跨通道的交互和信息整合,能夠?qū)νǖ罃?shù)進行降維和升維

3. VGG(19)

ImageNet-2014 競賽第二,網(wǎng)絡(luò)改造的首選基礎(chǔ)網(wǎng)絡(luò),典型的層數(shù)是19層
提出目的是為了探究在大規(guī)模圖像識別任務(wù)中,卷積網(wǎng)絡(luò)深度對模型精確度的影響
一個大卷積核分解成連續(xù)多個小卷核
例如 (7 imes7) 分解成 3個 (3 imes 3) 核 由ReLU連接,參數(shù)數(shù)量由(49C^2) 降至 (27C^2)
VGG可以減少參數(shù),降低計算,增加深度

從A至E隨著層數(shù)的增加,參數(shù)增加的并不多

4. GoogleLeNet(22)

在此之前,網(wǎng)絡(luò)結(jié)構(gòu)的突破是更深的層數(shù)更寬的神經(jīng)元數(shù)。
GoogleLeNet網(wǎng)絡(luò)ImageNet-2014競賽第一
模型是不是試出來的?是不是要窮舉驗證各方面的網(wǎng)絡(luò)結(jié)構(gòu)? GoogleLeNet解決這個問題,把所有的可能性排出來,讓模型去決定。
Inception V1網(wǎng)絡(luò)
核心組件Inception Architecture
Split-Merge 試了 (1 imes 1)卷積, (3 imes 3)卷積, (5 imes 5)卷積, (3 imes 3)池化
使用了NiN的(1 imes 1)卷積進行特征降維
為了減負取消了全連接,因為全連接參數(shù)量大
由于層數(shù)深(一般22層),使用輔助分類器解決前幾層的梯度消失問題

從下往上看,對幾種情況分別做卷積后疊在一起(不做和,只是疊在一起,保持層數(shù)不變),另外不同的卷積操作使用padding等方法使圖像尺度不變,這樣才能疊加

通過加入(1 imes 1)卷積降低通道數(shù),保持圖像尺度不變的情況下,疊在一起
全局平均池化 Global average pooling
取消占用大量參數(shù)的全連接層。全局平均池化,對每個特征圖求平均值
輸入(7 imes7 imes1024)變成(1 imes1 imes1024)
輔助分類器

避免梯度消失。訓(xùn)練階段,在認為梯度有可能消失的地方,讓結(jié)果重新參與調(diào)整誤差。

Inception V2網(wǎng)絡(luò)

提出Batch Normalization2018年有論文認為這一操作使“解空間”更加平滑。
在這個網(wǎng)絡(luò)中使用批歸一化代替部分Dropout。
將(5 imes 5) 變成兩個(3 imes3)卷積核堆疊。

每個特征通道分別進行歸一化。通道數(shù)不做歸一化。

在測試階段使用的是訓(xùn)練階段所有Batch的均值、方差的平均值。
原論文把Batch歸一化放(包含scale & shift)在卷積與ReLU之間。

Inception V3網(wǎng)絡(luò)

將(N imes N)分解成(1 imes N), (N imes 1), 能夠降低參數(shù)和計算量
經(jīng)驗:在中度大小的feature map上使用效果好,建議m*m 里m取12到20之間。

前面的層先做卷積和pooling(相當(dāng)于v4里的主干 stem),將特征提取足夠多。后面用Inception。Inception 包含了不同的可能性,如果有的情況對分類影響不大,則后面卷積時權(quán)重會很小接近于0。這樣Inception就實現(xiàn)了選擇不同的可能性

認為淺層輔助分類器無用,取消淺層輔助分類器。在訓(xùn)練后期使用深層輔助分類器,比如用在最后一層后。加上BatchNormalization和Dropout
Inception V4網(wǎng)絡(luò)
論文https://arxiv.org/abs/1602.07261v2

Reduction 能夠比較Maxpooling 與卷積兩種把尺度變小的方法哪個更好。
整個網(wǎng)絡(luò)結(jié)構(gòu)包含了很多種組合,包含了很多種情況。訓(xùn)練的結(jié)果決定哪些情況起的作用大。

Inception 小結(jié)
不像VGG那樣人工去試。該類網(wǎng)絡(luò)結(jié)構(gòu)代替人工確定卷積層中的過濾器類型或者確定卷積層和池化層的組合方式,即預(yù)先給網(wǎng)絡(luò)添加盡可能多的可能性組合,將輸出連接起來,讓網(wǎng)絡(luò)自己學(xué)習(xí)決定。

缺點:由于添加了盡可能多的可能性,所以訓(xùn)練出來的參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)更貼近該樣本,造成不利于擴展。擴展性不如VGG。

5. ResNet(152)

論文https://arxiv.org/abs/1512.03385v1
提出背景:網(wǎng)絡(luò)的層數(shù)不能通過一直堆疊來獲得好的學(xué)習(xí)效果。過多的層數(shù)會導(dǎo)致梯度消失、梯度爆炸、網(wǎng)絡(luò)退化(誤差增大、效果不好、過適應(yīng)等問題)。
ResNet主要思路:
殘差映射 (F(x)=H(x)-x),(x)是卷積之前,(H(x))是卷積之后。(F(x)=H(x)-x) 相當(dāng)于學(xué)到的東西與原始的東西的差距,相當(dāng)于卷積沒有獲取的特征,或者相當(dāng)于沒有學(xué)到的內(nèi)容。

ResNet特點:
(1) 殘差映射(主要貢獻)
(2) 全是(3 imes 3)卷積核(應(yīng)該是為了操作殘差映射)
(3) 卷積步長2取代池化, 沒有池化(應(yīng)該是為了操作殘差映射)
(4) 使用Batch Normalization
(5) 取消Max池化,取消全連接層(參數(shù)多計算量大,取消掉是趨勢,有其它方法替換),取消Dropout(應(yīng)該是為了操作殘差映射)

優(yōu)化點:
通過(1 imes 1) 卷積降低計算量,在兩頭加,前面降維,后面升維,使其與之前維數(shù)相同以便于操作(H(x)=F(x)+x)

101層比較常見。另外GoogleLeNet中Inception層可以結(jié)合resnet的殘差映射.
ResNeXt
ILSVRC-2016競賽第二。提出“深”(如 GoogLeNet、ResNet等)和“寬”(如 GooglLeNet等)之外的第3個角度。
相當(dāng)于將AlexNet里的group convolution引進ResNet中,將卷積核按通道分組,形成32個并行分支(cardinality(基數(shù))),低維度卷積進行特征變換,然后加法合并

參數(shù)規(guī)模:
左邊ResNet: (256 imes64+3 imes3 imes64 imes64+64 imes256=70mathrm{k})
右邊ResNeXt: (32 imes(256 imes 4+3 imes3 imes 4 imes 4+4 imes 256)=70mathrm{k})
同參數(shù)規(guī)模下,增加結(jié)構(gòu),提高模型表達力

效果:100層ResNeXt相當(dāng)于200層ResNet

6. 典型的CNN對比

模型 AlexNet VGG GoogLeNet v1 ResNet
時間 2012 2014 2014 2015
層數(shù) 8 19 22 152
Top-5錯誤 16.4% 7.3% 6.7% 3.57%
Data Augmentation + + + +
Inception(NIN) - - + -
卷積層數(shù) 5 16 21 151
卷積核大小 11,5,3 3 7,1,3,5 7,1,3,5
全連接層數(shù) 3 3 1 1
全連接層大小 4096,4096,1000 4096,4096,1000 1000 1000
Dropout + + + +
Local Response Normalization + - + -
Batch Normalization - - - +

7. 如何設(shè)計CNN網(wǎng)絡(luò)

避免信息瓶頸

卷積過程中
多個小尺寸卷積核 vs 一個大尺寸卷積核

尺度(H imes W)逐漸變小
輸出通道數(shù)(Cw)逐漸變多

(H imes W imes C)要緩慢變小

通道(卷積核)數(shù)量保持在可控范圍內(nèi), 計算量 (complexitypropto C imes K) (可以通過如前面的 (1 imes 1), (3 imes 3), (1 imes N)等方法疊在一起)

輸入通道數(shù)量 (C)
輸出通道數(shù)量 (K)
參數(shù)數(shù)量 (H_f imes W_f imes C imes K)
操作數(shù)量 (frac{H imes H_f}{stride} imesfrac{W imes W_f}{stride} imes C imes K)

感受野要足夠大(為了計算量,卷積核又不能太大,可以通過如前面(5 imes 5) 使用 2個(3 imes 3)疊在一起使用,后面的(3 imes 3)能夠達到(5 imes 5)的感受野)

卷積是基于局部圖片的操作
要捕捉大尺寸的內(nèi)容
多個小尺寸卷積核 vs 一個大尺寸卷積核

參數(shù)少,計算快
多個非線性激活(增強網(wǎng)絡(luò)的表現(xiàn)能力)

分組策略,降低計算量

分G組, M/G 個濾波器 vs M 個濾波器

[1] https://zhuanlan.zhihu.com/p/251068800
[2] https://paperswithcode.com/methods/category/convolutional-neural-networks

總結(jié)

以上是生活随笔為你收集整理的常见CNN网络结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。