国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

這篇具有很好參考價值的文章主要介紹了經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

前言

《Deep Residual Learning for Image Recognition》這篇論文是何愷明等大佬寫的,在深度學(xué)習(xí)領(lǐng)域相當(dāng)經(jīng)典,在2016CVPR獲得best paper。今天就讓我們一起來學(xué)習(xí)一下吧!

論文原文:https://arxiv.org/abs/1512.03385


前情回顧:

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(一)——AlexNet學(xué)習(xí)筆記(翻譯+精讀)
經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(二)——VGGNet學(xué)習(xí)筆記(翻譯+精讀)
經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(三)——GoogLeNet InceptionV1學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))
經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(四)——InceptionV2-V3學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))


前言

目錄

Abstract—摘要

一、Introduction—介紹

二、Related Work—相關(guān)工作?

2.1Residual Representations—?dú)埐畋磉_(dá)

2.2Shortcut Connections—短路連接

三、Deep Residual Learning—深度殘差學(xué)習(xí)

? ? ? ? ?3.1. Residual Learning—?dú)埐顚W(xué)習(xí)

3.2. Identity Mapping by Shortcuts—通過短路連接進(jìn)行恒等映射

3.3. Network Architectures—網(wǎng)絡(luò)架構(gòu)

3.4. Implementation—實(shí)現(xiàn)

四、Experiments—實(shí)驗(yàn)

4.1. ImageNet Classification—ImageNet分類

4.2. CIFAR-10 and Analysis— CIFAR-10和分析

4.3. Object Detection on PASCAL and MS COCO—PASCAL和MS COCO上的對象檢測

論文十問


Abstract—摘要

翻譯

更深的神經(jīng)網(wǎng)絡(luò)往往更難以訓(xùn)練,我們在此提出一個殘差學(xué)習(xí)的框架,以減輕網(wǎng)絡(luò)的訓(xùn)練負(fù)擔(dān),這是個比以往的網(wǎng)絡(luò)要深的多的網(wǎng)絡(luò)。我們明確地將層作為輸入學(xué)習(xí)殘差函數(shù),而不是學(xué)習(xí)未知的函數(shù)。我們提供了非常全面的實(shí)驗(yàn)數(shù)據(jù)來證明,殘差網(wǎng)絡(luò)更容易被優(yōu)化,并且可以在深度增加的情況下讓精度也增加。在ImageNet的數(shù)據(jù)集上我們評測了一個深度152層(是VGG的8倍)的殘差網(wǎng)絡(luò),但依舊擁有比VGG更低的復(fù)雜度。殘差網(wǎng)絡(luò)整體達(dá)成了3.57%的錯誤率,這個結(jié)果獲得了ILSVRC2015的分類任務(wù)第一名,我們還用CIFAR-10數(shù)據(jù)集分析了100層和1000層的網(wǎng)絡(luò)。

在一些計算機(jī)視覺識別方向的任務(wù)當(dāng)中,深度表示往往是重點(diǎn)。我們極深的網(wǎng)絡(luò)讓我們得到了28%的相對提升(對COCO的對象檢測數(shù)據(jù)集)。我們在深度殘差網(wǎng)絡(luò)的基礎(chǔ)上做了提交的版本參加ILSVRC和COCO2015的比賽,我們還獲得了ImageNet對象檢測,Imagenet對象定位,COCO對象檢測和COCO圖像分割的第一名。


精讀?

主要內(nèi)容

背景:神經(jīng)網(wǎng)絡(luò)的深度越深,越難以訓(xùn)練

本文貢獻(xiàn):本文展示了一種殘差學(xué)習(xí)框架,能夠簡化使那些非常深的網(wǎng)絡(luò)的訓(xùn)練,該框架能夠?qū)幼鳛檩斎雽W(xué)習(xí)殘差函數(shù),而不是學(xué)習(xí)未知的函數(shù)。

結(jié)果:本文提供了全面的依據(jù)表明,這些殘差網(wǎng)絡(luò)更容易被優(yōu)化,而且可以在深度增加的情況下讓精度也增加。

成績:2015年的ILSVRC分類任務(wù)上以及獲得了第一名的成績,后來在ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上均獲得了第一名的成績。


一、Introduction—介紹

翻譯

深度卷積神經(jīng)網(wǎng)絡(luò)在圖像分類領(lǐng)域取得了一系列的突破 。 深度網(wǎng)絡(luò)很好的將一個端到端的多層模型中的低/中/高級特征以及分類器整合起來,特征的等級可以通過所堆疊層的數(shù)量(深度)來豐富。最近有結(jié)果顯示,模型的深度發(fā)揮著至關(guān)重要的作用,這樣導(dǎo)致了ImageNet競賽的參賽模型都趨向于“非常深”——16 層 到30層 。許多其它的視覺識別任務(wù)的都得益于非常深的模型。

在深度的重要性的驅(qū)使下,出現(xiàn)了一個新的問題:訓(xùn)練一個更好的網(wǎng)絡(luò)是否和堆疊更多的層一樣簡單呢?解決這一問題的障礙便是困擾人們很久的梯度消失/梯度爆炸,這從一開始便阻礙了模型的收斂。歸一初始化(normalized initialization)和中間歸一化(intermediate normalization)在很大程度上解決了這一問題,它使得數(shù)十層的網(wǎng)絡(luò)在反向傳播的隨機(jī)梯度下降(SGD)上能夠收斂。

當(dāng)深層網(wǎng)絡(luò)能夠收斂時,一個退化問題又出現(xiàn)了:隨著網(wǎng)絡(luò)深度的增加,準(zhǔn)確率達(dá)到飽和(不足為奇)然后迅速退化。意外的是,這種退化并不是由過擬合造成的,并且在一個合理的深度模型中增加更多的層卻導(dǎo)致了更高的錯誤率,我們的實(shí)驗(yàn)也證明了這點(diǎn)。

退化的出現(xiàn)(訓(xùn)練準(zhǔn)確率)表明了并非所有的系統(tǒng)都是很容易優(yōu)化的。讓我們來比較一個淺層的框架和它的深層版本。對于更深的模型,這有一種通過構(gòu)建的解決方案:恒等映射(identity mapping)來構(gòu)建增加的層,而其它層直接從淺層模型中復(fù)制而來。這個構(gòu)建的解決方案也表明了,一個更深的模型不應(yīng)當(dāng)產(chǎn)生比它的淺層版本更高的訓(xùn)練錯誤率。實(shí)驗(yàn)表明,我們目前無法找到一個與這種構(gòu)建的解決方案相當(dāng)或者更好的方案(或者說無法在可行的時間內(nèi)實(shí)現(xiàn))。

本文中,我們提出了一種深度殘差學(xué)習(xí)框架來解決這個退化問題。我們明確的讓這些層來擬合殘差映射(residual mapping),而不是讓每一個堆疊的層直接來擬合所需的底層映射(desired underlying mapping)。假設(shè)所需的底層映射為?H(x)H(x),我們讓堆疊的非線性層來擬合另一個映射:?F(x):=H(x)?xF(x):=H(x)?x。 因此原來的映射轉(zhuǎn)化為:?F(x)+xF(x)+x。我們推斷殘差映射比原始未參考的映射(unreferenced mapping)更容易優(yōu)化。在極端的情況下,如果某個恒等映射是最優(yōu)的,那么將殘差變?yōu)? 比用非線性層的堆疊來擬合恒等映射更簡單。

公式?F(x)+xF(x)+x?可以通過前饋神經(jīng)網(wǎng)絡(luò)的“shortcut連接”來實(shí)現(xiàn)(Fig.2)。Shortcut連接就是跳過一個或者多個層。在我們的例子中,shortcut 連接只是簡單的執(zhí)行恒等映射,再將它們的輸出和堆疊層的輸出疊加在一起(Fig.2)。恒等的shortcut連接并不增加額外的參數(shù)和計算復(fù)雜度。完整的網(wǎng)絡(luò)仍然能通過端到端的SGD反向傳播進(jìn)行訓(xùn)練,并且能夠簡單的通過公共庫(例如,Caffe)來實(shí)現(xiàn)而無需修改求解器(solvers)。

