Residual Network
原文:Deep Residual Learning for Image Recognition
博文參考:
- [譯] Deep Residual Learning for Image Recognition (ResNet)
- Deep Residual Learning for Image Recognition(譯)
- Resnet理解
- 殘差網(wǎng)絡ResNet筆記
代碼參考:https://github.com/tornadomeet/ResNet
簡介
深度卷積神經(jīng)網(wǎng)絡的出現(xiàn)使得圖像分類問題的研究突飛猛進,但隨之也出現(xiàn)了兩個問題:
- 梯度消失鹃祖、爆炸問題纵隔;
- 退化問題(degradation problem)佑淀。
前者瑞驱,通常在初始化時捐晶,對數(shù)據(jù)進行歸一化處理冯键,以及添加正則化層處理惹盼。而后者,實驗表明除了在淺層網(wǎng)絡模型的基礎(chǔ)上添加恒等映射(identity mapping)來構(gòu)建深度網(wǎng)絡模型之外惫确,作者還沒有找到其他的好的解決方案手报。
退化問題:隨著網(wǎng)絡層數(shù)的增加,模型準確度達到某一值后迅速降低改化,如下圖一所示:
上圖為不同深度的網(wǎng)絡模型在CIFAR-10數(shù)據(jù)集上的誤差變化曲線圖掩蛤。
因此,針對退化問題本文引入了深度殘差學習框架(deep residual learning framework)陈肛,讓stacked layers擬合殘差映射(residual mapping)揍鸟,而不是直接擬合the desired underlying mapping。
注:將the desired underlying mapping記為燥爷,現(xiàn)讓stacked nonlinear layers擬合殘差映射蜈亩,即:,則原映射(即the desired underlying mapping)將改寫為:前翎。
對此稚配,作者假設(shè)殘差映射相較于原映射更易優(yōu)化。對于殘差塊港华,采用shortcut connection來實現(xiàn)道川,如下圖二所示:
其中,shortcut connection僅執(zhí)行恒等映射,且其輸出添加至stacked layers的輸出冒萄。恒等shortcut connection既不添加額外參數(shù)臊岸,也不增加計算的復雜度。
- 統(tǒng)計學:殘差指預測值和觀測值間的差距尊流。
- 網(wǎng)絡的一層視為帅戒。
- 恒等映射:。
- 殘差映射:崖技,其中為殘差函數(shù)逻住。為輸入,為卷積分支的輸出迎献,為整個結(jié)構(gòu)的輸出瞎访。
由于作者在文中已言明,目前還沒有其他解決方案用于退化問題吁恍。因此扒秸,為了優(yōu)化恒等映射(即通過stacked layer擬合很困難),作者提出殘差映射方法冀瓦。在原始的方法中伴奥,為了實現(xiàn)恒等映射,通過stacked layers來擬合咕幻。但在殘差映射中渔伯,只需令殘差函數(shù)為0即可實現(xiàn)。
深度殘差學習
殘差學習
在簡介部分已經(jīng)說明了肄程,原始的恒等映射需要多個非線性層來擬合锣吼,但在實際實現(xiàn)過程中很難實現(xiàn)。因此蓝厌,作者引入了殘差映射玄叠。理論上,只要恒等映射達到最佳時拓提,則可迫使多個非線性層的權(quán)重趨向于0即可實現(xiàn)恒等映射读恃。
雖然在實際情況中,恒等映射是不太可能為最佳的代态,但若存在最優(yōu)的函數(shù)接更近于恒等映射而不是接近于0寺惫,則網(wǎng)絡會更易發(fā)現(xiàn)擾動因素。實驗表明學習到的殘差函數(shù)響應值通常較小蹦疑,同時也表明了恒等映射提供了合理的預處理西雀,如下圖三所示。
上圖為在CIFAR-10數(shù)據(jù)集上各網(wǎng)絡的層響應值的標準差變化曲線圖歉摧。其中艇肴,響應值為每個大小為層的BN之后非線性之前的輸出腔呜。上下兩幅圖其層的順序有所不同:前者為原始順序,后者為以響應值從大到小排列再悼。
以shortcut的恒等映射
在每個stacked layer都使用殘差學習核畴,其結(jié)構(gòu)如圖二所示,數(shù)學表達式為:
其中冲九,和均為殘差塊所在層的輸入與輸出向量谤草,函數(shù)為訓練殘差映射所學習到的。
以圖二的殘差塊為例娘侍,其殘差函數(shù)為咖刃,其中表示ReLU激活函數(shù),出于簡化省略偏置項憾筏。對于運算,由一個shortcut connection和以element-wise方式累加實現(xiàn)的花鹅,其值為二階非線性氧腰。
對于,要求與維數(shù)相同刨肃。若出現(xiàn)維數(shù)不同的情況古拴,則在shortcut connection上添加一個線性投影來匹配維度:
注:殘差函數(shù)同樣適用于卷積層,且形式靈活真友。
網(wǎng)絡結(jié)構(gòu)
Plain Network
卷積層的filter大多為大小黄痪,且遵循兩個設(shè)計原則:
- 對于相同大小的輸出特征圖,其層需含有相同數(shù)量的filter盔然;
- 若特征圖的大小減半桅打,則filter的數(shù)量需翻倍,以保證每層的時間復雜度愈案。
在卷積層上以步長為2進行下采樣操作挺尾。在網(wǎng)絡末端以全局的均值池化層和1000個激活函數(shù)為softmax函數(shù)的全連接層結(jié)束。含權(quán)重的層總數(shù)為34層站绪。
ResNet
在plain network的基礎(chǔ)上添加shortcut connection遭铺,將網(wǎng)絡變?yōu)镽esNet。當維度增加時恢准,可考慮如下兩個方法:
- 使用0來填補增加的維數(shù)魂挂,且此方法不會引入額外參數(shù);
- 在shortcut connection上添加一個線性投影來匹配維數(shù)(通過卷積核大小為的卷積實現(xiàn))馁筐。
對于以上兩種方法涂召,其步長均為2。
注:
對于添加線性投影眯漩,實際上有兩種情況:
- 只對維數(shù)增加的數(shù)據(jù)進行處理芹扭;
- 對所有數(shù)據(jù)進行處理麻顶。
后續(xù)實驗表明,后者比前者效果好舱卡,但引入了額外參數(shù)辅肾,且線性投影與退化問題無關(guān)。因此轮锥,為了降低內(nèi)存的使用矫钓、時間復雜度以及模型大小,作者采用前者進行處理舍杜。