日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ResNet解析(二)

發(fā)布時(shí)間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ResNet解析(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載:https://blog.csdn.net/xxy0118/article/details/78324256/
本文結(jié)構(gòu):

我的閱讀筆記 1.ResNet之Building block 2.ResNet之CIFAR-10實(shí)驗(yàn)結(jié)構(gòu) 其他資料 1.ResNet作者何凱明博士在ICML2016上的tutorial演講 2.Bottleneck 3.diss ResNet的論文 論文翻譯
———————————————————————————————————————

我的閱讀筆記

1.ResNet之Building block

以下內(nèi)容為我的理解,如有不正確的地方,還望各位大神指導(dǎo)!


如圖所示為截選自ResNet-34的部分Buildingblock,論文作者對于identiy shortcut和projection shortcut的兩種options的描述,讓我困惑了很久,一直在糾結(jié)到底為什么經(jīng)過了3×3的卷積層以后,仍然能夠保持輸入輸出的一致?

以下是我對這個(gè)問題的理解:

首先,為了方便,我將buildingblock區(qū)分為兩類:

a.??????第一類Building block(BB1)如上圖中實(shí)線部分的building block所示,特點(diǎn)為輸入輸出的維度一致,特征圖個(gè)數(shù)也一致;

b.??????第二類Building block(BB2)如上圖虛線部分的building block所示,特點(diǎn)為輸出是輸入維度的1/2,輸出特征圖個(gè)數(shù)是輸入特征圖個(gè)數(shù)的2倍(即執(zhí)行了/2操作)。

區(qū)分了兩類Building block后,來來來跟我一起仔細(xì)讀一下論文:

1. “The identity shortcuts (Eqn.(1)) can be directly used when theinput and output are of the same dimensions (solid line shortcuts in Fig. 3).”


What?對于BB1,讓我直接相加?輸入都經(jīng)過兩次3×3的卷積操作了啊喂,維度不一樣怎么相加!好吧,經(jīng)過查閱資料,作者可能委婉的表達(dá)了中間過程,但是我沒有發(fā)現(xiàn)吧。我琢磨著中間過程應(yīng)該如下所示:


好啦,這下可以“can bedirectly used”了。接著讀論文:

2. “When the dimensions increase (dotted line shortcuts in Fig. 3),we consider two options:?(A) The shortcut still performs identity mapping, withextra zero entries padded for increasing dimensions. This option introduces noextra parameter;?(B) The projection shortcut in Eqn.(2) is used to matchdimensions (done by 1×1 convolutions).?For both options, when the shortcuts goacross feature maps of two sizes, they are performed with a stride of 2.”

對于BB2,作者提供了兩種選擇:(A)如BB1的處理一樣,0填充技術(shù),只是要填充好多0啊,這也是為什么得到實(shí)驗(yàn)4.1中的ResidualNetworks部分的“B is slightly better than A. We argue that this is because thezero-padded dimensions in A indeed have no residual learning.”的結(jié)論(P6右側(cè)中間)。(B)采用公式(2)的projectionshortcut,讓W(xué)s與輸入做步長為2的1×1的卷積操作,這樣,輸入和輸出就具有相同的維數(shù),接下來在進(jìn)行相加操作就OK啦!過程如下圖所示:

2.ResNet之CIFAR-10實(shí)驗(yàn)結(jié)構(gòu)

哎呀,對于我的理解能力來說,作者對基于ResNet的CIFAR-10的實(shí)驗(yàn)網(wǎng)絡(luò)結(jié)構(gòu)描述的太混亂了!好不容易才搞清楚的。以n=3,20層的ResNet為例,具體結(jié)構(gòu)如下表所示:

Output map size


Output_size


20-layer ResNet


Conv1


32×32


{3×3,16}


Conv2_x


32×32


{3×3,16; 3×3,16}×3


Conv3_x


16×16


{3×3,32; 3×3,32}×3


Conv4_x


8×8


{3×3,64; 3×3,64}×3


InnerProduct


1×1


Average pooling 10-d fc


?

其他資料

1.ResNet作者何凱明博士在ICML2016上的tutorial演講

https://www.leiphone.com/news/201608/vhqwt5eWmUsLBcnv.html

本文為何凱明博士在ICML2016上的tutorial演講以及相關(guān)PPT整理。里面的翻譯有少量的錯(cuò)誤,例如solution 應(yīng)翻譯為“解”,plain net應(yīng)翻譯為“普通網(wǎng)絡(luò)”。

Resnet在ILSVRC 和COCO 2015上的五個(gè)主要任務(wù)軌跡中都獲得了第一名的成績,而且遠(yuǎn)超過第二名。


大多數(shù)網(wǎng)絡(luò)模型隨著網(wǎng)絡(luò)深度的增加,準(zhǔn)確率會(huì)趨于飽和,并且快速下降。但作者認(rèn)為這并不僅僅是overfitting的原因,也是由于某些模型加深本身會(huì)導(dǎo)致增加訓(xùn)練誤差。

ResNet的核心思想是:計(jì)算層到層的殘差,即F(x),以F(x)+x作為輸出。其特點(diǎn)為:A simple and clean framework of training “very” deep nets。

簡單介紹一下RestNet的細(xì)節(jié):

①??在許多數(shù)據(jù)集中都能夠觀察到的普遍現(xiàn)象就是過深的普通網(wǎng)絡(luò)具有更高的訓(xùn)練誤差。但是,一個(gè)較深的模型理應(yīng)具有更高的準(zhǔn)確率。關(guān)于普通網(wǎng)絡(luò)和Residual Net如下圖所示:


②??Residual Net:H(x)是輸出,希望2層權(quán)重能夠擬合F(x),使得:

H(x)=F(x)+x

F(x)是一個(gè)關(guān)于恒等式殘差的映射。

a.??????If identity were optimal, easyto set weights as 0;

b.??????If optimal mapping is closer toidentity, easier to find small fluctuations.

③??網(wǎng)絡(luò)設(shè)計(jì):

a.??????全部采用3×3 conv操作(或者大部分采用)

b.??????Spatial size /2 -> # filter×2

c.??????沒有FC層和Dropout層

④??實(shí)驗(yàn)結(jié)果表明,ResNet能夠在沒有任何困難的情況下得到訓(xùn)練,并且實(shí)現(xiàn)更深的網(wǎng)絡(luò)結(jié)構(gòu)使其達(dá)到更低的訓(xùn)練誤差和測試誤差。

⑤??受設(shè)備計(jì)算能力限制,作者也提出了另一個(gè)與原始ResNet復(fù)雜度相同的BottleNeck模型,它是一個(gè)逐層深入且實(shí)際可行的方案。詳細(xì)細(xì)節(jié)參考2.的鏈接及內(nèi)容。

⑥??作者分析了學(xué)習(xí)深度學(xué)習(xí)模型存在的問題和本文提出的對策:

a.??????表征能力:ResNet在表征能力上不存在明顯優(yōu)勢(只是重復(fù)的參數(shù)化),但是,能夠使加深模型變得切實(shí)可行;

b.??????優(yōu)化能力:能夠使前向/反向傳播算法更加平穩(wěn),極大程度簡化/減輕(DBA)優(yōu)化深度模型;

c.??????一般化(Generalization)能力:ResNet未直接處理一般化問題,但是更深+更薄是一種很好的一般化手段。

以上對ResNet做了簡要介紹,了解到ResNet在加深網(wǎng)絡(luò)模型,提高學(xué)習(xí)任務(wù)準(zhǔn)確率等方面都有很大的優(yōu)勢,不過也剛巧在學(xué)習(xí)本論文的當(dāng)天就閱讀到推送的一篇論文,對ResNet提出質(zhì)疑并進(jìn)行了證明,詳細(xì)信息參考鏈接3.

2.Bottleneck

http://www.jianshu.com/p/e502e4b43e6d

作者主要介紹了ResNet的DeeperBottleneck Architectures(DBA),一個(gè)DBA共3×3=9層。如下圖:


本文作者參考Ryan Dahl的源碼(https://github.com/ry/tensorflow-resnet),畫出了DBA內(nèi)部網(wǎng)絡(luò)的前三層,如下圖所示:


注意,56*56的map經(jīng)過3*3的卷積核后輸出仍然是56*56的原因是兩邊是有補(bǔ)零的,來保證尺寸大小不變。

?

3.diss ResNet的論文

http://www.jianshu.com/p/e502e4b43e6d

作者介紹,CornellUniversity的幾個(gè)人研究了ResNet,發(fā)現(xiàn)它所謂的“超深網(wǎng)絡(luò)”只是個(gè)噱頭,并在NIPS上發(fā)表論文《Residual Networks are Exponential Ensembles of Relatively ShallowNetworks》,表明ResNet并不深,它本質(zhì)上是一堆淺層網(wǎng)絡(luò)的集合。


一個(gè)擁有三個(gè)block的ResNet可以展開為上右圖的形式,類似于多個(gè)網(wǎng)絡(luò)的ensemble形態(tài),所以精度很高。

①??論文作者證明,少個(gè)block情況下,對ResNet影響甚微,與之相比,VGGNet識(shí)別率慘不忍睹。因?yàn)?#xff0c;多線網(wǎng)絡(luò)少個(gè)block,網(wǎng)絡(luò)仍然是通的,單線網(wǎng)絡(luò)少個(gè)block,網(wǎng)絡(luò)斷開。


②??繼網(wǎng)絡(luò)的“深度”和“寬度”兩項(xiàng)指標(biāo)之后,作者根據(jù)網(wǎng)絡(luò)包含的“子網(wǎng)絡(luò)”數(shù)量,提出了一個(gè)新指標(biāo)——multiplicity

摘要

越深層次的神經(jīng)網(wǎng)絡(luò)越難以訓(xùn)練。我們提供了一個(gè)殘差學(xué)習(xí)框架,以減輕對網(wǎng)絡(luò)的訓(xùn)練,這些網(wǎng)絡(luò)的深度比以前的要大得多。我們明確地將這些層重新規(guī)劃為通過參考輸入層x,學(xué)習(xí)殘差函數(shù),來代替沒有參考的學(xué)習(xí)函數(shù)。

我們提供了綜合的經(jīng)驗(yàn)證據(jù),表明殘差網(wǎng)絡(luò)更容易優(yōu)化,并且可以從顯著增加的深度中獲得準(zhǔn)確性。在ImageNet數(shù)據(jù)集上,我們對剩余的網(wǎng)進(jìn)行評估,其深度為152層,比VGG網(wǎng)41層更深,但仍可以保證有較低的復(fù)雜度。結(jié)合這些殘差網(wǎng)絡(luò)在ImageNet測試集上獲得了3.57%的誤差,這一結(jié)果在ILSVRC2015分類任務(wù)中獲得了第一名。我們還對cifar 10進(jìn)行了100和1000層的分析。

對于許多視覺識(shí)別任務(wù)來說,特征表達(dá)的深度是至關(guān)重要的。僅僅由于我們的極深的表示,我們在COCO目標(biāo)檢測數(shù)據(jù)集上獲得了28%的相對改進(jìn)。深度殘差網(wǎng)絡(luò)是我們參加LSVRC&COCO 2015比賽的基礎(chǔ),我們還贏得了ImageNet檢測、ImageNet本地化、可可檢測和可可分割等任務(wù)的第1個(gè)位置。

?

1. 引言

深度卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)為圖像分類帶來了一系列突破。網(wǎng)絡(luò)深度是至關(guān)重要的。