我們在ImageNet數(shù)據(jù)集上進(jìn)行了綜合性的實(shí)驗(yàn)來展示這個退化問題并評估了我們提出的方法。本文表明了: 1) 我們極深的殘差網(wǎng)絡(luò)是很容易優(yōu)化的,但是對應(yīng)的“plain”網(wǎng)絡(luò)(僅是堆疊了層)在深度增加時卻出現(xiàn)了更高的錯誤率。 2) 我們的深度殘差網(wǎng)絡(luò)能夠輕易的由增加層來提高準(zhǔn)確率,并且結(jié)果也大大優(yōu)于以前的網(wǎng)絡(luò)。

CIFAR-10數(shù)據(jù)集上也出現(xiàn)了類似的現(xiàn)象,這表明了我們提出的方法的優(yōu)化難度和效果并不僅僅是對于一個特定數(shù)據(jù)集而言的。我們在這個數(shù)據(jù)集上成功的提出了超過100層的訓(xùn)練模型,并探索了超過1000層的模型。

在ImageNet分類數(shù)據(jù)集上,極深的殘差網(wǎng)絡(luò)獲得了優(yōu)異的成績。我們的152層的殘差網(wǎng)絡(luò)是目前ImageNet尚最深的網(wǎng)絡(luò),并且別VGG網(wǎng)絡(luò)的復(fù)雜度還要低。在ImageNet測試集上,我們的組合模型(ensemble)的top-5錯誤率僅為3.57%,并贏得了ILSVRC 2015分類競賽的第一名。這個極深的模型在其他識別任務(wù)上同樣也具有非常好的泛化性能,這讓我們在ILSVRC & COCO 2015 競賽的ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上均獲得了第一名的成績。這強(qiáng)有力的證明了殘差學(xué)習(xí)法則的通用性,因此我們將把它應(yīng)用到其他視覺甚至非視覺問題上。

精讀

背景

模型的深度發(fā)揮著至關(guān)重要的作用,這樣導(dǎo)致了ImageNet競賽的參賽模型都趨向于“非常深”——16 層 到30層

問題一: 模型深度太大時,會存在梯度消失/梯度爆炸的問題

梯度消失/梯度爆炸概念:二者問題問題都是因?yàn)榫W(wǎng)絡(luò)太深,網(wǎng)絡(luò)權(quán)值更新不穩(wěn)定造成的。本質(zhì)上是因?yàn)樘荻确聪騻鞑ブ械倪B乘效應(yīng)(小于1連續(xù)相乘多次)。梯度消失時,越靠近輸入層的參數(shù)w越是幾乎紋絲不動;梯度爆炸時,越是靠近輸入層的參數(shù)w越是上躥下跳。

解決方法:歸一初始化(normalized initialization)和中間歸一化(intermediate normalization)+BN,加快網(wǎng)絡(luò)收斂。

問題二: 隨著網(wǎng)絡(luò)深度的增加,準(zhǔn)確率達(dá)到飽和然后迅速退化

網(wǎng)絡(luò)退化概念:神經(jīng)網(wǎng)絡(luò)隨著層數(shù)加深,首先訓(xùn)練準(zhǔn)確率會逐漸趨于飽和;若層數(shù)繼續(xù)加深,反而訓(xùn)練準(zhǔn)確率下降,效果不好了,而這種下降不是由過擬合造成的(因?yàn)槿绻沁^擬合的話,訓(xùn)練時誤差應(yīng)該很低而測試時很高)。

Q:為啥會出現(xiàn)網(wǎng)絡(luò)退化?

由于非線性激活函數(shù)Relu的存在,每次輸入到輸出的過程都幾乎是不可逆的,這也造成了許多不可逆的信息損失。一個特征的一些有用的信息損失了,得到的結(jié)果肯定不盡人意。說通俗一點(diǎn)就是中間商賺差價。層數(shù)增多之后,信息在中間層損失掉了。

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

?解決方法:深度殘差學(xué)習(xí)

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

?(具體方法會在3.1章節(jié)講解)

結(jié)果:

(1)殘差網(wǎng)絡(luò)的結(jié)構(gòu)更利于優(yōu)化收斂

(2)解決了退化問題

(3)殘差網(wǎng)絡(luò)可以在擴(kuò)展網(wǎng)絡(luò)深度的同時,提高網(wǎng)絡(luò)性能


二、Related Work—相關(guān)工作?

2.1Residual Representations—?dú)埐畋磉_(dá)

翻譯

殘差表達(dá)
在圖像識別中,VLAD是殘差向量對應(yīng)于字典進(jìn)行編碼的一種表達(dá)形式,F(xiàn)isher Vector可以看做是VLAD 的一個概率版本。對于圖像檢索和分類它們都是強(qiáng)力的淺層表達(dá)。對于向量量化,殘差向量編碼比原始向量編碼更加有效。

在低級視覺和計算機(jī)圖形學(xué)中,為了求解偏微分方程(PDEs),通常使用Multigrid法將系統(tǒng)重新表達(dá)成多尺度的子問題來解決,每一個子問題就是解決粗細(xì)尺度之間的殘差問題。Multigrid的另外一種方式是分層基預(yù)處理,它依賴于代表著兩個尺度之間殘差向量的變量。實(shí)驗(yàn)證明 這些求解器比其他標(biāo)準(zhǔn)求解器的收斂要快得多,卻并沒有意識到這是該方法的殘差特性所致。這些方法表明了一個好的重新表達(dá)或者預(yù)處理能夠簡化優(yōu)化問題。

精讀

主要內(nèi)容

(1)對于向量量化,殘差向量編碼比原始向量編碼更加有效。

(2)Multigrid的殘差特性使得求解器比其他標(biāo)準(zhǔn)求解器的收斂要快得多,表明了一個好的重新表達(dá)或者預(yù)處理能夠簡化優(yōu)化問題。


2.2Shortcut Connections—短路連接

翻譯?

Shortcut連接
Shortcut連接已經(jīng)經(jīng)過了很長的一段實(shí)踐和理論研究過程。訓(xùn)練多層感知器(MLPs)的一個早期實(shí)踐就是添加一個連接輸入和輸出的線性層。在Szegedy2015Going及Lee2015deeply中,將一些中間層直接與輔助分類器相連接可以解決梯度消失/爆炸問題。在?Szegedy2015Going中,一個“inception”層由一個shortcut分支和一些更深的分支組合而成。

與此同時,“highway networks”將shortcut連接與門控函數(shù) 結(jié)合起來。這些門是數(shù)據(jù)相關(guān)并且是有額外參數(shù)的,而我們的恒等shortcuts是無參數(shù)的。當(dāng)一個門的shortcut是“closed”(接近于0)時,highway網(wǎng)絡(luò)中的層表示非殘差函數(shù)。相反的,我們的模型總是學(xué)習(xí)殘差函數(shù);我們的恒等shortcuts從不關(guān)閉,在學(xué)習(xí)額外的殘差函數(shù)時,所有的信息總是通過的。此外,highway網(wǎng)絡(luò)并不能由增加層的深度(例如, 超過100層)來提高準(zhǔn)確率。

精讀

主要內(nèi)容

(1)Shortcut連接已經(jīng)經(jīng)過了很長的一段實(shí)踐和理論研究過程,證明是有效的。

(2)和highway networks(門控函數(shù))對比:當(dāng)一個門的shortcut是“closed”(接近于0)時,highway networks中的層表示非殘差函數(shù)。相反的,我們的模型總是學(xué)習(xí)殘差函數(shù);我們的恒等shortcuts從不關(guān)閉,是無參數(shù)的,在學(xué)習(xí)額外的殘差函數(shù)時,所有的信息總是通過的。此外,highway networks并不能由增加層的深度(例如,超過100層)來提高準(zhǔn)確率。


三、Deep Residual Learning—深度殘差學(xué)習(xí)?

3.1. Residual Learning—?dú)埐顚W(xué)習(xí)

翻譯

我們將H(x)看作一個由部分堆疊的層(并不一定是全部的網(wǎng)絡(luò))來擬合的底層映射,其中x是這些層的輸入。假設(shè)多個非線性層能夠逼近復(fù)雜的函數(shù),這就等價于這些層能夠逼近復(fù)雜的殘差函數(shù),例如,?H(x)?x(假設(shè)輸入和輸出的維度相同)。所以我們明確的讓這些層來估計一個殘差函數(shù):F(x)=H(x)?x而不是H(x)。因此原始函數(shù)變成了:F(x)+x。盡管這兩個形式應(yīng)該都能夠逼近所需的函數(shù)(正如假設(shè)),但是學(xué)習(xí)的難易程度并不相同。

