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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

常见CNN网络结构

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

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

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

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

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

1. AlexNet(8)

原始論文 http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf
2012年ImageNet 競賽第一,遠比第二名領先,標志著DNN深度學習革命的開始。
特點:5個卷積層+3個全連接層
60M個參數+650K個神經元
2個分組->2個GPU(3GB、2塊GTX 580 訓練5至6天)
引入的新技術 ReLU、Max polling、Dropout regularization
LRU 相鄰通道kernel上同一位置的數值進行歸一化(VGGNet的論文認為沒什么用)
網絡結構如圖:

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

輸~~~~~~~入
(227 imes 227 imes 3)
GPU 1 GPU 2 輸~~~~~~~~~~~~出
卷積層 1
(227 imes 227 imes 3)
卷積核(11 imes 11) 數量48 步長 4 卷積核(11 imes 11) 數量48 步長 4
激活函數 relu 激活函數 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)
標準化 Local Response Normalization
卷積層 2
(27 imes 27 imes 96)
通道獨立
卷積核(5 imes 5) 數量128 步長 1 卷積核(5 imes 5) 數量128 步長 1 輸入特征圖先擴展padding2個像素
即(31 imes 31)
激活函數 relu 激活函數 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)
標準化 Local Response Normalization
卷積層 3
(13 imes 13 imes 256)
通道合并
雙GPU交互
卷積核(3 imes 3) 數量192 步長 1 卷積核(3 imes 3) 數量192 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數 relu 激活函數 relu 特征圖:((15-3)/1+1=13)
即 (13 imes 13 imes 384)
卷積層 4
(13 imes 13 imes 384)
通道獨立
卷積核(3 imes 3) 數量192 步長 1 卷積核(3 imes 3) 數量192 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數 relu 激活函數 relu 特征圖:((15-3)/1+1=13)
即 (13 imes 13 imes 384)
卷積層 5
(13 imes 13 imes 384)
通道獨立
卷積核(3 imes 3) 數量128 步長 1 輸入特征圖先擴展padding1個像素
即(15 imes 15)
激活函數 relu 激活函數 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個神經元 2048個神經元
dropout dropout (4096 imes 1)的向量
全連接 7
(4096 imes 1)
2048個神經元 2048個神經元
dropout dropout (4096 imes 1)的向量
全連接 8
(4096 imes 1)
1000個神經元 (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).

假設輸入特征圖的某像素的(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)
實現跨通道的交互和信息整合,能夠對通道數進行降維和升維

3. VGG(19)

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

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

4. GoogleLeNet(22)

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

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

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

避免梯度消失。訓練階段,在認為梯度有可能消失的地方,讓結果重新參與調整誤差。

Inception V2網絡

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

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

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

Inception V3網絡

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

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

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

Reduction 能夠比較Maxpooling 與卷積兩種把尺度變小的方法哪個更好。
整個網絡結構包含了很多種組合,包含了很多種情況。訓練的結果決定哪些情況起的作用大。

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

缺點:由于添加了盡可能多的可能性,所以訓練出來的參數和網絡結構更貼近該樣本,造成不利于擴展。擴展性不如VGG。

5. ResNet(152)

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

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

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

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

參數規模:
左邊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})
同參數規模下,增加結構,提高模型表達力

效果:100層ResNeXt相當于200層ResNet

6. 典型的CNN對比

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

7. 如何設計CNN網絡

避免信息瓶頸

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

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

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

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

輸入通道數量 (C)
輸出通道數量 (K)
參數數量 (H_f imes W_f imes C imes K)
操作數量 (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)的感受野)

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

參數少,計算快
多個非線性激活(增強網絡的表現能力)

分組策略,降低計算量

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。