在深度重要性的驅(qū)使下,一個(gè)問題出現(xiàn)了:學(xué)習(xí)更好的網(wǎng)絡(luò)是否像堆更多的層一樣簡單?回答這個(gè)問題的一個(gè)障礙是眾所周知的“梯度消失/爆炸”,這阻礙了從一開始就收斂。然而,這個(gè)問題主要通過規(guī)范化的初始化和中間的標(biāo)準(zhǔn)化層(Batch Normalization)來解決,這使得具有數(shù)十層的網(wǎng)絡(luò)通過隨機(jī)梯度下降(SGD)方法可以開始收斂。

當(dāng)更深的網(wǎng)絡(luò)能夠開始收斂時(shí),退化問題就暴露出來了:隨著網(wǎng)絡(luò)深度的增加,準(zhǔn)確度就會(huì)飽和(這可能不足為奇),然后就會(huì)迅速下降。出乎意料的是,這種退化不是由過度擬合造成的,并且在適當(dāng)?shù)纳疃饶P椭屑尤敫嗟膶訒?huì)導(dǎo)致更高的訓(xùn)練錯(cuò)誤,正如我們的實(shí)驗(yàn)所證實(shí)的那樣。

(訓(xùn)練精度的)退化表明不是所有的系統(tǒng)都同樣易于優(yōu)化。讓我們考慮一個(gè)較淺的架構(gòu),以及在它上面添加了更多的層的深層的架構(gòu)。有一種解決方案可以通過構(gòu)建到更深層次的模型(解決優(yōu)化問題):增加的層是恒等映射,而其他層則是從學(xué)習(xí)的淺模型中復(fù)制出來的。這種構(gòu)造方法表明,一個(gè)較深的模型不應(yīng)產(chǎn)生比較淺的模型更高的訓(xùn)練誤差。但實(shí)驗(yàn)表明,我們現(xiàn)有的解決方案無法找到比這個(gè)構(gòu)建方案好或更好的解決方案(或者在可行的時(shí)間內(nèi)無法做到這一點(diǎn))。