這個重新表達(dá)的動機(jī)是由退化問題這個反常的現(xiàn)象(Fig.1,左)。正如我們在Introduction中討論的,如果增加的層能以恒等映射來構(gòu)建,一個更深模型的訓(xùn)練錯誤率不應(yīng)該比它對應(yīng)的淺層模型的更大。退化問題表明了,求解器在通過多個非線性層來估計恒等映射上可能是存在困難的。而伴隨著殘差學(xué)習(xí)的重新表達(dá),如果恒等映射是最優(yōu)的,那么求解器驅(qū)使多個非線性層的權(quán)重趨向于零來逼近恒等映射。

在實(shí)際情況下,恒等映射不太可能達(dá)到最優(yōu),但是我們的重新表達(dá)對于這個問題的預(yù)處理是有幫助的。如果最優(yōu)函數(shù)更趨近于恒等映射而不是0映射,那么對于求解器來說尋找關(guān)于恒等映射的擾動比學(xué)習(xí)一個新的函數(shù)要容易的多。通過實(shí)驗(yàn)(Fig.7)表明,學(xué)習(xí)到的殘差函數(shù)通常只有很小的響應(yīng),說明了恒等映射提供了合理的預(yù)處理。

精讀

ResNet目的

我們選擇加深網(wǎng)絡(luò)的層數(shù),是希望深層的網(wǎng)絡(luò)的表現(xiàn)能比淺層好,或者是希望它的表現(xiàn)至少和淺層網(wǎng)絡(luò)持平(相當(dāng)于直接復(fù)制淺層網(wǎng)絡(luò)的特征)

以前方法

在正常的網(wǎng)絡(luò)中,應(yīng)該傳遞給下一層網(wǎng)絡(luò)的輸入是 H(x)=F(x),即直接擬合H(x)

本文改進(jìn)

在ResNet中,傳遞給下一層的輸入變?yōu)镠(x)=F(x)+x,即擬合殘差F(x)=H(x)-x

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

殘差模塊:一條路不變(恒等映射);另一條路負(fù)責(zé)擬合相對于原始網(wǎng)絡(luò)的殘差,去糾正原始網(wǎng)絡(luò)的偏差,而不是讓整體網(wǎng)絡(luò)去擬合全部的底層映射,這樣網(wǎng)絡(luò)只需要糾正偏差。

本質(zhì)

(1)加了殘差結(jié)構(gòu)后,給了輸入x一個多的選擇。若神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到這層的參數(shù)是冗余的時候,它可以選擇直接走這條“跳接”曲線(shortcut connection),跳過這個冗余層,而不需要再去擬合參數(shù)使得H(x)=F(x)=x

(2)加了恒等映射后,深層網(wǎng)絡(luò)至少不會比淺層網(wǎng)絡(luò)更差。

(3)而在Resnet中,只需要把F(x)變?yōu)?即可,輸出變?yōu)镕(x)+x=0+x=x很明顯,將網(wǎng)絡(luò)的輸出優(yōu)化為0比將其做一個恒等變換要容易得多。

Q:為什么H(x)=F(x)+x中F(x)為0才有效?

模型在訓(xùn)練過程中,F(xiàn)(x)是訓(xùn)練出來的,如果F(x)對于提高模型的訓(xùn)練精度無作用,自然梯度下降算法就調(diào)整該部分的參數(shù),使該部分的效果趨近于0.這樣整個模型就不會出現(xiàn)深度越深反而效果越差的情況了。


3.2. Identity Mapping by Shortcuts—通過短路連接進(jìn)行恒等映射?

翻譯

我們在堆疊層上采取殘差學(xué)習(xí)算法。一個構(gòu)建塊如Fig.2所示。本文中的構(gòu)建塊定義如下(Eq.1):y=F(x,{Wi})+x.
其中x和y分別表示層的輸入和輸出。函數(shù)F(x,{Wi})代表著學(xué)到的殘差映射。Fig.2中的例子包含兩層,F(xiàn)=W2σ(W1x),其中?σ代表ReLU,為了簡化省略了偏置項(xiàng)。F+x操作由一個shortcut連接和元素級(element-wise)的加法來表示。在加法之后我們再執(zhí)行另一個非線性操作(例如,?σ(y),如Fig.2。

Eq.1中的shortcut連接沒有增加額外的參數(shù)和計算復(fù)雜度。這不僅是一個很有吸引力的做法,同時在對“plain”網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)進(jìn)行比較時也是非常重要的。我們可以在參數(shù)、深度、寬度以及計算成本都相同的基礎(chǔ)上對兩個網(wǎng)絡(luò)進(jìn)行公平的比較(除了可以忽略不計的元素級的加法)。

在Eq.1中,x和F的維度必須相同。如果不相同(例如, 當(dāng)改變了輸入/輸出的通道),我們可以通過shortcut連接執(zhí)行一個線性映射Ws來匹配兩者的維度(Eq.2):y=F(x,{Wi})+Wsx.

在Eq.1中同樣可以使用方陣Ws。但我們的實(shí)驗(yàn)表明,恒等映射已足夠解決退化問題,并且是經(jīng)濟(jì)的,因此Ws只是用來解決維度不匹配的問題。

殘差函數(shù)F的形勢是靈活可變的。本文實(shí)驗(yàn)中涉及到的函數(shù)FF是兩層或者三層的(Fig.5),當(dāng)然更多層也是可行的。但是如果F只含有一層,Eq.1就和線性函數(shù):y=W1x+x一致,因此并不具有任何優(yōu)勢。

我們還發(fā)現(xiàn)不僅是對于全連接層,對于卷積層也是同樣適用的。函數(shù)F(x,{Wi})可以表示多個卷積層,在兩個特征圖的通道之間執(zhí)行元素級的加法。

精讀

Shortcuts Connection的兩種方式:

(1)shortcuts同等維度映射,F(xiàn)(x)與x相加就是就是逐元素相加

  • y=F(x,Wi)+x
  • F=W2σ(W1x)

其中 x 和 y 分別表示層的輸入和輸出。函數(shù) F(x,Wi)代表著學(xué)到的殘差映射,σ 代表ReLU

這種方式通過shortcuts直接傳遞輸入x,不會引入額外的參數(shù)也不會增加模塊的計算復(fù)雜性,因此可以公平地將殘差網(wǎng)絡(luò)和plain網(wǎng)絡(luò)作比較。

(2)如果兩者維度不同(改變了輸入/輸出的通道),需要給x執(zhí)行一個線性映射來匹配維度

  • y=F(x,Wi)+Wsx.
  • F=W2σ(W1x)

這種方式的目的僅僅是為了保持x與F(x)之間的維度一致,所以通常只在相鄰殘差塊之間通道數(shù)改變時使用,絕大多數(shù)情況下僅使用第一種方式。

用卷積層進(jìn)行殘差學(xué)習(xí):以上的公式表示為了簡化,都是基于全連接層的,實(shí)際上當(dāng)然可以用于卷積層。加法隨之變?yōu)閷?yīng)channel間的兩個feature map逐元素相加。


3.3. Network Architectures—網(wǎng)絡(luò)架構(gòu)?

翻譯

我們在多個plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)上進(jìn)行了測試,并都觀測到了一致的現(xiàn)象。接下來我們將在ImageNet上對兩個模型進(jìn)行討論。

Plain網(wǎng)絡(luò)
我們的plain網(wǎng)絡(luò)結(jié)構(gòu)(Fig.3,中)主要受VGG網(wǎng)絡(luò) (Fig.3,左)的啟發(fā)。
卷積層主要為3*3的濾波器,并遵循以下兩點(diǎn)要求:(i) 輸出特征尺寸相同的層含有相同數(shù)量的濾波器;(ii) 如果特征尺寸減半,則濾波器的數(shù)量增加一倍來保證每層的時間復(fù)雜度相同。我們直接通過stride 為2的卷積層來進(jìn)行下采樣。在網(wǎng)絡(luò)的最后是一個全局的平均pooling層和一個1000 類的包含softmax的全連接層。加權(quán)層的層數(shù)為34,如Fig.3(中)所示。

值得注意的是,我們的模型比VGG網(wǎng)絡(luò)(Fig.3,左)有更少的濾波器和更低的計算復(fù)雜度。我們34層的結(jié)構(gòu)含有36億個FLOPs(乘-加),而這僅僅只有VGG-19 (196億個FLOPs)的18%。

