論文提出背景
深層網(wǎng)絡(luò)的訓(xùn)練問(wèn)題:
1)梯度消失/梯度爆炸,阻礙模型進(jìn)一步收斂
(可以用已有的batch normalization 和 SGD來(lái)解決)
2)退化問(wèn)題,層數(shù)增多效果反而更差
(作者認(rèn)為這并不是過(guò)擬合導(dǎo)致的,因?yàn)樵黾訉訑?shù)之后的訓(xùn)練誤差也提高了)
思想啟發(fā):
如果增加的隱含層是恒等映射,那么得到的網(wǎng)絡(luò)性能至少不會(huì)比原有淺層網(wǎng)絡(luò)更差。但是退化現(xiàn)象表明,用多個(gè)非線性函數(shù)層來(lái)逼近一個(gè)恒等映射似乎是一件很困難的事。而在重新定義的殘差學(xué)習(xí)形式下,若恒等映射是最優(yōu)解,那么只要將權(quán)重都趨近于0就可以逼近恒等映射。
解決辦法
不再讓子網(wǎng)絡(luò)逼近任意無(wú)參照函數(shù),而是逼近期望輸出與輸入之間的差值,對(duì)于恒等映射而言,其目標(biāo)是很確定的0。
結(jié)果表明:
1) 極深的殘差網(wǎng)絡(luò)是很容易優(yōu)化的,但是對(duì)應(yīng)的“plain”網(wǎng)絡(luò)(僅是堆疊了層)在深度增加時(shí)卻出現(xiàn)了更高的錯(cuò)誤率。
2) 深度殘差網(wǎng)絡(luò)能夠輕易的由增加層來(lái)提高準(zhǔn)確率,并且結(jié)果也大大優(yōu)于以前的網(wǎng)絡(luò)。
具體方法描述:
1) 殘差學(xué)習(xí)
將H(x)看作一個(gè)由部分堆疊的(隱含)層(并不一定是全部的網(wǎng)絡(luò))來(lái)擬合的底層映射,其中x是這些(隱含)層的第一層輸入。假設(shè)多個(gè)非線性層能夠逼近復(fù)雜的函數(shù),這就等價(jià)于這些層能夠逼近復(fù)雜的殘差函數(shù),也就是H(x)-x,(這里假設(shè)輸入與輸出是相同維數(shù)的)。因此直接讓這些隱含層來(lái)逼近殘差函數(shù)F(x):=H(x)-x,從而原來(lái)的的輸出函數(shù)變成了F(x)+x。盡管依照假設(shè),兩種形式都能夠逼近所需的函數(shù),但是學(xué)習(xí)的難易程度可能不同。
在實(shí)際情況下,恒等映射不太可能達(dá)到最優(yōu),但是上述的重新定義對(duì)于這個(gè)問(wèn)題的預(yù)處理是有幫助的。如果最優(yōu)函數(shù)更趨近于恒等映射而不是0映射,那么對(duì)于求解器來(lái)說(shuō)尋找關(guān)于恒等映射的擾動(dòng)比學(xué)習(xí)一個(gè)新的函數(shù)要容易的多。通過(guò)實(shí)驗(yàn)表明,學(xué)習(xí)到的殘差函數(shù)通常只有很小的響應(yīng),說(shuō)明了恒等映射提供了合理的預(yù)處理。
2) 恒等Shortcut連接
i) 對(duì)幾個(gè)堆疊的(隱含)層(block)采用殘差學(xué)習(xí)算法,形式化表達(dá)如下:


shortcut 連接只是簡(jiǎn)單的執(zhí)行恒等映射,再將它們的輸出和堆疊層的輸出疊加在一起(Fig.2)。恒等的shortcut連接并不增加額外的參數(shù)和計(jì)算復(fù)雜度。完整的網(wǎng)絡(luò)仍然能通過(guò)端到端的SGD反向傳播進(jìn)行訓(xùn)練,并且能夠簡(jiǎn)單的通過(guò)公共庫(kù)(例如,Caffe)來(lái)實(shí)現(xiàn)而無(wú)需修改求解器(solvers)
對(duì)F(X)與X維數(shù)不同的情況,在shortcut采用線性映射Ws將x映射到與F(X)相同的空間

