卷积神经网络经典模型要点
文章目錄
- 一、對比
- 二、AlexNet
- 三、ZFNet
- 四、VGGNet
- 五、GoogLeNet
- 1、Inception-v1模型
- 2、Inception-v2模型
- 3、Inception-v3模型
- 4、Inception-v4模型
- 5、GoogLeNet模型
- 六、ResNet
一、對比
二、AlexNet
2012年ImageNet比賽分類任務的冠軍,Top-5錯誤率為16.4%,讓深度學習受到矚目。
該網絡輸入為2272273(原始數據為2242243,經過預處理變為227),由5個“卷積+relu+pooling”和3個全連接層構成。
為什么將224預處理為227大小的圖像:如果為(224*224)的,(224-11)/4不等于整數,而227的話剛好是整數,利于計算和更多信息的保留,通過resize將224變為227的
網絡特點:
- 使用1500多萬個代標記的圖像訓練,兩臺GPU,訓練的5-6天
- 激活函數:Relu,防止梯度消失,加速訓練網絡
- 使用了數據增強,如鏡像、裁剪、轉化等
- 使用dropout在全連接層,防止了過擬合問題
- 采用了局部響應歸一化,提高了精度
- 卷積核大小為11-5-3-3-3大小
深層網絡學習出來的特征是什么樣子的:
-
第一層:都是一些填充的塊狀物和邊界等特征
-
中間層:學習一些紋理特征
-
更高層:接近于分類器的層級,可以明顯的看到物體的形狀特征
-
最后一層:分類層,完全是物體的不同的姿態,根據不同的物體展現出不同姿態的特征了。
為什么使用全連接:
-
在CNN中全連接起到分類器的作用,將前面提取的數據映射到標記空間,將學習到的特征整合,也就是矩陣乘法
-
一般都是使用softmax函數,將前面提取特征和權值乘積的得分函數映射到0-1之間的概率值
全連接為什么會被全局平均池化代替:
-
全連接參數眾多,約占網絡的80%,對計算機硬件要求很高,且網絡容易過擬合
-
GPA:對輸出的10個特征圖分別求取平均,得到一個1*10的特征向量,在經過softmax映射,減少很多參數。
三、ZFNet
2013年冠軍,整體架構和AlexNet很像,錯誤率為11.2%,也是一個8層的網絡。
- ZFNet只用了130萬張訓練,AlexNet用了1500多萬張
- 激活函數:Relu
- 損失函數:交叉熵損失
- 訓練方式:小批量梯度下降
- 一臺GPU訓練12天
- 開發了可視化技術“解卷積網絡”,有助于窺探CNN內部機理,提供了直觀信息。
- ZFNet濾波器大小為77(步長為2),AlexNet濾波器為1111(步長為4),對于輸入數據來說第一層卷積有助于保留大量的原始像素信息,大的濾波器會過濾掉大量相關信息。
四、VGGNet
2014年識別任務亞軍,定位任務冠軍。構建了16~19層的深層網絡,分類錯誤率達到了7.3%,適合做遷移學習。
該網絡全部使用了33卷積核做卷積,22的卷積核做池化,通過不斷加深網絡結構來提升性能,
D組參數的效果最好,詳細介紹如下:
VGG-16比VGG-19少了三個卷積層。
VGGNet網絡結構特點:
-
拋棄了LRN層
-
使用的卷積核都是33的(s=1,p=1),拋棄了大的卷積核,3個33卷積核的組合可以達到77感受野,可以使用更多的Relu函數,增加非線性,而且減少了參數,池化層都采用22的maxpooling(s=2)。
-
更加驗證了網絡越深,效果越好
-
使用小批量梯度下降,批尺寸為256
-
采用L2正則化
-
dropout:用在前兩個全連接層之后,p=0.5
-
參數初始化:w~N(0,0.01),偏置為0
-
數據增強
五、GoogLeNet
2014年圖像分類任務的冠軍,錯誤率降低至6.7%,是一個22層的網絡。
- VGGNet的參數量是AlexNet的三倍多,GoogLeNet考慮了內存和計算資源,只有五百萬個參數,比六千萬參數的AlexNet少12倍。
GoogLeNet出來之前,主流的網絡結構是使網絡更深更寬,但是這樣會存在一些缺點:
-
訓練集有限時,參數過多,出現過擬合
-
網絡越大,計算復雜度越大,設計起來困難
-
網絡層數增多的是,梯度消失越嚴重
GoogLeNet的優勢:更適合大量數據的處理,尤其是內存或計算資源有限制的場合,計算效率有優勢且分類準確率很高。
1、Inception-v1模型
一般的卷積層只是一味的增加卷積層的深度,且每層卷積核只有一種大小,特征提取能力較弱,GoogLeNet提出的Inception模型,在同一層并行的使用不同大小的卷積核對經過padding的輸入圖像進行卷積,對不同的特征圖在深度方向進行組合。
Inception-v1使用11、33、5*5的卷積核分別進行特征提取,之后將其進行組合。
下圖表示了Inception-v1的模型:
原本的形式是未添加11的卷積核的,但是如果所有的卷積核都在上一層的所有輸出層來做,那么55的卷積核計算量太大,所以添加了1*1的卷積核來起到降維的作用。
模型特點:
-
去除了全連接層,用平均池化來代替
-
Inception模型提高了參數利用率,可以反復堆疊形成一個大網絡
2、Inception-v2模型
改進:
-
添加了BN層,減少了由數據分布不同而導致學習能力下降,和計算復雜增大的情況,使每層的輸入都歸一化。
-
用兩個33的卷積核代替v1模型的55,降低了參數數量,加速了計算
3、Inception-v3模型
改進:最重要的改進就是分解,將33的分解為13和3*1的卷積
既然將大的卷積核分解為小的卷積核可以實現等效的效果,那么說明大的卷積核的部分參數是冗余的,也就是不需要5*5的卷積核提供的25個參數特征,可能是因為圖像區域的關聯性很強,卷積核參的關聯性也很強,可以進一步壓縮,相當于緊密網絡到稀疏網絡的轉換。
Inception-v3提出了上圖的分解方式,先用13的卷積核卷積,再接一個31的卷積核,可以明顯的降低參數量和計算量。所以Inception-v3將所有的nn的卷積核都分解為 n1和1*n的疊加。
3×3的卷積使用3×1卷積和1×3卷積代替,這種結構在前幾層效果不太好,但對特征圖大小為12~20的中間層效果明顯。
Inception-v3模型總共有46層,由11個Inception模塊組成。其架構如所示:
圖中每個多通道的集合就是一個inception模塊,共96個卷積層,一般遷移學習就會保留瓶頸層及其之前的參數,僅僅替換最后一層全連接層,重新進行微調來適應自己的項目。
4、Inception-v4模型
Inception-v3到inception-v4網絡變得更深了,在GAP前Inception-v3包括了4個卷積模塊運算(1個常規卷積塊+3個inception結構),Inception-v4變成了6個卷積模塊。對比兩者的卷積核的個數,Inception-v4比Inception-v3也增多了許多。
5、GoogLeNet模型
訓練過程:先訓練得到一組權重參數,也就是第一個分支softmax0,再用這些參數作為初始化參數,訓練第二部分網絡,得到第二個分支softmax1,再用這些參數作為初始化參數,訓練第三部分網絡,得到softmax2。
目的:為了避免梯度消失,網絡額外增加兩個輔助的softmax用于前向傳播梯度,文章中說這兩個輔助的分類器的loss應該加一個衰減系數,實際測試的時候,這兩個額外的softmax會被去掉。
網絡特點:
- 引入Inception模塊,利用同層多種不同大小的卷積核提取特征并進行組合的方式提高了每層網絡的特征提取能力
- 利用小卷積核疊加的方式實現大卷積核的作用,減少了參數量,可以使用更多的relu,引入更多的非線性
- 使用了BN,將輸入歸一化為標準的高斯分布,提高網絡訓練能力和訓練速度
- 使用分支訓練結構,輔助梯度傳播,避免梯度消失
六、ResNet
2015年分類任務的第一名,錯誤率降低到3.57%,152層網絡。
網絡深度提高,帶來的影響:常規的網絡越來越深的情況下,會出現梯度消失
可以看出,隨著網絡層級的不斷增加,模型精度不斷得到提升,但是提升到20層以后的時候,訓練精度和測試精度迅速下降,更加難訓練。說明網絡并不是越深越好。
ResNet網絡的思想來源:假設有一個較淺的網絡達到了飽和的準確率,這時在它后面追加幾個恒等映射,這樣就增加了網絡深度,且誤差不會增加,也就是更深的網絡不會帶來訓練集上誤差的上升。
ResNet就是利用恒等映射將前一層的輸出傳遞到后面層
假設網絡的輸入為x,期望輸出為H(x),如果直接學習的話,訓練難度會很大,上圖的殘差網絡是通過捷徑連接,將本層的輸入x直接傳到本層輸出,假設輸入x和期望輸出H(x)的殘差為F(x),當F(x)=0的時候,輸入和期望相等,也就是恒等變換,所以ResNet網絡的訓練目標就是將F(x)逼近于0,使網絡深度加深,準確率不變。
訓練目標:將目標和輸入的殘差逼近于0,使網絡加深而準確率不降
為什么要很深的網絡:圖像是層次非常深的數據,所以要深層次的網絡進行特征提取,網絡深度對深層特征提取很有意義。
各條路線的意義:
-
**第一條直接向下的網絡:**試圖從x中直接學習殘差F(x)
-
**第二條捷徑網絡:**直接傳遞x
-
**整合:**將兩者相加,就是要求的輸出映射H(x)
**為什么要添加捷徑網絡:**只有一條通路的反向傳播會導致連乘的梯度消失,兩條路會使得變為求和的形式,避免梯度消失。后面的層可以看見輸入,不會因為信息損失而失去學習能力。
和傳統網絡的不同:傳統網絡每次會學習x->H(x)的完整映射,ResNet只學習殘差的映射
反向傳播的時候,捷徑連接的梯度為1,傳到前一層的梯度就會多一個1,更加有效的訓練。
ResNet34(左)和ResNet50/101/152(右)示意圖:
右邊的結構可以用第一個11的卷積核將厚度為256的輸入降到64維,然后再通過第二個11的卷積核恢復
總結
以上是生活随笔為你收集整理的卷积神经网络经典模型要点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米集团全球副总裁Manu Kumar
- 下一篇: [深度学习]CNN--卷积神经网络中用1