殘差網(wǎng)絡(luò)
在以上plain網(wǎng)絡(luò)的基礎(chǔ)上,我們插入shortcut連接(Fig.3,右),將網(wǎng)絡(luò)變成了對應(yīng)的殘差版本。如果輸入和輸出的維度相同時,可以直接使用恒等shortcuts?(Eq.1)(Fig.3中的實(shí)線部分)。當(dāng)維度增加時(Fig.3中的虛線部分),考慮兩個選項(xiàng):
(A) shortcut仍然使用恒等映射,在增加的維度上使用0來填充,這樣做不會增加額外的參數(shù);
(B) 使用Eq.2的映射shortcut來使維度保持一致(通過1*1的卷積)。
對于這兩個選項(xiàng),當(dāng)shortcut跨越兩種尺寸的特征圖時,均使用stride為2的卷積。
Fig.3 對應(yīng)于ImageNet的網(wǎng)絡(luò)框架舉例。?左:VGG-19模型 (196億個FLOPs)作為參考。中:plain網(wǎng)絡(luò),含有34個參數(shù)層(36 億個FLOPs)。右:殘差網(wǎng)絡(luò),含有34個參數(shù)層(36億個FLOPs)。虛線表示的shortcuts增加了維度。Table 1展示了更多細(xì)節(jié)和其它變體。

Table 1 對應(yīng)于ImageNet的結(jié)構(gòu)框架。括號中為構(gòu)建塊的參數(shù)(同樣見Fig.5),數(shù)個構(gòu)建塊進(jìn)行堆疊。下采樣由stride為2的conv3_1、conv4_1和conv5_1 來實(shí)現(xiàn)。

精讀

下面將以ImageNet數(shù)據(jù)集為例,將plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)作對比討論。

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

Plain網(wǎng)絡(luò)

plain網(wǎng)絡(luò)結(jié)構(gòu)主要受VGG網(wǎng)絡(luò)的啟發(fā)。 卷積層主要為3*3的卷積核,直接通過stride為2的卷積層來進(jìn)行下采樣。在網(wǎng)絡(luò)的最后是一個全局的平均pooling層和一個1000類的包含softmax的全連接層。加權(quán)層的層數(shù)為34。

兩條設(shè)計準(zhǔn)則:

(i)同樣輸出大小的特征圖,有著相同數(shù)量的卷積核;

(ii)如果特征圖大小減半,為了保證相同的時間復(fù)雜度,卷積核個數(shù)加倍。

與VGG對比:

我們的模型比VGG有更少的卷積核和更低的計算復(fù)雜度。我們34層的結(jié)構(gòu)含有36億個FLOPs(乘-加),而這僅僅只有VGG-19 (196億個FLOPs)的18%。

殘差網(wǎng)絡(luò)

在plain網(wǎng)絡(luò)的基礎(chǔ)上,加入shortcuts連接,就變成了相應(yīng)的殘差網(wǎng)絡(luò)

如上圖,實(shí)線代表維度一樣,直接相加 。虛線代表維度不一樣(出現(xiàn)了下采樣,步長為2的卷積),使用殘差網(wǎng)絡(luò)

調(diào)整維度的方法有兩種:

(1)zero-padding:對多出來的通道padding補(bǔ)零填充,這種方法不會引入額外的參數(shù);

(2)線性投影變換:用1*1卷積升維,是需要學(xué)習(xí)的參數(shù),精度比zero-padding更好,但是耗時更長,占用更多內(nèi)存。

這兩種方法都使用stride為2的卷積。


3.4. Implementation—實(shí)現(xiàn)

翻譯

針對ImageNet的網(wǎng)絡(luò)實(shí)現(xiàn)遵循了Krizhevsky2012ImageNet和Simonyan2014Very。調(diào)整圖像的大小使它的短邊長度隨機(jī)的從[256,480]中采樣來增大圖像的尺寸。 從一張圖像或者它的水平翻轉(zhuǎn)圖像中隨機(jī)采樣一個224*224的crop,每個像素都減去均值。圖像使用標(biāo)準(zhǔn)的顏色增強(qiáng)。我們在每一個卷積層之后,激活層之前均使用batch normalization(BN)。我們根據(jù)He2014spatial來初始化權(quán)值然后從零開始訓(xùn)練所有plain/殘差網(wǎng)絡(luò)。
我們使用的mini-batch的尺寸為256。學(xué)習(xí)率從0.1開始,每當(dāng)錯誤率平穩(wěn)時將學(xué)習(xí)率除以10,整個模型進(jìn)行60?104次迭代訓(xùn)練。我們將權(quán)值衰減設(shè)置為0.0001,a 動量為0.9。根據(jù)?Ioffe2015Batch,我們并沒有使用Dropout。

在測試中,為了進(jìn)行比較,我們采取標(biāo)準(zhǔn)的10-crop測試。
為了達(dá)到最佳的結(jié)果,我們使用Simonyan2014Very及He2014spatial中的全卷積形式,并在多個尺度的結(jié)果上取平均分(調(diào)整圖像的大小使它的短邊長度分別為{224,256,384,480,640})。

精讀

方法

(1)圖像分別隨機(jī)被壓縮到256到480之間,之后做圖像增強(qiáng)

(2)輸出處理過程:用224 * 224 隨機(jī)裁出一個小圖,在做水平的鏡像來做圖像增強(qiáng)(不同尺度維度),10個小圖匯總成一個大圖(可使用多尺度裁剪和結(jié)果融合)。

(3)每個卷積層后面或者激活層之前都使用BN

參數(shù):?mini-batch為256,學(xué)習(xí)率為0.1,訓(xùn)練60萬的迭代次數(shù),正則化0.0001,動量是0.9。沒有使用dropout(BN和dropout不能混合使用,單獨(dú)使用效果更佳,原因:方差偏移)


四、Experiments—實(shí)驗(yàn)

4.1. ImageNet Classification—ImageNet分類

本文在1000類的ImageNet2012數(shù)據(jù)集上對我們的方法進(jìn)行評估。訓(xùn)練集包含128萬張圖像,驗(yàn)證集包含5萬張圖像。我們在10萬張測試圖像上進(jìn)行測試,并對top-1和top-5?的錯誤率進(jìn)行評估。

Plain網(wǎng)絡(luò)

翻譯

我們首先評估了18層和34層的plain網(wǎng)絡(luò)。34層的網(wǎng)絡(luò)如圖Fig.3(中)所示。18層的結(jié)構(gòu)很相似,具體細(xì)節(jié)參見Table 1。

Table 2中展示的結(jié)果表明了34層的網(wǎng)絡(luò)比18層的網(wǎng)絡(luò)具有更高的驗(yàn)證錯誤率。為了揭示產(chǎn)生這種現(xiàn)象的原因,在Fig.4(左)中我們比較了整個訓(xùn)練過程中的訓(xùn)練及驗(yàn)證錯誤率。從結(jié)果中我們觀測到了明顯的退化問題——在整個訓(xùn)練過程中34 層的網(wǎng)絡(luò)具有更高的訓(xùn)練錯誤率,即使18層網(wǎng)絡(luò)的解空間為34層解空間的一個子空間。

我們認(rèn)為這種優(yōu)化上的困難不太可能是由梯度消失所造成的。因?yàn)檫@些plain網(wǎng)絡(luò)的訓(xùn)練使用了BN,這能保證前向傳遞的信號是具有非零方差的。我們同樣驗(yàn)證了在反向傳遞階段的梯度由于BN而具有良好的范式,所以在前向和反向階段的信號不會存在消失的問題。事實(shí)上34層的plain網(wǎng)絡(luò)仍然具有不錯的準(zhǔn)確率(Table 3),這表明了求解器在某種程度上也是有效的。我們推測,深層的plain網(wǎng)絡(luò)的收斂率是指數(shù)衰減的,這可能會影響訓(xùn)練錯誤率的降低。這種優(yōu)化困難的原因我們將在以后的工作中進(jìn)行研究。

精讀

首先進(jìn)行的實(shí)驗(yàn)是18層和34層的plain網(wǎng)絡(luò),實(shí)驗(yàn)結(jié)果如下表所示,產(chǎn)生了一種退化現(xiàn)象:在訓(xùn)練過程中34層的網(wǎng)絡(luò)比18層的網(wǎng)絡(luò)有著更高的訓(xùn)練錯誤率。