實(shí)驗(yàn)中的F(x,{Wi})函數(shù)包含兩層或者三層,當(dāng)然也可以更多層。(但如果只包含一層,那么就等價(jià)于一個(gè)線性映射,不會(huì)具有任何優(yōu)勢(shì))
對(duì)于卷積層也是同樣適用的。F(x,{Wi})可以表示多個(gè)卷積層,在兩個(gè)特征圖的通道之間執(zhí)行對(duì)應(yīng)元素的加法。
網(wǎng)絡(luò)結(jié)構(gòu):

1) plain 網(wǎng)絡(luò)
主要受VGG網(wǎng)絡(luò)的啟發(fā),卷積層主要為3*3的濾波器,并遵循以下兩點(diǎn)要求:(i) 輸出特征尺寸相同的層含有相同數(shù)量的濾波器;(ii) 如果特征尺寸減半,則濾波器的數(shù)量增加一倍來(lái)保證每層的時(shí)間復(fù)雜度相同。我們直接通過(guò)stride 為2的卷積層來(lái)進(jìn)行下采樣。在網(wǎng)絡(luò)的最后是一個(gè)全局的平均pooling層和一個(gè)1000 類的包含softmax的全連接層。加權(quán)層的層數(shù)為34。(本文模型比VGG網(wǎng)絡(luò)(Fig.3,左)有更少的濾波器和更低的計(jì)算復(fù)雜度。我們34層的結(jié)構(gòu)含有36億個(gè)FLOPs(乘-加),而這僅僅只有VGG-19 (196億個(gè)FLOPs)的18%)
2)殘差網(wǎng)絡(luò)
在plain網(wǎng)絡(luò)的基礎(chǔ)上,插入shortcut連接,將網(wǎng)絡(luò)變成了對(duì)應(yīng)的殘差版本。如果輸入和輸出的維度相同時(shí),可以直接使用恒等shortcuts。當(dāng)維度增加時(shí)(Fig.3中的虛線部分),考慮兩個(gè)選項(xiàng):
(A)shortcut仍然使用恒等映射,在增加的維度上使用0來(lái)填充,不會(huì)增加額外的參數(shù);
(B)使用線性映射Ws的shortcut來(lái)使維度保持一致(通過(guò)1*1的卷積)。
對(duì)于這兩個(gè)選項(xiàng),當(dāng)shortcut跨越兩種尺寸的特征圖時(shí),均使用stride為2的卷積。
實(shí)驗(yàn)結(jié)果:
4.1 ImageNetClassification

無(wú)參數(shù)的恒等shortcuts是有助于訓(xùn)練的:
1)殘差學(xué)習(xí)的設(shè)置可以很好的解決退化問(wèn)題,并且可以增加深度來(lái)提高準(zhǔn)確率;
2)在極深的網(wǎng)絡(luò)中,殘差學(xué)習(xí)也是有效的;
3)淺層的plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的準(zhǔn)確率很接近 (Table 2),但是ResNet 的收斂速度要快得多。(Fig.4 右 vs 左)。
如果網(wǎng)絡(luò)“并不是特別深” (如18層),現(xiàn)有的SGD能夠很好的對(duì)plain網(wǎng)絡(luò)進(jìn)行求解,而ResNet能夠使優(yōu)化得到更快的收斂。
恒等 vs 線性映射 Shortcuts:
A) 對(duì)增加的維度使用0填充,所有的shortcuts是無(wú)參數(shù)的(與Table2 和 Fig.4 (右)相同);
B) 對(duì)增加的維度使用映射shortcuts,其它使用恒等shortcuts;
C)?所有的都是映射shortcuts
實(shí)驗(yàn)發(fā)現(xiàn),加入線性映射的shortcuts對(duì)于解決退化問(wèn)題并不是必需的,減少?gòu)?fù)雜度和模型尺寸,并不使用選項(xiàng)C的模型。
總結(jié):
在ResNet之前,較深的神經(jīng)網(wǎng)絡(luò)層數(shù)大約只有幾十層,因?yàn)閷訑?shù)增加帶來(lái)的一系列問(wèn)題并不會(huì)使得準(zhǔn)確率進(jìn)一步升高,反而出現(xiàn)退化問(wèn)題。而ResNet通過(guò)殘差的引入,將網(wǎng)絡(luò)層數(shù)增加到超過(guò)100層,并使得網(wǎng)絡(luò)性能顯著提升,同時(shí)成為當(dāng)時(shí)最深的神經(jīng)網(wǎng)絡(luò)。