本文通過引入一個(gè)深層殘差學(xué)習(xí)框架來解決退化問題。我們沒有希望每一層都直接匹配所需的潛在映射,而是明確地讓這些層適合一個(gè)殘差映射。在形式上,將所需的潛在映射表示為H(x),我們讓堆疊的非線性層適合另一個(gè)映射F(x)=H(x)-x。原來的映射被重新定義為F(x)+x。我們假設(shè)優(yōu)化殘差映射比優(yōu)化原始的映射更容易。在極端情況下,如果一個(gè)標(biāo)識(shí)映射是最優(yōu)的,那么將殘差值推到零將比通過一堆非線性層來匹配一個(gè)恒等映射更容易。

F(x)+x的表達(dá)式可以通過使用“shortcut connections”的前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)(圖2)。“shortcutconnections”是跳過一個(gè)或多個(gè)層。在我們的例子中,“shortcut connections”簡單地執(zhí)行恒等,它們的輸出被添加到疊加層的輸出中(圖2)。恒等的“shortcut connections”既不增加額外參數(shù),也不增加計(jì)算復(fù)雜度。整個(gè)網(wǎng)絡(luò)仍然可以通過SGD對反向傳播進(jìn)行端到端訓(xùn)練,并且可以在不修改解決方案的情況下使用公共庫輕松實(shí)現(xiàn)。

我們對ImageNet進(jìn)行了全面的實(shí)驗(yàn),以顯示其退化問題,并對其進(jìn)行了評價(jià)。我們證明:1)我們極深的殘差網(wǎng)絡(luò)很容易優(yōu)化,但是當(dāng)深度增加時(shí),對應(yīng)的普通網(wǎng)(簡單的疊層)顯示出更高的訓(xùn)練錯(cuò)誤;2)我們的深層殘差網(wǎng)可以很容易地從深度的增加中獲得精確的增益,產(chǎn)生的結(jié)果比以前的網(wǎng)絡(luò)要好得多。

?

2. 相關(guān)工作

殘差表達(dá)