(細(xì)線:訓(xùn)練集上的誤差; 粗線:測試集上的誤差)

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))


?殘差網(wǎng)絡(luò)

翻譯

接下來我們對18層和34層的殘差網(wǎng)絡(luò)ResNets進(jìn)行評估。如Fig.3 (右)所示,ResNets的基本框架和plain網(wǎng)絡(luò)的基本相同,除了在每一對3*3的濾波器上添加了一個shortcut連接。在Table 2以及Fig.4(右)的比較中,所有的shortcuts都是恒等映射,并且使用0對增加的維度進(jìn)行填充(選項(xiàng) A)。因此他們并沒有增加額外的參數(shù)。

我們從Table 2和Fig.4中觀測到以下三點(diǎn):

第一,與plain網(wǎng)絡(luò)相反,34層的ResNet比18層ResNet的結(jié)果更優(yōu)(2.8%)。更重要的是,34 層的ResNet在訓(xùn)練集和驗(yàn)證集上均展現(xiàn)出了更低的錯誤率。這表明了這種設(shè)置可以很好的解決退化問題,并且我們可以由增加的深度來提高準(zhǔn)確率。

第二,與對應(yīng)的plain網(wǎng)絡(luò)相比,34層的ResNet在top-1 錯誤率上降低了3.5%?(Table 2),這得益于訓(xùn)練錯誤率的降低(Fig.4 右 vs 左)。這也驗(yàn)證了在極深的網(wǎng)絡(luò)中殘差學(xué)習(xí)的有效性。

最后,我們同樣注意到,18層的plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的準(zhǔn)確率很接近 (Table 2),但是ResNet 的收斂速度要快得多。(Fig.4 右 vs 左)。
如果網(wǎng)絡(luò)“并不是特別深” (如18層),現(xiàn)有的SGD能夠很好的對plain網(wǎng)絡(luò)進(jìn)行求解,而ResNet能夠使優(yōu)化得到更快的收斂。

精讀

接著對18層和34層的殘差網(wǎng)絡(luò)進(jìn)行評估,為了保證變量的一致性,其基本框架結(jié)構(gòu)和plain網(wǎng)絡(luò)的結(jié)構(gòu)相同,只是在每一對卷積層上添加了shortcuts連接來實(shí)現(xiàn)殘差結(jié)構(gòu),對于維度不匹配的情況,使用0來填充維度(即3.3介紹過的方法1),因此也并沒有添加額外的參數(shù)。訓(xùn)練結(jié)果如下圖所示

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

【Table 2 ImageNet驗(yàn)證集上的Top-1錯誤率 (%, 10-crop testing)】

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

結(jié)論

(1)與plain網(wǎng)絡(luò)相反,34層的resnet網(wǎng)絡(luò)比18層的錯誤率更低,表明可以通過增加深度提高準(zhǔn)確率,解決了退化問題。

(2)與plain網(wǎng)絡(luò)相比,層次相同的resnet網(wǎng)絡(luò)上錯誤率更低,表明殘差網(wǎng)絡(luò)在深層次下仍然有效。

(3)對于18層的plain網(wǎng)絡(luò),它和殘差網(wǎng)絡(luò)的準(zhǔn)確率很接近,但是殘差網(wǎng)絡(luò)的收斂速度要更快。


Identity vs. Projection Shortcuts—恒等 vs 映射 Shortcuts

翻譯

我們已經(jīng)驗(yàn)證了無參數(shù)的恒等shortcuts是有助于訓(xùn)練的。接下來我們研究映射shortcut(Eq.2)。在Table 3中,我們比較了三種選項(xiàng):
(A) 對增加的維度使用0填充,所有的shortcuts是無參數(shù)的(與Table 2 和 Fig.4 (右)相同);
(B) 對增加的維度使用映射shortcuts,其它使用恒等shortcuts;
(C) 所有的都是映射shortcuts。

Table 3表明了三種選項(xiàng)的模型都比對于的plain模型要好。B略好于A,我們認(rèn)為這是因?yàn)锳中的0填充并沒有進(jìn)行殘差學(xué)習(xí)。C略好于B,我們把這個歸結(jié)于更多的(13個)映射shortcuts所引入的參數(shù)。在A、B、C三個結(jié)果中細(xì)小的差距也表明了映射shortcuts對于解決退化問題并不是必需的。所以我們在本文接下來的內(nèi)容中,為了減少復(fù)雜度和模型尺寸,并不使用選項(xiàng)C的模型。恒等shortcuts因其無額外復(fù)雜度而對以下介紹的瓶頸結(jié)構(gòu)尤為重要。

精讀

無參數(shù)的恒等shortcuts肯定是有助于提高訓(xùn)練效果的,針對映射shortcuts,有三種方法可供選擇:

(1)ResNet - 34 A:?所有的shortcut都使用恒等映射,也就是多出來的通道補(bǔ)0,沒有額外的參

(2)ResNet - 34 B:?對需要調(diào)整維度的使用卷積映射shortcut來實(shí)現(xiàn),不需要調(diào)整維度的使用恒等shortcut,升維的時候使用1 * 1卷積

(3)ResNet - 34 C:?所有的shortcut都使用1 * 1卷積(效果最好,但引入更多的參數(shù),不經(jīng)濟(jì))

下面的表格中表明了三種選項(xiàng)的模型都比plain模型要好,按效果好壞排序?yàn)镃>B>A,

【Table 3 在ImageNet驗(yàn)證集上的錯誤率 (%, 10-crop testing)】

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

B比A好,因?yàn)锳在升維的時候用padding補(bǔ)零,丟失了shortcut學(xué)習(xí),沒有進(jìn)行殘差學(xué)習(xí)

C比B好,因?yàn)镃的13個非下采樣殘差模塊的shortcut都有參數(shù),模型能力比較強(qiáng)

但是ABC都差不多,說明恒等映射的shortcut可以解決退化問題


Deeper Bottleneck Architectures—深度瓶頸結(jié)構(gòu)

翻譯

接下來我們介紹更深的模型??紤]到訓(xùn)練時間的限制,我們將構(gòu)建塊修改成瓶頸的設(shè)計。對于每一個殘差函數(shù)F,我們使用了三個疊加層而不是兩個(Fig.5)。 這三層分別是1*1、3*3 和1*1 的卷積,1*1 的層主要負(fù)責(zé)減少然后增加(恢復(fù))維度,剩下的3*3的層來減少輸入和輸出的維度。Fig.5展示了一個例子,這兩種設(shè)計具有相似的時間復(fù)雜度。

無參數(shù)的恒等shortcuts對于瓶頸結(jié)構(gòu)尤為重要。如果使用映射shortcuts來替代Fig.5(右)中的恒等shortcuts,將會發(fā)現(xiàn)時間復(fù)雜度和模型尺寸都會增加一倍,因?yàn)閟hortcut連接了兩個高維端,所以恒等shortcuts對于瓶頸設(shè)計是更加有效的。

50層 ResNet:我們將34層網(wǎng)絡(luò)中2層的模塊替換成3層的瓶頸模塊,整個模型也就變成了50層的ResNet (Table 1)。對于增加的維度我們使用選項(xiàng)B來處理。整個模型含有38億個FLOPs。

101層和152層 ResNets:我們使用更多的3層模塊來構(gòu)建101層和152層的ResNets (Table 1)。值得注意的是,雖然層的深度明顯增加了,但是152層ResNet的計算復(fù)雜度(113億個FLOPs)仍然比VGG-16(153 億個FLOPs)和VGG-19(196億個FLOPs)的小很多。

50/101/152層ResNets比34層ResNet的準(zhǔn)確率要高得多(Table 3 和4)。而且我們并沒有觀測到退化問題。所有的指標(biāo)都證實(shí)了深度帶來的好處。 (Table 3 和4)。

精讀

接下來介紹層次更多的模型,對于每一個殘差塊,不再使用兩層卷積,而是使用三層卷積來實(shí)現(xiàn),如下圖所示。

50層的殘差網(wǎng)絡(luò):?將其34層的殘差網(wǎng)絡(luò)的2個卷積層替換成了3個bottleneck殘差塊,就變成了50層殘差網(wǎng)絡(luò),下采樣使用的是1 * 1 的卷積

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

?【Table 4?單一模型在ImageNet驗(yàn)證集上的錯誤率(%)(除了?++?是在驗(yàn)證集上的結(jié)果)經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

結(jié)論

