摘要
- 簡化
-將層次重新定義爲剩餘函數
-更容易優化模型
-深度越深精確度越高,且複雜度也降低
-錯誤率低而贏得2015年ImageNet第一名 - 深度是獲獎的基本條件
1.介紹
- 模型深度豐富了深度網絡的等級
- 深模型問題:梯度消失/爆炸——導致難以收斂
- 解決方案有兩個:歸一初始化和中間初始化
- 退化問題——深度加深準確率無法提高,且訓練和驗證錯誤率比淺層更大
實驗內容:對比淺層模型和深層模型
預測結果:深度模型的損失值會降低
實際結果:現存的方案無法讓深度模型的損失值保持或降低
所以以上的兩種解決方案均不可行
- 引出本文的解決方案:深度殘差學習模型
- 假設優化F(x)要比優化F(x)+x難度更大
- F(x)+x
-可通過捷徑連接跳過一個或多個層次
-恆定映射
-不增加參數和計算複雜度
-實現簡單
-
在ImageNet數據集
-深度模型更容易優化
-精確度隨深度增加而增加 -
在CIF-10中也出現相似現象
-
ResNet
-
52層
-複雜度低於VGG
-誤差降到3.57%
-在多個領域獲第一名
2.相關工作
-
殘差描述
-VLAD
-構建子問題和級聯預處理兩種方法比無殘差方法更好優化 -
捷徑連接
-很多文獻都有研究,但切入點不同
-無參數也無需調參
-從不關閉,始終包含
3.深度殘差學習
3.1 殘差學習
- 多層疊加模塊=H(x)
- 假設多層線性層約等於複雜函數約,也約等於殘差函數
- H(x)=F(x)+x
- 改變非線性層來近似恆定映射
- 如果F(x)趨於0,則H(x)=x
- 重構模型有助於解決優化問題
3.2 利用捷徑作恆等映射
- y=F(x,{Wi}) + x
- 爲了補齊維度:y=F(x,{Wi}}) + Ws·x
- 對卷積層也可行
3.3 網絡神經
測試普通層和殘差網絡
- 普通層:
-有大量連續相同的卷積層、輸入輸出維度相同
-如果圖片尺寸減半,濾波器數量要翻倍
-相對於VGG,濾波器數量減少,計算複雜度降低(VGG的18%) - 殘差網絡
-增加了捷徑連接
-實現連接F(x)和x維度相同、虛線維度不同
-兩種補齊維度方法:空缺元素補零、1x1卷積
3.4 實現
- 數據處理:
-按短邊抽樣
-224x224剪裁
-減去均值
-色彩增強 - 代碼實現
-初始化:batch_size=256(SGD)
-Ir = 0.1 錯誤時降低10倍
-trainning=60萬次
-race = 0,0001
-nomentum = 0.9
-no dropout - 測試
-10-crop
-全連接卷積
-對多個尺寸圖像縮放爲短邊結果取均值
4.實驗
4.1 ImageNet分類數據集
- 普通網絡
-18 vs 34
-依然是較深的34層網絡的交叉驗證錯誤率要高於較淺的18層網絡
-BN避免了梯度消失的問題,且沒有影響正常梯度值
-猜測:深度網絡驕傲的錯誤率是因爲較低的收斂速率 - 殘差網絡
-基於普通網絡增加捷徑連接
-補零方法補齊維度
-無新增參數
-結果:深度模型的錯誤率、訓練誤差都要低於普通網絡
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200622102653925.png?x-oss-pr ocess=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzY5MjAx,size_16,color_FFFFFF,t_70)
- 普通18 vs 殘差18
-殘差網絡收斂速度更快 - 投影快捷連接
-成本不划算 - 深度瓶頸架構
-1x1,3x3,1x1 - 50層殘差網絡
-換成瓶頸塊 - 101層和152層殘差網絡
-增加了瓶頸塊的數目
-複雜度更低
-準確率提高 - 比較
-單個模型就優於之前綜合模型