《Residual Networks Behave Like Ensembles of Relatively Shallow Networks》筆記
深度殘差網路,使網路的層數大大加深,網路的學習表達能力超過在此之前的所有網路。這篇文章從emsemble角度來解釋其工作的原理,對比從殘差角度來解釋,似乎更有說服力。
殘差網路與之前網路不同點
現代的計算機視覺系統架構都比較類似,都是輸入low-level features,學習和和任務相關的high-level features。深度殘差網路與之不同:1、引入了identity skip-connections,資料可以跳過某些層;2、skip-connections使得網路的深度多了兩個量級,深度可達1202層;3、在測試階段,移除某些層,對結果不會有顯著影響,以往的網路結果,移除任何一層會對結果又非常大影響。
深度殘差網路可以看過許多路徑組成網路的一個集合。這些路徑是否獨立,它們之間是否有冗餘?作者通過移除某些路徑做實驗,得出結論:深度殘差網路是多個模型ensemble,逐漸移除路徑,對結果的影響是平滑的。深度殘差網路的路徑不同,深度不同;路徑的分佈服從二項分佈,意味著一個110層的網路實際大概深度只有55層。在訓練過程中,梯度的來源更淺,只有10-34層。
殘差網路展開後的形式
深度殘差網路中,起作用的路徑相對不深。深度殘差網路並沒有解決梯度消失的問題,它只是通過縮短有效連線路徑使得網路變深。
上圖左邊是一個殘差網路結構,一個殘差網路可以定義為:
其中
右邊是把左邊網路展開後的結構,兩者等同。從這個角度來看,殘差網路顯式連線路徑有
通過上面公式可以看出,資料有很多路徑可以通過殘差模組。對於一個殘差模組,資料可以通過或跳過兩種選擇,對於
VGG和AlexNet這樣序列網路結構(上圖右邊),網路數學表示為:
上圖左邊,殘差網路除去
實驗
通過實驗,在測試階段,殘差網路通過刪除一些路徑或殘差模組,或者re-order殘差模組,通過測試結果對比影響。。
路徑對測試結果的影響
首先對比刪除一個路徑,即刪除殘差模組中的非線性部分,
1、在CIFAR-10資料集上,通過刪除某些層,和VGG做對比:
可以發現,VGG刪除任何一層,測試結果相當於隨機選擇了。而殘差網路不通,刪除層對殘差網路分類結果影響很小。
2、在ImageNet資料集上,訓練200層網路,包含66個殘差模組,刪除第幾個模組中的非線性部分對結果影響:
可以看出,殘差網路中,路徑雖然訓練時在一起聯合訓練,但是它們之間並沒有太強的依賴性。
模組對測試結果的影響
1、刪除殘差模組
刪除
2、re-order模組
上面實驗只是drop Layer,這裡改變一下網路結構,re-order殘差模組。這樣相當於移除了某些模組,插入了新的模組。
re-order時,隨機交換
殘差網路中的短路徑非常重要
路徑長度分佈
包含
梯度消失
資料從各個路徑傳輸,但是不同路徑傳遞梯度不同。在反向傳播時測量不同長度路徑梯度大小。梯度幅度大小隨路徑長度變化如上圖(b)所示,可以看出呈指數衰減。
有效路徑相對較淺
通過測量不同長度路徑對梯度貢獻,找出有效路徑。如上圖(c)所示。一個54模組的殘差網路,啟用所有梯度貢獻都來自第5-17模組,這些有效路徑僅僅佔所有路徑額0.45%。
為了驗證這一結果,對一個54模組的網路,訓練它的子網路23個模組。最終對比得到,54模組的網路錯誤率為6.10%,23模組網路錯誤率為5.96%,兩者之間沒有顯著差別。