50/101/152層的resnet比34層resnet的準(zhǔn)確率要高很多,解決了深層的退化問題。同時即使是152層resnet的計算復(fù)雜度仍然比VGG-16和VGG-19要小。


Comparisons with State-of-the-art Methods—與最優(yōu)秀方法的比較

翻譯

在Table 4中我們比較了目前最好的單模型結(jié)果。我們的34層ResNets取得了非常好的結(jié)果,152層的ResNet的單模型top-5驗(yàn)證錯誤率僅為?4.49%,甚至比先前組合模型的結(jié)果還要好 (Table 5)。我們將6個不同深度的ResNets合成一個組合模型(在提交結(jié)果時只用到2個152層的模型)。這在測試集上的top-5錯誤率僅為3.57%?(Table 5),這一項(xiàng)在ILSVRC 2015 上獲得了第一名的成績。

精讀

將6個不同深度的ResNets合成一個組合模型(在提交結(jié)果時只用到2個152層的模型)。這在測試集上的top-5錯誤率僅為3.57% (Table 5),這一項(xiàng)在ILSVRC 2015 上獲得了第一名的成績。

【Table 5?組合模型在ImageNet測試集上的top-5錯誤率】

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))


4.2. CIFAR-10 and Analysis— CIFAR-10和分析

翻譯

我們在包含5萬張訓(xùn)練圖像和1萬張測試圖像的10類CIFAR-10數(shù)據(jù)集上進(jìn)行了更多的研究。我們在訓(xùn)練集上進(jìn)行訓(xùn)練,在測試集上進(jìn)行驗(yàn)證。我們關(guān)注的是驗(yàn)證極深模型的效果,而不是追求最好的結(jié)果,因此我們只使用簡單的框架如下。

Plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的框架如 Fig.3(中/右)所示。網(wǎng)絡(luò)的輸入是32*32的減掉像素均值的圖像。第一層是3*3的卷積層。然后我們使用6n個3*3的卷積層的堆疊,卷積層對應(yīng)的特征圖有三種:{32,16,8},每一種卷積層的數(shù)量為2n 個,對應(yīng)的濾波器數(shù)量分別為{16,32,64}。使用strde為2的卷積層進(jìn)行下采樣。在網(wǎng)絡(luò)的最后是一個全局的平均pooling層和一個10類的包含softmax的全連接層。一共有6n+2個堆疊的加權(quán)層。

權(quán)重的衰減設(shè)置為0.0001,動量為0.9,采用了He2015Delving中的權(quán)值初始化以及BN,但是不使用Dropout,mini-batch的大小為128,模型在2塊GPU 上進(jìn)行訓(xùn)練。學(xué)習(xí)率初始為0.1,在第32000和48000次迭代時將其除以10,總的迭代次數(shù)為64000,這是由45000/5000的訓(xùn)練集/驗(yàn)證集分配所決定的。我們在訓(xùn)練階段遵循Lee2015deeply中的數(shù)據(jù)增強(qiáng)法則:在圖像的每條邊填充4個像素,然后在填充后的圖像或者它的水平翻轉(zhuǎn)圖像上隨機(jī)采樣一個32*32 的crop。在測試階段,我們只使用原始32*32的圖像進(jìn)行評估。

我們比較了n={3,5,7,9},也就是20、32、44以及56層的網(wǎng)絡(luò)。Fig.6(左) 展示了plain網(wǎng)絡(luò)的結(jié)果。深度plain網(wǎng)絡(luò)隨著層數(shù)的加深,訓(xùn)練錯誤率也變大。這個現(xiàn)象與在ImageNet(Fig.4, 左)和MNIST上的結(jié)果很相似,表明了優(yōu)化上的難度確實(shí)是一個很重要的問題。

Fig.6(中)展示了ResNets的效果。與ImageNet(Fig.4, 右)中類似,我們的ResNets能夠很好的克服優(yōu)化難題,并且隨著深度加深,準(zhǔn)確率也得到了提升。

我們進(jìn)一步探索了n=18,也就是110層的ResNet。在這里,我們發(fā)現(xiàn)0.1的初始學(xué)習(xí)率有點(diǎn)太大而不能很好的收斂。所以我們剛開始使用0.01的學(xué)習(xí)率,當(dāng)訓(xùn)練錯誤率在80%以下(大約400次迭代)之后,再將學(xué)習(xí)率調(diào)回0.1繼續(xù)訓(xùn)練。剩余的學(xué)習(xí)和之前的一致。110層的ResNets很好的收斂了 (Fig.6, 中)。它與其他的深層窄模型,如FitNet和 Highway (Table 6)相比,具有更少的參數(shù),然而卻達(dá)到了最好的結(jié)果 (6.43%, Table 6)。

精讀

CIFAR-10 數(shù)據(jù)集:50w的訓(xùn)練集,10w的測試集,一共10個類別

對比plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的做法

(1)輸入的圖像為32*32的像素,此時的圖像做了預(yù)處理(每個像素減去均值)

(2)第一個卷積層為3*3 ,使用6n的卷積層,分別都是3*3的,feature map為(3232/1616/ 8*8)。一共有6n+2的卷積層(最后一層為池化層:1 +2n,2n,2n,1)

(3)卷積核個數(shù)分別為16/32/64,feature map個數(shù)減半,channel數(shù)翻倍

Q:為什么下采樣之后feature map尺寸減半,通道個數(shù)翻倍?

因?yàn)槌鼗瘯岄L寬方向減半,卷積核個數(shù)對應(yīng)通道加倍(詳情見《MobileNet》)

下采樣用的是步長為2的卷積,最后加一個全局池化,10個神經(jīng)元的全連接層和softmax

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

(1)殘差是由2層神經(jīng)網(wǎng)絡(luò)(每一個shortcut都由3 * 3的卷積組成)來擬合的,總共有6n,所以一共有3n的shortcut。

(2)下采樣是由0補(bǔ)充(下采樣的殘差和不帶殘差的計算量是一樣的)

(3)訓(xùn)練過程中的正則化為0.0001 ,動量化為0.9 ,論文中提出的權(quán)重進(jìn)行初始化,使用了BN沒有使用dropout,批次處理為128,起始的學(xué)習(xí)率為0.1,在3.2w和4.8w迭代時除以10,最終在6.4w終止訓(xùn)練

(4)把訓(xùn)練集劃分為4.5w訓(xùn)練和5k的驗(yàn)證,使用圖像增強(qiáng)方法,分別在圖像外邊補(bǔ)4個pixel,再用32 *32 的圖像進(jìn)行剪裁(水平翻轉(zhuǎn)的圖像增強(qiáng))。測試的時候,直接使用32 * 32的圖像進(jìn)行測試即可

【圖6:CIFAR-10培訓(xùn)。虛線表示訓(xùn)練錯誤,粗體表示測試錯誤。左:plain。plain-110的誤差大于60%,不顯示。中間:ResNets。右圖:ResNets110層和1202層?!?/p>

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))


Analysis of Layer Responses—分析每一層的網(wǎng)絡(luò)的響應(yīng)分布?

翻譯

Fig.7展示了層響應(yīng)的標(biāo)準(zhǔn)方差(std)。 響應(yīng)是每一個3*3卷積層的BN之后、非線性層(ReLU/addition)之前的輸出。對于ResNets,這個分析結(jié)果也揭示了殘差函數(shù)的響應(yīng)強(qiáng)度。Fig.7表明了ResNets的響應(yīng)比它對應(yīng)的plain網(wǎng)絡(luò)的響應(yīng)要小。這些結(jié)果也驗(yàn)證了我們的基本動機(jī)(Sec3.1),即殘差函數(shù)比非殘差函數(shù)更接近于0。從Fig.7中ResNet-20、56和110的結(jié)果,我們也注意到,越深的ResNet的響應(yīng)幅度越小。當(dāng)使用更多層是,ResNets中單個層對信號的改變越少。

精讀

殘差網(wǎng)絡(luò)是修正輸入。響應(yīng)的標(biāo)準(zhǔn)差如下圖:

【圖7:CIFAR- 10層響應(yīng)的標(biāo)準(zhǔn)偏差(std)。響應(yīng)為BN后和非線性前各33層的輸出。頂部:圖層按原來的順序顯示。底部:響應(yīng)按降序排列?!?/p>

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

方法