在圖像識(shí)別中,VLAD是一種由殘差向量關(guān)于字典的編碼表示,而Fisher Vector可以被定義為VLAD的概率版本。它們都是圖像檢索和分類的強(qiáng)大的淺層表示。對于向量化,編碼殘差向量比編碼原始向量更有效。

在低層次的視覺和計(jì)算機(jī)圖形學(xué)中,為了解決偏微分方程(PDEs),被廣泛使用的多網(wǎng)格法將系統(tǒng)重新設(shè)計(jì)成多個(gè)尺度下的子問題,每個(gè)子問題負(fù)責(zé)一個(gè)較粗的和更細(xì)的尺度之間的殘差解。多網(wǎng)格的另一種選擇是分層基礎(chǔ)的預(yù)處理,它依賴于在兩個(gè)尺度之間表示殘差向量的變量。研究表明,這些(轉(zhuǎn)化成多個(gè)不同尺度的子問題,求殘差解的)解決方案的收斂速度遠(yuǎn)遠(yuǎn)快于那些不知道殘差的標(biāo)準(zhǔn)解決方案。這些方法表明,良好的重構(gòu)或預(yù)處理可以簡化優(yōu)化問題。

?

Shortcut Connections

與我們的工作同時(shí),HighwayNetworks提供了與門控功能的shortcut connection。這些門是數(shù)據(jù)相關(guān)的,并且有參數(shù),這與我們的恒等shortcut connection是無參數(shù)的。當(dāng)一個(gè)封閉的shortcut connection被關(guān)閉(接近于零)時(shí),highway networks中的層代表了無殘差的函數(shù)。相反,我們的公式總是學(xué)習(xí)殘差函數(shù);我們的恒等shortcut connection永遠(yuǎn)不會(huì)關(guān)閉,在學(xué)習(xí)其他殘差函數(shù)的同時(shí),所有的信息都會(huì)被傳遞。此外,highway networks還沒有顯示出從增加深度而獲得的準(zhǔn)確率的增長(例如:,超過100層)。

?

3. 深度殘差網(wǎng)絡(luò)學(xué)習(xí)

3.1殘差學(xué)習(xí)

我們令H(x)作為需要多層神經(jīng)網(wǎng)絡(luò)去擬合的目標(biāo)函數(shù)。如果假設(shè)多個(gè)非線性層可以逐漸近似一個(gè)復(fù)雜的函數(shù),那么等價(jià)于假設(shè)他們可以逐漸近似殘差函數(shù),即H(x)-x。因此,與其讓期望這些層近似H(x),我們讓這些層直接近似殘差函數(shù)F(x)= H(x)-x。原始的函數(shù)則變成了H(x) = F(x)+x。盡管這兩種形式都應(yīng)該能夠逐漸地近似期望的函數(shù),但學(xué)習(xí)的輕松度可能是不同的。

這個(gè)重新制定的動(dòng)機(jī)是由于退化問題的反直覺現(xiàn)象(圖一,左圖)。正如我們在引言中所討論的,如果添加的層可以被構(gòu)造為恒等映射,那么一個(gè)較深的模型的訓(xùn)練錯(cuò)誤不應(yīng)該比相對更淺的模型訓(xùn)練誤差大。退化問題表明,求解起在通過多個(gè)非線性層逼近恒等映射時(shí)遇到困難。利用殘差的學(xué)習(xí)方法,如果恒等映射是最優(yōu)的,求解器也許只需將多個(gè)非線性層的權(quán)重簡單的置為零,以近似恒等映射。

在實(shí)際情況中,恒等映射不太可能是最優(yōu)的,但是我們的重制可能有助于解決問題。如果最優(yōu)函數(shù)更接近于標(biāo)識(shí)映射,而不是零映射,相比于將其作為一個(gè)新函數(shù)的學(xué)習(xí),解析器可以更容易地找到與恒等映射相關(guān)的擾動(dòng)(即殘差)。我們通過實(shí)驗(yàn)(圖7)顯示,習(xí)得的殘差函數(shù)一般都有很小的波動(dòng),這表明恒等映射提供了合理的前提條件。

?

3.2通過Shortcut的恒等映射

我們采取將每一個(gè)疊層都應(yīng)用殘差學(xué)習(xí)。圖2中顯示了一個(gè)building block。正式地,在本文中,我們考慮一個(gè)定義為:

其中x和y是層的輸入和輸出向量。函數(shù)F(x,{wi})表示要學(xué)習(xí)的殘差映射。如圖2為兩個(gè)層的例子,F=w2(W1x),其中表示ReLU,為了簡化表示,省略了偏差b。F+x的操作是通過一個(gè)shortcutconnection將對應(yīng)元素進(jìn)行相加來執(zhí)行的。在加法之后,我們采用了第二次非線性映射。(即(y),見圖2)。

等式(1)中的shortcut connection既沒有引入額外的參數(shù),也沒有增加計(jì)算復(fù)雜度。這不僅在實(shí)踐中很有吸引力,而且在我們對普通的網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的比較中也很重要。我們可以公平地比較同時(shí)具有相同數(shù)量的參數(shù)、深度、寬度和計(jì)算成本(除了可以忽略的相對應(yīng)的元素相加操作之外)的普通網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)。

