###看文章的時候爲什麼優化殘差更容易這個問題困擾了我很久,所以下面主要記錄這個問題的理解以及resnet脈絡的整理。
Motivation:
1.神經網絡的結構並不是越深越好,隨着網絡的加深伴隨着嚴重的梯度下降和梯度爆炸的問題,目前batch normalization等方法可以解決梯度消失和梯度爆炸的問題。但是使用了各種normalization的方法也不能是深層網絡的效果好於淺層網絡。
2.理論上,若A爲淺層網絡,B爲深層網絡,且B的淺層結構完全複製於A,後幾層爲線性層(identity mapping),那麼B網絡的效果應該是和A的相同的。但是實驗發現,A網絡的訓練準確率反而比淺層網絡要低,這說明在實際應用時,高層的這種線性關係很難學到,也就是出現了文中提到的degradation problem(退化)。訓練集準確率下降的原因肯定不是過擬合,因爲過擬合的話訓練集的準確率應該很高。由此出發,我們將這種線性關係加到網絡的學習中,最後學出來的網絡效果應該大於等於淺層網絡的效果,也可以認爲,學習這種線性映射會更加容易。
Residual learning:
identity mapping:x->x
residual mapping:
:desired underlying mapping——期望擬合的特徵圖,一個building block要擬合的就是這個特徵圖,未使用殘差網絡時, 的目標是擬合。使用參差網絡後的目標是擬合,後者比前者更容易優化!
解釋:
假設我們認爲deeper層相較於shallower層的有一些層是冗餘的,那我們的學習目標應該是使這些層變成線性層,這樣才能不影響網絡的性能。那麼擬合的目標就變成了:,即,這要比之前的更容易擬合!