BN處理,均值已被調(diào)整為0。標(biāo)準(zhǔn)差衡量數(shù)據(jù)的離散程度(標(biāo)準(zhǔn)差越大,表明響應(yīng)越大) 響應(yīng)是每一層都是3 * 3的卷積層,介于BN后和激活之前。

結(jié)論

(1)ResNets的響應(yīng)比它對應(yīng)的plain網(wǎng)絡(luò)的響應(yīng)要小

(2)殘差函數(shù)比非殘差函數(shù)更接近于0

(3)越深的ResNet的響應(yīng)幅度越小

(4)越靠近起始層,輸出越大


Exploring Over 1000 layers—過深層網(wǎng)絡(luò)

翻譯

我們探索了一個超過1000層的極其深的模型。我們設(shè)置n=200,也就是1202層的網(wǎng)絡(luò)模型,按照上述進(jìn)行訓(xùn)練。我們的方法對103103層的模型并不難優(yōu)化,并且達(dá)到了<0.1%的訓(xùn)練錯誤率(Fig.6, 右),它的測試錯誤率也相當(dāng)?shù)?7.93%, Table 6)。

但是在這樣一個極其深的模型上,仍然存在很多問題。1202層模型的測試結(jié)果比110層的結(jié)果要差,盡管它們的訓(xùn)練錯誤率差不多。我們認(rèn)為這是過擬合導(dǎo)致的。這樣一個1202層的模型對于小的數(shù)據(jù)集來說太大了(19.4M)。在這個數(shù)據(jù)集上應(yīng)用了強(qiáng)大的正則化方法,如maxout或者 dropout,才獲得了最好的結(jié)果。

本文中,我們并沒有使用maxout/dropout,只是簡單的通過設(shè)計深層窄模型來進(jìn)行正則化,而且不用擔(dān)心優(yōu)化的難度。但是通過強(qiáng)大的正則化或許能夠提高實(shí)驗(yàn)結(jié)果,我們會在以后進(jìn)行研究。

精讀

取n等于200 ,也就是1202的殘差卷積網(wǎng)絡(luò)(6 * 200 + 2),和之前的訓(xùn)練方式一樣,誤差小于0.1,表明了沒有退化,沒優(yōu)化困難。

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

但測試集的性能沒有110層的好,文中表明這是過擬合了(模型太深參數(shù)過多,對于這個小數(shù)據(jù)集沒有必要)

此論文沒有使用maxout或者是dropout來正則化,因?yàn)楹诵娜蝿?wù)是為了解決退化問題。


4.3. Object Detection on PASCAL and MS COCO—PASCAL和MS COCO上的對象檢測

翻譯

我們的方法在其它識別任務(wù)上展現(xiàn)出了很好的泛化能力。Table 7和8展示了在PASCAL VOC 2007 和 2012以及 COCO上的目標(biāo)檢測結(jié)果。我們使用Faster R-CNN作為檢測方法。在這里,我們比較關(guān)注由ResNet-101 替換VGG-16所帶來的的提升。使用不同網(wǎng)絡(luò)進(jìn)行檢測的實(shí)現(xiàn)是一樣的,所以檢測結(jié)果只能得益于更好的網(wǎng)絡(luò)。最值得注意的是,在COCO數(shù)據(jù)集上,我們在COCO的標(biāo)準(zhǔn)指標(biāo)(mAP@[.5, .95])上比先前的結(jié)果增加了6.0%,這相當(dāng)于28%的相對提升。而這完全得益于所學(xué)到的表達(dá)。

基于深度殘差網(wǎng)絡(luò),我們在ILSVRC & COCO 2015競賽的ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上獲得了第一名。

精讀

【Table 7 在PASCAL VOC 2007/2012測試集上使用Faster R-CNN的目標(biāo)檢測 mAP (%)。有關(guān)更好的結(jié)果,請參見附錄?!?/p>

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

【Table 8 在COCO 驗(yàn)證集上使用Faster R-CNN的目標(biāo)檢測 mAP (%)?!?/p>

經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))

基于深度殘差網(wǎng)絡(luò),我們在ILSVRC & COCO 2015競賽的ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上獲得了第一名。


論文十問

Q1:論文試圖解決什么問題?

該論文主要解決的深層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練問題。隨著網(wǎng)絡(luò)的深度的增加,模型的效果反而變差了,論文提出了殘差學(xué)習(xí)的方式來訓(xùn)練深層的神經(jīng)網(wǎng)絡(luò)。

Q2:這是否是一個新的問題?

不是新問題,是優(yōu)化問題

Q3:這篇文章要驗(yàn)證一個什么科學(xué)假設(shè)?

研究深度模型中的退化問題,累積的非線性層可能難以學(xué)習(xí)到線性映射

Q4:有哪些相關(guān)研究?如何歸類?誰是這一課題在領(lǐng)域內(nèi)值得關(guān)注的研究員?

  • 為了求解偏微分方程(PDEs),通常使用Multigrid法將系統(tǒng)重新表達(dá)成多尺度的子問題來解決。數(shù)學(xué)類問題。
  • 附錄部分,作者針對ResNet在目標(biāo)檢測、目標(biāo)定位上的應(yīng)用進(jìn)行了研究。

Q5:論文中提到的解決方案之關(guān)鍵是什么?

ResNet 其實(shí)就是通過shortcut connections,將x直接傳遞到后面的層,使得網(wǎng)絡(luò)可以很容易的學(xué)習(xí)恒等變換,從而解決網(wǎng)絡(luò)退化的問題,同時也使得學(xué)習(xí)效率更高。

Q6:論文中的實(shí)驗(yàn)是如何設(shè)計的?

1.ImageNet2012:

  • 首先對plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)分別訓(xùn)練,對比它們不同層在訓(xùn)練集和測試集的誤差,以及是否退化。
  • 然后恒等 vs 映射 Shortcuts
  • 接著加深深度,對改進(jìn)后的殘差網(wǎng)絡(luò)訓(xùn)練和評估錯誤率
  • 最后和VGG、GoogLeNet等優(yōu)秀方法對比

2.CIFAR-10:

  • 首先對plain網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)分別訓(xùn)練,對比它們不同層在訓(xùn)練集和測試集的誤差,以及是否退化。
  • 然后研究更深的模型

3.PASCAL和MS COCO:

和VGG對比

Q7:用于定量評估的數(shù)據(jù)集是什么?代碼有沒有開源?

ImageNet2012、CIFAR-10、PASCAL VOC 2007,2012、COCO

開源

Q8:論文中的實(shí)驗(yàn)及結(jié)果有沒有很好地支持需要驗(yàn)證的科學(xué)假設(shè)?

支持了,解決了退化的問題,也取得了第一。

Q9:這篇論文到底有什么貢獻(xiàn)?

1.研究深度模型中的退化問題,提出了ResNet網(wǎng)絡(luò)

2.提出了殘差學(xué)習(xí),助力深度模型的學(xué)習(xí),且沒有增加學(xué)習(xí)的參數(shù)

3.ResNet為目標(biāo)檢測和目標(biāo)定位提供了優(yōu)化思路

Q10:下一步呢?有什么工作可以繼續(xù)深入?

1.網(wǎng)絡(luò)收斂率問題需要繼續(xù)探究。?plain層我們推測,深層的plain網(wǎng)絡(luò)的收斂率是指數(shù)衰減的,這可能會影響訓(xùn)練錯誤率的降低。這種優(yōu)化困難的原因我們將在以后的工作中進(jìn)行研究。

2.解決過深層退化問題。?ResNet在1202層的優(yōu)化不再明顯反而還出現(xiàn)了退化。


對于《Deep Residual Learning for Image Recognition》 這篇論文的學(xué)習(xí)我們就到這里了。這篇論文的附錄部分有講解ResNet在目標(biāo)檢測和目標(biāo)定位方面的研究,感興趣的同學(xué)可以看看~

代碼復(fù)現(xiàn)請看:ResNet代碼復(fù)現(xiàn)+超詳細(xì)注釋(PyTorch)

下篇預(yù)告:DenseNet文章來源地址http://www.zghlxwxcb.cn/news/detail-474302.html