x和F的維數(shù)在等式(1)中必須相等。如果不是這樣的話(例如:當(dāng)改變輸入/輸出通道時(shí)),我們可以通過shortcut connection來執(zhí)行一個(gè)線性投影,以匹配維度:

我們也可以在等式(1)中使用一個(gè)矩陣Ws。但我們將通過實(shí)驗(yàn)證明,恒等映射對于解決退化問題是足夠的,而且是經(jīng)濟(jì)的,因此只有在匹配維度時(shí)才需要使用Ws

殘差函數(shù)F的形式是靈活的。本文的實(shí)驗(yàn)涉及到一個(gè)函數(shù)F,它有兩個(gè)或三個(gè)層(圖5),當(dāng)然更多的層也是可以的。但是,如果F只有一個(gè)層,等式(1)與線性層y=W1x+x相似,我們沒有觀察到它的優(yōu)勢。

我們還注意到,盡管上面的符號是為了簡單起見而使用完全連接的層,但它們適用于卷積層。函數(shù)F(x;{wi})可以代表多個(gè)卷積層。元素相加是一個(gè)通道接著通道,在兩個(gè)特征圖上執(zhí)行的。

?

3.3網(wǎng)絡(luò)結(jié)構(gòu)

我們測試了各種各樣的普通/殘差網(wǎng)網(wǎng)絡(luò),并觀察到一致的現(xiàn)象。為了提供討論的實(shí)例,我們描述了ImageNet的兩個(gè)模型。

?

普通網(wǎng)絡(luò)

我們的基準(zhǔn)線(圖3,中間)主要受VGG網(wǎng)絡(luò)(圖3左)的啟發(fā)。卷積層主要有3×3的過濾器,并遵循兩個(gè)簡單的設(shè)計(jì)規(guī)則:(i)相同的輸出特性圖的大小,各層有相同數(shù)量的過濾器;(2)如果特征圖的大小減半,那么過濾器的數(shù)量就增加一倍,以保證每一層的時(shí)間復(fù)雜度相同。我們直接通過卷積層來進(jìn)行向下采樣,這些層的步長為2。該網(wǎng)絡(luò)以一個(gè)全局平均池層和一個(gè)1000層的完全連接層和softmax來結(jié)束。圖3(中)的權(quán)重層數(shù)為34。

值得注意的是,我們的模型比VGG網(wǎng)絡(luò)(圖3左)更少的過濾器和更低的復(fù)雜性。我們的具有34層的baseline有36億 FLOPs,只是VGG-19(19.6億FLOPs)的18%。

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

基于上面的普通網(wǎng)絡(luò),我們插入了shortcut connection(圖3,右),將網(wǎng)絡(luò)轉(zhuǎn)換為對應(yīng)的殘差版本。當(dāng)輸入和輸出是相同的維度時(shí),恒等shortcut(等式(1))可以直接使用(圖3實(shí)線)。當(dāng)維度增加(圖3中虛線),我們提供兩個(gè)選擇:(A)short connection仍然執(zhí)行恒等映射,用額外的零填充增加維度。這個(gè)選項(xiàng)不引入額外的參數(shù);(B)等式 (2)中的投影shortcut用于匹配維數(shù)(由1×1卷積完成)。對于這兩個(gè)選項(xiàng),當(dāng)shortcut融合兩個(gè)大小的特征圖時(shí),它們的執(zhí)行時(shí)的步長是2。

?

3.4實(shí)施

我們對ImageNet的實(shí)現(xiàn)遵循了[21、41]的實(shí)踐。為了擴(kuò)大規(guī)模,[256,480]大小的圖像被沿著短邊通過隨機(jī)采樣調(diào)整大小。從圖像或它的水平翻轉(zhuǎn)中隨機(jī)抽取[224,224],每像素減去平均。[21]中的標(biāo)準(zhǔn)顏色增強(qiáng)技術(shù)被使用。我們在每次卷積和激活前都采取Batch Normalization。我們同[13]一樣初始化權(quán)重,從頭開始訓(xùn)練普通網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)。我們使用SGD的批量大小為256。學(xué)習(xí)率從0.1開始,當(dāng)誤差停滯時(shí),將學(xué)習(xí)率除以10,模型被訓(xùn)練多大60萬次。我們使用0.0001的權(quán)重衰減,和0.9的momentum。根據(jù)[16],我們不使用Dropout層。

在測試中,為了比較研究,我們采用了標(biāo)準(zhǔn)的十折交叉驗(yàn)證。為了得到最好的結(jié)果,我們采用了全卷積式的形式如[41,13],并在多個(gè)尺度上平均得分(圖像被調(diào)整大小到更短的變,如224,256,384,480,640)。

?

4. 實(shí)驗(yàn)

4.1ImageNet分類

我們在包含1000類的ImageNet2012分類數(shù)據(jù)集上評估我們的方法。模型在包含128萬的訓(xùn)練數(shù)據(jù)將上訓(xùn)練,在5玩的驗(yàn)證圖像上評估。我們最終的結(jié)果是由測試服務(wù)器在10萬的測試集上獲得的。我們評估了前1和前5的錯(cuò)誤率。

?

普通網(wǎng)絡(luò)

我們首先評估18層和34層的普通網(wǎng)絡(luò)。34層普通網(wǎng)絡(luò)如圖3中間的網(wǎng)絡(luò)所示。18層普通網(wǎng)絡(luò)是同樣的形式。詳細(xì)結(jié)構(gòu)請參考表1。

