1. 程式人生 > >《Residual Networks Behave Like Ensembles of Relatively Shallow Networks》筆記

《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層。

殘差網路展開後的形式

深度殘差網路中,起作用的路徑相對不深。深度殘差網路並沒有解決梯度消失的問題,它只是通過縮短有效連線路徑使得網路變深。

residual_network_ensemble_01.jpg

上圖左邊是一個殘差網路結構,一個殘差網路可以定義為:

yi=fi(yi1+yi1

其中f

i是一個模組它中間可能經過了convoltion、batch normalization、ReLU。

右邊是把左邊網路展開後的結構,兩者等同。從這個角度來看,殘差網路顯式連線路徑有O(2n)個。它的數學表示為:

y3===y2+f3(y2)[y1+f2(y1)]+f3(y1+f2(y1))[y0+f1(y0)+f2(y0+f1(y0))]+f3(y0+f1(y0)+f2(y0+f1(y0)))

通過上面公式可以看出,資料有很多路徑可以通過殘差模組。對於一個殘差模組,資料可以通過或跳過兩種選擇,對於n各殘差模組,共有2n條路徑。

residual_network_ensemble_02.jpg
VGG和AlexNet這樣序列網路結構(上圖右邊),網路數學表示為:

y3=f3(f2(f1(y0)))

上圖左邊,殘差網路除去f2層,需要去掉4條路徑。

實驗

通過實驗,在測試階段,殘差網路通過刪除一些路徑或殘差模組,或者re-order殘差模組,通過測試結果對比影響。。

路徑對測試結果的影響

首先對比刪除一個路徑,即刪除殘差模組中的非線性部分,yi=f(yi1)+yi1變為yi=yi1
1、在CIFAR-10資料集上,通過刪除某些層,和VGG做對比:
residual_network_ensemble_03.jpg
可以發現,VGG刪除任何一層,測試結果相當於隨機選擇了。而殘差網路不通,刪除層對殘差網路分類結果影響很小。

2、在ImageNet資料集上,訓練200層網路,包含66個殘差模組,刪除第幾個模組中的非線性部分對結果影響:
residual_network_ensemble_04.jpg

可以看出,殘差網路中,路徑雖然訓練時在一起聯合訓練,但是它們之間並沒有太強的依賴性。

模組對測試結果的影響

residual_network_ensemble_05.jpg

1、刪除殘差模組
刪除k個殘差模組,有效路徑從2n個變為2{n-k}^個。上面左圖即為實驗結果。隨著刪除模組增多,誤差逐漸增大。這樣的表現類似ensemble。

2、re-order模組
上面實驗只是drop Layer,這裡改變一下網路結構,re-order殘差模組。這樣相當於移除了某些模組,插入了新的模組。

re-order時,隨機交換k對模組(模組之間匹配),使用Kendall Tau rank correlation coefficient視覺化結果,如上圖右邊所示。

殘差網路中的短路徑非常重要

路徑長度分佈

包含n個殘差模組的網路,只有1條路徑是經過所有模組的,有n條路徑只經過一個模組。路徑分佈服從二項分佈;因此大部分路徑長度為n/2,如上圖(a)所示。例如一個包含54殘差模組的網路,95%的路徑只經過19到35個模組。

梯度消失

資料從各個路徑傳輸,但是不同路徑傳遞梯度不同。在反向傳播時測量不同長度路徑梯度大小。梯度幅度大小隨路徑長度變化如上圖(b)所示,可以看出呈指數衰減。

有效路徑相對較淺

通過測量不同長度路徑對梯度貢獻,找出有效路徑。如上圖(c)所示。一個54模組的殘差網路,啟用所有梯度貢獻都來自第5-17模組,這些有效路徑僅僅佔所有路徑額0.45%。

為了驗證這一結果,對一個54模組的網路,訓練它的子網路23個模組。最終對比得到,54模組的網路錯誤率為6.10%,23模組網路錯誤率為5.96%,兩者之間沒有顯著差別。