到了這里,關(guān)于經(jīng)典神經(jīng)網(wǎng)絡(luò)論文超詳細(xì)解讀(五)——ResNet(殘差網(wǎng)絡(luò))學(xué)習(xí)筆記(翻譯+精讀+代碼復(fù)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深度學(xué)習(xí)圖像分類實(shí)戰(zhàn)——pytorch搭建卷積神經(jīng)網(wǎng)絡(luò)(AlexNet, LeNet, ResNet50)進(jìn)行場景圖像分類(詳細(xì))

    深度學(xué)習(xí)圖像分類實(shí)戰(zhàn)——pytorch搭建卷積神經(jīng)網(wǎng)絡(luò)(AlexNet, LeNet, ResNet50)進(jìn)行場景圖像分類(詳細(xì))

    目錄 1??一、實(shí)驗(yàn)過程 1.1??實(shí)驗(yàn)?zāi)康?1.2??實(shí)驗(yàn)簡介 1.3??數(shù)據(jù)集的介紹 1.4??一、LeNet5網(wǎng)絡(luò)模型 1.5??二、AlexNet網(wǎng)絡(luò)模型 1.6??三、ResNet50(殘差網(wǎng)絡(luò))網(wǎng)絡(luò)模型 ?二、實(shí)驗(yàn)代碼 導(dǎo)入實(shí)驗(yàn)所需要的庫 ?參數(shù)配置 數(shù)據(jù)預(yù)處理 重新DataSet 加載數(shù)據(jù)轉(zhuǎn)為DataLoader函數(shù) 可視化一批訓(xùn)練

    2024年02月05日
    瀏覽(28)
  • 深度學(xué)習(xí)論文解讀分享之diffGrad:一種卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化方法

    深度學(xué)習(xí)論文解讀分享之diffGrad:一種卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化方法

    diffGrad: An Optimization Method for Convolutional Neural Networks Shiv Ram Dubey , Member, IEEE, Soumendu Chakraborty , Swalpa Kumar Roy , Student Member, IEEE, Snehasis Mukherjee, Member, IEEE, Satish Kumar Singh, Senior Member, IEEE, and Bidyut Baran Chaudhuri, Life Fellow, IEEE Adaptive moment estimation (Adam), difference of gradient, gradient descent,

    2024年01月17日
    瀏覽(23)
  • 輕量級卷積神經(jīng)網(wǎng)絡(luò)MobileNets詳細(xì)解讀

    輕量級卷積神經(jīng)網(wǎng)絡(luò)MobileNets詳細(xì)解讀

    隨著深度學(xué)習(xí)的飛速發(fā)展,計算機(jī)視覺領(lǐng)域內(nèi)的卷積神經(jīng)網(wǎng)絡(luò)種類也層出不窮。從1998年的LeNet網(wǎng)絡(luò)到2012引起深度學(xué)習(xí)熱潮年的AlexNet網(wǎng)絡(luò),再到2014年的VGG網(wǎng)絡(luò),再到后來2015的ResNet網(wǎng)絡(luò),深度學(xué)習(xí)網(wǎng)絡(luò)在圖像處理上表現(xiàn)得越來越好。但是這些網(wǎng)絡(luò)都在不斷增加網(wǎng)絡(luò)深度和寬度來

    2024年02月04日
    瀏覽(24)
  • 高光譜分類論文解讀分享之基于形態(tài)卷積神經(jīng)網(wǎng)絡(luò)的高光譜影像分類

    高光譜分類論文解讀分享之基于形態(tài)卷積神經(jīng)網(wǎng)絡(luò)的高光譜影像分類

    Morphological Convolutional Neural Networks for Hyperspectral Image Classification Swalpa Kumar Roy; Ranjan Mondal; Mercedes E. Paoletti; Juan M. Haut; Antonio Plaza Classification, convolutional neural networks (CNNs), deep learning (DL), hyperspectral images (HSIs), latent feature space transfer, morphological transformations. 在卷積中嵌入形態(tài)學(xué)運(yùn)算

    2024年01月17日
    瀏覽(16)
  • 現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)(ResNet)

    現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)(ResNet)

    專欄:神經(jīng)網(wǎng)絡(luò)復(fù)現(xiàn)目錄 本章介紹的是現(xiàn)代神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和復(fù)現(xiàn),包括深度卷積神經(jīng)網(wǎng)絡(luò)(AlexNet),VGG,NiN,GoogleNet,殘差網(wǎng)絡(luò)(ResNet),稠密連接網(wǎng)絡(luò)(DenseNet)。 文章部分文字和代碼來自《動手學(xué)深度學(xué)習(xí)》 殘差網(wǎng)絡(luò)(Residual Network,簡稱 ResNet)是由微軟研究院于

    2024年02月07日
    瀏覽(17)
  • ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記

    ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記

    ResNet50卷積神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)形參分析-筆記 ResNet50包含多個模塊,其中第2到第5個模塊分別包含3、4、6、3個殘差塊 50=49個卷積(3+4+6+3)*3+1和一個全連接層 分析結(jié)果為: 輸入數(shù)據(jù)形狀:[10, 3, 224, 224] 最后輸出結(jié)果:linear_0 [10, 1] [2048, 1] [1] ResNet50包含多個模塊,其中第2到第5個模

    2024年02月14日
    瀏覽(59)
  • 62、python - 全手寫搭建 resnet50 神經(jīng)網(wǎng)絡(luò)

    如果將上篇文章中涉及到的算法都自己手寫完一遍后,我們開始嘗試?yán)米约菏謱懙乃惴?,搭建一個完整的 resnet50 神經(jīng)網(wǎng)絡(luò)。 網(wǎng)絡(luò)結(jié)構(gòu)就參考這個鏈接中的網(wǎng)絡(luò)結(jié)構(gòu),是在之前下載模型的章節(jié)中,下載的模型。 為了搭建一個完整的神經(jīng)網(wǎng)絡(luò),定義一個 Resnet 的類,這個類就

    2024年01月24日
    瀏覽(17)
  • 【神經(jīng)網(wǎng)絡(luò)】(10) Resnet18、34 殘差網(wǎng)絡(luò)復(fù)現(xiàn),附python完整代碼

    【神經(jīng)網(wǎng)絡(luò)】(10) Resnet18、34 殘差網(wǎng)絡(luò)復(fù)現(xiàn),附python完整代碼

    各位同學(xué)好,今天和大家分享一下 TensorFlow 深度學(xué)習(xí) 中如何搭載 Resnet18 和 Resnet34 殘差神經(jīng)網(wǎng)絡(luò),殘差網(wǎng)絡(luò) 利用 shotcut 的方法成功解決了網(wǎng)絡(luò)退化的問題 ,在訓(xùn)練集和校驗(yàn)集上,都證明了的更深的網(wǎng)絡(luò)錯誤率越小。 論文中給出的具體的網(wǎng)絡(luò)結(jié)構(gòu)如下: Resnet50 網(wǎng)絡(luò)結(jié)構(gòu) 我已

    2023年04月08日
    瀏覽(21)
  • MATLAB卷積神經(jīng)網(wǎng)絡(luò)——基于ResNet-50進(jìn)行圖像分類

    MATLAB卷積神經(jīng)網(wǎng)絡(luò)——基于ResNet-50進(jìn)行圖像分類

    一、ResNet50工具箱安裝 (1)下載工具箱 https://ww2.mathworks.cn/matlabcentral/fileexchange/64626-deep-learning-toolbox-model-for-resnet-50-network (2)在matlab打開下載的resnet50.mlpkginstall文件 (3)使用下面代碼進(jìn)行測試,出現(xiàn)結(jié)果說明安裝成功 二、訓(xùn)練貓狗數(shù)據(jù)集 (1)數(shù)據(jù)集下載鏈接: ?? http

    2024年02月21日
    瀏覽(22)
  • 深度學(xué)習(xí)實(shí)戰(zhàn)——卷積神經(jīng)網(wǎng)絡(luò)/CNN實(shí)踐(LeNet、Resnet)

    深度學(xué)習(xí)實(shí)戰(zhàn)——卷積神經(jīng)網(wǎng)絡(luò)/CNN實(shí)踐(LeNet、Resnet)

    ??? ? 憶如完整項(xiàng)目/代碼詳見github: https://github.com/yiru1225 (轉(zhuǎn)載標(biāo)明出處 勿白嫖 star for projects thanks) 本系列博客重點(diǎn)在深度學(xué)習(xí)相關(guān)實(shí)踐(有問題歡迎在評論區(qū)討論指出,或直接私信聯(lián)系我)。 第一章??深度學(xué)習(xí)實(shí)戰(zhàn)——不同方式的模型部署(CNN、Yolo)_如何部署cnn_

    2023年04月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包