表2所示的結(jié)果說明,更深的34層普通網(wǎng)絡(luò)比較淺的18層網(wǎng)絡(luò)具有更高的驗(yàn)證錯(cuò)誤率。為揭露其原因,如圖4左,我們在訓(xùn)練過程中比較它們的訓(xùn)練/驗(yàn)證誤差。我們觀察到了退化現(xiàn)象—盡管這個(gè)18層普通網(wǎng)絡(luò)的解空間是34層的一個(gè)子空間,34層的普通網(wǎng)絡(luò)在訓(xùn)練過程中始終具有更高的訓(xùn)練誤差。

我們認(rèn)為這種優(yōu)化問題不太可能是由梯度消失引起的。這個(gè)普通網(wǎng)絡(luò)用BN訓(xùn)練,這確保了傳播的信號具有非零的方差。我們還驗(yàn)證了反向傳播的梯度在BN中表現(xiàn)出了健康的規(guī)范。因此,無論是向前還是向后的信號都不會(huì)消失。事實(shí)上,34層普通網(wǎng)絡(luò)仍然能夠達(dá)到具有競爭力的準(zhǔn)確率,說明求解器在某種程度上是可行的。我們推測,深度普通網(wǎng)絡(luò)可能具有低指數(shù)的收斂速度,這將影響訓(xùn)練誤差的減少。這種優(yōu)化問題的原因在未來將會(huì)被研究。

?

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

接著我們評估了18層和34層的殘差網(wǎng)絡(luò)。除了每對3×3的filters之間增加了shortcut連接外,基準(zhǔn)結(jié)構(gòu)和之前的普通網(wǎng)絡(luò)相同,如圖3右所示。第一個(gè)對比(表2和圖4右),我們使用對所有的shortcut使用恒等映射,并使用0填充技術(shù)用于增加維度(操作A)。因此,與相應(yīng)的普通網(wǎng)絡(luò)相比,它們沒有增加額外的參數(shù)。

我們從表2和圖4中得到了三個(gè)主要的觀察結(jié)果。第一,在殘差學(xué)習(xí)中情況是相反的–34層的ResNet比18層的ResNet要好(2.8%)。更重要的是,34層ResNet展現(xiàn)出相當(dāng)?shù)偷挠?xùn)練誤差并可以概括驗(yàn)證數(shù)據(jù)(即驗(yàn)證數(shù)據(jù)有相同的實(shí)驗(yàn)結(jié)果)。這表明,在這樣的設(shè)置下,退化問題得到了很好的解決,并且我們成功的從增加的深度獲得了精度的提高。

第二,與其相對應(yīng)的普通網(wǎng)絡(luò)相比,由于成功減少了訓(xùn)練誤差 (圖4右與左),ResNet將top-1的誤差降低了3.5%(表2)。這一比較驗(yàn)證了在極深系統(tǒng)中殘差學(xué)習(xí)的有效性。

最后,我們還注意到,18層的普通/殘差的網(wǎng)是相當(dāng)精確的(表2),但是18層的ResNet更快速地收斂(圖4右與左)。當(dāng)網(wǎng)絡(luò)不太深(這里有18層)時(shí),當(dāng)前的SGD求解器仍然能夠找到普通網(wǎng)絡(luò)的優(yōu)解。在這種情況下,ResNet通過在早期提供更快的聚合來使優(yōu)化變得輕松。

?

恒等shorcut vs. 投影shortcut

我們已經(jīng)證明了,不增加參數(shù)的恒等shortcut有助于訓(xùn)練。接下來我們研究投影快捷方式(等式2)。在表3中,我們比較了三個(gè)選項(xiàng):(A)用于增加維度的零填充shortcut,所有的shortcut都是不增加參數(shù)的(與表2和圖4相同);(B)用于增加維度的投影shortcut,其他快shortcut采用恒等shortcut;(ps,我認(rèn)為他說的維度增加是指featuremap增加的部分)(C)所有的shortcut都采用投影。

表3顯示了這三個(gè)選項(xiàng)都比普通網(wǎng)絡(luò)的要好得多。B比A稍微好一點(diǎn)。我們認(rèn)為這是因?yàn)锳的0填充的維度確實(shí)沒有殘差學(xué)習(xí)。C比B略好,我們將其歸因于許多(13)投影shortcut引入的額外參數(shù)。但是,a/b/c之間的微小差異表明,投射shortcut對于解決退化問題并不是必需的。因此,在本文的其余部分中,我們不使用選項(xiàng)C,以減少內(nèi)存/時(shí)間復(fù)雜度和模型大小。恒等shortcut不增加復(fù)雜度對于下面引入的Bottleneck結(jié)構(gòu)的特別重要。

?

Deeper Bottleneck Architectures

接下來描述的針對ImageNet的深度網(wǎng)絡(luò)。考慮到我們所能承擔(dān)的訓(xùn)練時(shí)間,我們修改building block為bottleneck。對于每個(gè)殘差函數(shù)F,我們使用一個(gè)3層的棧式結(jié)構(gòu)代替2層的結(jié)構(gòu)(圖5)。這三層分別是1×1、3×3和1×1的卷積,1×1的卷積的目的是使維度先減小再增加(復(fù)原),讓3×3的卷積層作為一個(gè)低維輸入輸出的bottleneck。圖5展示了一個(gè)示例,兩種設(shè)計(jì)有相同的時(shí)間復(fù)雜度。

恒等的shortcut對bottleneck結(jié)構(gòu)非常重要。如果圖5右的恒等shortcut被投影shortcut代替,時(shí)間復(fù)雜度和模型大小都被加倍,因?yàn)閟hortcut用于連接兩個(gè)高維的端。因此,恒等shortcuts使bottleneck的設(shè)計(jì)更有效。(注意,bottleneck也有退化現(xiàn)象,所以bottleneck的設(shè)計(jì)要盡量簡潔)

50層ResNet:我們用這種3層的bottleneck代替34層ResNet中的每個(gè)兩層block,構(gòu)成50層ResNet(表1)。我們使用選項(xiàng)B來增加維度。這個(gè)模型有38億FLOPs。

101層和152層ResNet:我們通過使用更多的3層block構(gòu)建101層和152層ResNet(表1)。盡管深度有了顯著的增加,152層ResNet(113億FLOPs)仍然比VGG-16/19(153億/196億FLOPs)復(fù)雜度更低。

50/101/152層的比34層更精確(表3和4),我們沒有觀察到退化問題,并因此從相當(dāng)高的深度上獲得了顯著的精度增益。在所有評估指標(biāo)上都可以看到深度的好處(表3和4)。

?

與優(yōu)秀算法的比較

表4中,我們比較累之前最好的單模型結(jié)果。我們的基本34層ResNet已經(jīng)達(dá)到具有競爭力的準(zhǔn)確度。我們的152層的ResNet有一個(gè)單模型top-5驗(yàn)證驗(yàn)證誤差為4.49%。這個(gè)單模型結(jié)果比以前所有的集合結(jié)果都要出色(表5)。我們結(jié)合六種不同深度的模型形成一個(gè)集合(在提交時(shí)只用了2個(gè)152層ResNet)。在測試集上取得了3.57%的top-5錯(cuò)誤率。這項(xiàng)贏得了ILSVRC2015的第一名。

?

4.2CIFAR-10和分析

我們在CIFAR-10上做了更多研究,它由包括10個(gè)類別的5萬個(gè)訓(xùn)練圖和1萬個(gè)測試圖組成。我們展示在需年紀(jì)的訓(xùn)練和在測試集上的測試實(shí)驗(yàn)。我們主要研究極其深的網(wǎng)絡(luò)的表現(xiàn),而不是找出一個(gè)優(yōu)異的實(shí)驗(yàn)結(jié)果,因此我們有意使用如下簡單的結(jié)構(gòu)。

普通網(wǎng)絡(luò)/殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖3(中/右)所示。網(wǎng)絡(luò)輸入為32×32的圖片,每個(gè)像素都減去平均值。第一層為一個(gè)3×3的卷積層。然后我們使用將6n層3×3的卷積層堆棧在一起,特征圖大小分別為{32,16,8},每個(gè)特征圖大小對應(yīng)2n個(gè)層。Filter的個(gè)數(shù)分別為{16,32,64}。下采樣操作通過步長為2的卷積操作執(zhí)行。網(wǎng)絡(luò)以一個(gè)全局平均池化層和softmax層結(jié)合。一共有6n+2個(gè)權(quán)重層。下表總結(jié)了結(jié)構(gòu)。

當(dāng)shortcut被使用時(shí),它們被連接到成對的3×3層(3n個(gè)shortcut)。在這個(gè)數(shù)據(jù)集上,我們?nèi)渴褂煤愕萻hortcuts(即選項(xiàng)A),因此,我們的殘差模型和相應(yīng)的普通網(wǎng)絡(luò)具有相同的深度、寬度和參數(shù)的個(gè)數(shù)。

我們使用0.0001的權(quán)重衰減和0.9的動(dòng)量,并常用[13]的權(quán)重初始化和BN,但是沒有dropout層。這個(gè)模型用批量大小為128,在2個(gè)GPU上訓(xùn)練。我們開始時(shí)設(shè)置學(xué)習(xí)率為1.1,在32k和48k次迭代時(shí)將學(xué)習(xí)率除以10,并在64k次迭代時(shí)結(jié)束訓(xùn)練,這由45k/5k train/val劃分決定。我們根據(jù)[24]的簡單數(shù)據(jù)擴(kuò)增進(jìn)行訓(xùn)練:每一側(cè)都填充4個(gè)像素,并且從填充圖像或水平翻轉(zhuǎn)中隨機(jī)抽取32×32的corp。為了測試,我們只評估原始32×32圖像的單一視角。

我們比較n={3,5,7,9},即20,32,44,56層網(wǎng)絡(luò)。圖6左展示了普通網(wǎng)絡(luò)的表現(xiàn)。深度普通網(wǎng)絡(luò)受到了深度的影響,并且在深的時(shí)候表現(xiàn)出了更高的訓(xùn)練錯(cuò)誤。這個(gè)現(xiàn)象與ImageNet和MNIST相同,說明這樣的優(yōu)化困難是一個(gè)基本問題。

圖6(中間)展示了ResNets的表現(xiàn)。也和ImageNet相同,我們的ResNets成功的克服了優(yōu)化困難并展示出在深度的時(shí)候獲得的準(zhǔn)確度。

我們更進(jìn)一步探索了n=18時(shí),110層的ResNet。在這個(gè)試驗(yàn)中,我們發(fā)現(xiàn)0.1的初始學(xué)習(xí)率有一些太大以至于提早開始收斂。因此我們使用0.01的學(xué)習(xí)路開始訓(xùn)練指導(dǎo)訓(xùn)練誤差地域80%(大約400次迭代),然后變回0.1的學(xué)習(xí)率繼續(xù)訓(xùn)練。其他的學(xué)習(xí)任務(wù)和前面的實(shí)驗(yàn)一樣。110層的網(wǎng)絡(luò)能夠很好的收斂(圖6中間)。它具有比其他又深又窄的網(wǎng)絡(luò)如FitNet和HighWay更少的參數(shù)(表6),已經(jīng)是最優(yōu)異的結(jié)果了(6.43%,表6)。

?

層響應(yīng)分析

圖7展示了層響應(yīng)的方差。這個(gè)響應(yīng)是BN之后,其他非線性操作(ReLU/addition)之前的輸出。對于ResNets,這個(gè)分析揭示了殘差函數(shù)的響應(yīng)力度。圖7展示了ResNet一般比相應(yīng)的普通網(wǎng)絡(luò)具有更小的響應(yīng)。這個(gè)結(jié)果支持了我們的基本動(dòng)機(jī)(3.1節(jié)),即殘差函數(shù)比非殘差函數(shù)更易接近于0。我們也注意到,更深的ResNet比20,56,110層的ResNet有更小量級的響應(yīng),如圖7。當(dāng)有更多的層時(shí),一個(gè)單獨(dú)的ResNet層往往會(huì)更少地修改信號。

?

探索1000+層

我們探索了一個(gè)超過1000層的深度模型。我們設(shè)置n=200,使其產(chǎn)生一個(gè)1202層的網(wǎng)絡(luò),同如上所述的進(jìn)行訓(xùn)練。我們的方法沒有顯示優(yōu)化困難,這個(gè)1000層網(wǎng)絡(luò)能夠?qū)崿F(xiàn)訓(xùn)練誤差小于0.1%(圖6,右)。它的測試錯(cuò)誤也相當(dāng)好(7.93%,表6)。

但在這種過分深層的模型上,仍存在一些問題。這個(gè)1202層網(wǎng)絡(luò)的測試結(jié)果比我們的110層網(wǎng)絡(luò)要差,盡管兩者都有相似的訓(xùn)練誤差。我們認(rèn)為這是因?yàn)檫^度擬合。對于小數(shù)據(jù)集來說,1202層的網(wǎng)絡(luò)也許沒有必要。如Maxout和Dropout等強(qiáng)大的正則化方法在這個(gè)數(shù)據(jù)集上已經(jīng)取得了很好的結(jié)果。在這篇論文中,我們沒有使用maxout/dropout并且只簡單的通過深度和設(shè)計(jì)薄的結(jié)構(gòu)來實(shí)現(xiàn)規(guī)范化,而不會(huì)分散對優(yōu)化問題的注意力。但是,結(jié)合更強(qiáng)的規(guī)范化可能會(huì)改善結(jié)果,我們將在未來研究。

?

4.3在PASCAL和MS COCO上的目標(biāo)檢測

我們的方法已經(jīng)在其他識(shí)別任務(wù)上取得了一般化的表現(xiàn)。表7和表8展示在PASCAL VOC 2007和2012以及COCO上的基本結(jié)果。我們采取Faster R-CNN作為檢測方法。我們對用resnet-101替換VGG-16的改進(jìn)感興趣。使用這兩種模型檢測的實(shí)現(xiàn)(見附錄)是相同的,因此所得的結(jié)果只能歸因于更好的網(wǎng)絡(luò)。值得注意的是,在COCO數(shù)據(jù)集的挑戰(zhàn)上,我們在COCO標(biāo)準(zhǔn)度量上獲得了6%的增加(mAP@[.5,.95])相對改進(jìn)了28%。這個(gè)進(jìn)步僅僅是因?yàn)樘卣鞯膶W(xué)習(xí)。

基于深度殘差網(wǎng)絡(luò),我們在ILSVRC&COCO2015年的比賽中獲得了第1名:ImageNet檢測、ImageNet定位、COCO檢測和COCO分割。細(xì)節(jié)在附錄中。

</div></div><div class="hide-article-box text-center"><a class="btn" id="btn-readmore" data-track-view="{&quot;mod&quot;:&quot;popu_376&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xxy0118/article/details/78324256,&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_376&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xxy0118/article/details/78324256,&quot;}"></a><a class="btn" href="https://passport.csdn.net/account/login?utm_source=csdn_blog_pc_more_login" target="_self" id="btn-lobinreadmore" data-track-view="{&quot;mod&quot;:&quot;popu_557&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xxy0118/article/details/78324256,&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_557&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xxy0118/article/details/78324256,&quot;}">登錄后自動(dòng)展開</a></div></article>

總結(jié)

以上是生活随笔為你收集整理的ResNet解析(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。