殘差網(wǎng)絡(luò)ResNet筆記

Deep Residual Learning for Image Recognition

1. 思想

作者根據(jù)輸入將層表示為學習殘差函數(shù)刚梭。實驗表明,殘差網(wǎng)絡(luò)更容易優(yōu)化八千,并且能夠通過增加相當?shù)纳疃葋硖岣邷蚀_率烛缔。
核心是解決了增加深度帶來的副作用(退化問題),這樣能夠通過單純地增加網(wǎng)絡(luò)深度鞍帝,來提高網(wǎng)絡(luò)性能。

  • 作者在ImageNet上實驗了一個152層的殘差網(wǎng)絡(luò),比VGG深8倍狸膏,取得了3.57%的錯誤率。
  • 作者通過一系列實驗證明了表示的深度(即網(wǎng)絡(luò)的深度)對很多視覺識別任務(wù)都至關(guān)重要添怔。僅僅由于使用了非常深的網(wǎng)絡(luò)湾戳,作者就在COCO目標檢測數(shù)據(jù)集上獲得了28%的相對提升。

2. 筆記

網(wǎng)絡(luò)的深度為什么重要澎灸?

因為CNN能夠提取low/mid/high-level的特征院塞,網(wǎng)絡(luò)的層數(shù)越多,意味著能夠提取到不同level的特征越豐富性昭。并且拦止,越深的網(wǎng)絡(luò)提取的特征越抽象,越具有語義信息。

為什么不能簡單地增加網(wǎng)絡(luò)層數(shù)汹族?

  • 對于原來的網(wǎng)絡(luò)萧求,如果簡單地增加深度,會導致梯度彌散或梯度爆炸顶瞒。

對于該問題的解決方法是正則化初始化中間的正則化層(Batch Normalization)夸政,這樣的話可以訓練幾十層的網(wǎng)絡(luò)。

  • 雖然通過上述方法能夠訓練了榴徐,但是又會出現(xiàn)另一個問題守问,就是退化問題,網(wǎng)絡(luò)層數(shù)增加坑资,但是在訓練集上的準確率卻飽和甚至下降了耗帕。這個不能解釋為overfitting,因為overfit應(yīng)該表現(xiàn)為在訓練集上表現(xiàn)更好才對袱贮。
    退化問題說明了深度網(wǎng)絡(luò)不能很簡單地被很好地優(yōu)化仿便。
    作者通過實驗:通過淺層網(wǎng)絡(luò)+ y=x 等同映射構(gòu)造深層模型,結(jié)果深層模型并沒有比淺層網(wǎng)絡(luò)有等同或更低的錯誤率攒巍,推斷退化問題可能是因為深層的網(wǎng)絡(luò)并不是那么好訓練嗽仪,也就是求解器很難去利用多層網(wǎng)絡(luò)擬合同等函數(shù)。

怎么解決退化問題柒莉?

深度殘差網(wǎng)絡(luò)闻坚。如果深層網(wǎng)絡(luò)的后面那些層是恒等映射,那么模型就退化為一個淺層網(wǎng)絡(luò)常柄。那現(xiàn)在要解決的就是學習恒等映射函數(shù)了鲤氢。 但是直接讓一些層去擬合一個潛在的恒等映射函數(shù)H(x) = x,比較困難西潘,這可能就是深層網(wǎng)絡(luò)難以訓練的原因卷玉。但是,如果把網(wǎng)絡(luò)設(shè)計為H(x) = F(x) + x,如下圖喷市。我們可以轉(zhuǎn)換為學習一個殘差函數(shù)F(x) = H(x) - x. 只要F(x)=0相种,就構(gòu)成了一個恒等映射H(x) = x. 而且,擬合殘差肯定更加容易品姓。


其他的參考解釋

  • F是求和前網(wǎng)絡(luò)映射寝并,H是從輸入到求和后的網(wǎng)絡(luò)映射。比如把5映射到5.1腹备,那么引入殘差前是F'(5)=5.1衬潦,引入殘差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。這里的F'和F都表示網(wǎng)絡(luò)參數(shù)映射植酥,引入殘差后的映射對輸出的變化更敏感镀岛。比如s輸出從5.1變到5.2弦牡,映射F'的輸出增加了1/51=2%,而對于殘差結(jié)構(gòu)輸出從5.1到5.2漂羊,映射F是從0.1到0.2驾锰,增加了100%。明顯后者輸出變化對權(quán)重的調(diào)整作用更大走越,所以效果更好椭豫。殘差的思想都是去掉相同的主體部分,從而突出微小的變化旨指,看到殘差網(wǎng)絡(luò)我第一反應(yīng)就是差分放大器...地址
  • 至于為何shortcut的輸入時X赏酥,而不是X/2或是其他形式。kaiming大神的另一篇文章[2]中探討了這個問題淤毛,對以下6種結(jié)構(gòu)的殘差結(jié)構(gòu)進行實驗比較今缚,shortcut是X/2的就是第二種算柳,結(jié)果發(fā)現(xiàn)還是第一種效果好暗偷(攤手)。


這種殘差學習結(jié)構(gòu)可以通過前向神經(jīng)網(wǎng)絡(luò)+shortcut連接實現(xiàn)瞬项,如結(jié)構(gòu)圖所示蔗蹋。而且shortcut連接相當于簡單執(zhí)行了同等映射,不會產(chǎn)生額外的參數(shù)囱淋,也不會增加計算復雜度猪杭。 而且,整個網(wǎng)絡(luò)可以依舊通過端到端的反向傳播訓練妥衣。

ImageNet上的實驗證明了作者提出的加深的殘差網(wǎng)絡(luò)能夠比簡單疊加層生產(chǎn)的深度網(wǎng)絡(luò)更容易優(yōu)化皂吮,而且,因為深度的增加税手,結(jié)果得到了明顯提升蜂筹。另外在CIFAR-10數(shù)據(jù)集上相似的結(jié)果以及一系列大賽的第一名結(jié)果表明ResNet是一個通用的方法。


相關(guān)的工作

  • 殘差表示
    VALD芦倒,F(xiàn)isher Vector都是是對殘差向量編碼來表示圖像艺挪,在圖像分類,檢索表現(xiàn)出優(yōu)于編碼原始向量的性能兵扬。
    在low-level的視覺和計算機圖形學中麻裳,為了求解偏微分方程,廣泛使用的Multigrid方法將系統(tǒng)看成是不同尺度上的子問題器钟。每個子問題負責一種更粗糙與更精細尺度的殘差分辨率津坑。Multigrid的一種替換方法是層次化的預(yù)處理,層次化的預(yù)處理依賴于兩種尺度的殘差向量表示傲霸。實驗表明疆瑰,這些求解器要比對殘差不敏感的求解器收斂更快。
  • shortcut連接
    shortcut連接被實驗和研究了很久。Highway networks也使用了帶有門函數(shù)的shortcut乃摹。但是這些門函數(shù)需要參數(shù)禁漓,而ResNet的shortcut不需要參數(shù)。而且當Highway networks的門函數(shù)的shortcut關(guān)閉時孵睬,相當于沒有了殘差函數(shù)播歼,但是ResNet的shortcut一直保證學習殘差函數(shù)。而且掰读,當Highway networks的層數(shù)急劇增加時秘狞,沒有表現(xiàn)出準確率的上升了〉讣總之烁试,ResNet可以看成是Highway networks的特例,但是從效果上來看拢肆,要比Highway networks好减响。

深度殘差學習

  • 殘差學習
    根據(jù)多層的神經(jīng)網(wǎng)絡(luò)理論上可以擬合任意函數(shù),那么可以利用一些層來擬合函數(shù)郭怪。問題是直接擬合H(x)還是殘差函數(shù)支示,由前文,擬合殘差函數(shù)F(x) = H(x) - x更簡單鄙才。雖然理論上兩者都能得到近似擬合颂鸿,但是后者學習起來顯然更容易。
    作者說攒庵,這種殘差形式是由退化問題激發(fā)的嘴纺。根據(jù)前文,如果增加的層被構(gòu)建為同等函數(shù)浓冒,那么理論上栽渴,更深的模型的訓練誤差不應(yīng)當大于淺層模型,但是出現(xiàn)的退化問題表面裆蒸,求解器很難去利用多層網(wǎng)絡(luò)擬合同等函數(shù)熔萧。但是,殘差的表示形式使得多層網(wǎng)絡(luò)近似起來要容易的多僚祷,如果同等函數(shù)可被優(yōu)化近似佛致,那么多層網(wǎng)絡(luò)的權(quán)重就會簡單地逼近0來實現(xiàn)同等映射,即F(x) = 0辙谜。
    實際情況中俺榆,同等映射函數(shù)可能不會那么好優(yōu)化,但是對于殘差學習装哆,求解器根據(jù)輸入的同等映射罐脊,也會更容易發(fā)現(xiàn)擾動定嗓,總之比直接學習一個同等映射函數(shù)要容易的多。根據(jù)實驗萍桌,可以發(fā)現(xiàn)學習到的殘差函數(shù)通常響應(yīng)值比較小宵溅,同等映射(shortcut)提供了合理的前提條件。
  • 通過shortcut同等映射

F(x)與x相加就是就是逐元素相加上炎,但是如果兩者維度不同恃逻,需要給x執(zhí)行一個線性映射來匹配維度:


用來學習殘差的網(wǎng)絡(luò)層數(shù)應(yīng)當大于1,否則退化為線性藕施。文章實驗了layers = 2或3寇损,更多的層也是可行的。
用卷積層進行殘差學習:以上的公式表示為了簡化裳食,都是基于全連接層的矛市,實際上當然可以用于卷積層。加法隨之變?yōu)閷?yīng)channel間的兩個feature map逐元素相加诲祸。

  • 網(wǎng)絡(luò)結(jié)構(gòu)
    作者由VGG19設(shè)計出了plain 網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)浊吏,如下圖中部和右側(cè)網(wǎng)絡(luò)。然后利用這兩種網(wǎng)絡(luò)進行實驗對比烦绳。

key point:

設(shè)計網(wǎng)絡(luò)的規(guī)則:1.對于輸出feature map大小相同的層卿捎,有相同數(shù)量的filters,即channel數(shù)相同径密;2. 當feature map大小減半時(池化),filters數(shù)量翻倍躺孝。
對于殘差網(wǎng)絡(luò)享扔,維度匹配的shortcut連接為實線,反之為虛線植袍。維度不匹配時惧眠,同等映射有兩種可選方案:

  1. 直接通過zero padding 來增加維度(channel)。
  2. 乘以W矩陣投影到新的空間于个。實現(xiàn)是用1x1卷積實現(xiàn)的氛魁,直接改變1x1卷積的filters數(shù)目。這種會增加參數(shù)厅篓。
  • 實施
    key point:

訓練測試的multi-scale秀存,BN,color augmentation. 測試時的10-cut.


實驗

key point:

  1. 實驗了plain-18和plain-34羽氮,展示了退化問題或链。說明了退化問題不是因為梯度彌散,因為加入了BN档押。另外也不能簡單地增加迭代次數(shù)來使其收斂澳盐,增加迭代次數(shù)仍然會出現(xiàn)退化問題祈纯。
  1. 實驗了ResNet-18和ResNet-34不會出現(xiàn)退化問題,ResNet-34明顯表現(xiàn)的比ResNet-18和plain-34好叼耙,證明了殘差學習解決了隨網(wǎng)絡(luò)深度增加帶來的退化問題腕窥。 而且同等深度的plain-18和ResNet-18,殘差網(wǎng)絡(luò)更容易優(yōu)化筛婉,收斂更快油昂。
  1. 對于同等映射維度不匹配時,匹配維度的兩種方法倾贰,zero padding是參數(shù)free的冕碟,投影法會帶來參數(shù)。作者比較了這兩種方法的優(yōu)劣匆浙。實驗證明安寺,投影法會比zero padding表現(xiàn)稍好一些。因為zero padding的部分沒有參與殘差學習首尼。實驗表明挑庶,將維度匹配或不匹配的同等映射全用投影法會取得更稍好的結(jié)果,但是考慮到不增加復雜度和參數(shù)free软能,不采用這種方法迎捺。
  1. 更深的瓶頸結(jié)構(gòu):

    作者探索的更深的網(wǎng)絡(luò)。 考慮到時間花費查排,將原來的building block(殘差學習結(jié)構(gòu))改為瓶頸結(jié)構(gòu)凳枝,如上圖。首端和末端的1x1卷積用來削減和恢復維度跋核,相比于原本結(jié)構(gòu)岖瑰,只有中間3x3成為瓶頸部分。這兩種結(jié)構(gòu)的時間復雜度相似砂代。此時投影法映射帶來的參數(shù)成為不可忽略的部分(以為輸入維度的增大)蹋订,所以要使用zero padding的同等映射。
    替換原本ResNet的殘差學習結(jié)構(gòu)刻伊,同時也可以增加結(jié)構(gòu)的數(shù)量露戒,網(wǎng)絡(luò)深度得以增加。生成了ResNet-50捶箱,ResNet-101智什,ResNet-152. 隨著深度增加,因為解決了退化問題讼呢,性能不斷提升撩鹿。
    作者最后在Cifar-10上嘗試了1202層的網(wǎng)絡(luò),結(jié)果在訓練誤差上與一個較淺的110層的相近悦屏,但是測試誤差要比110層大1.5%节沦。作者認為是采用了太深的網(wǎng)絡(luò)键思,發(fā)生了過擬合。
  1. 最后作者把ResNet用到了其他比賽上甫贯,拿了很多冠軍...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吼鳞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叫搁,更是在濱河造成了極大的恐慌赔桌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渴逻,死亡現(xiàn)場離奇詭異疾党,居然都是意外死亡,警方通過查閱死者的電腦和手機惨奕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門雪位,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梨撞,你說我怎么就攤上這事雹洗。” “怎么了卧波?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵时肿,是天一觀的道長。 經(jīng)常有香客問我港粱,道長螃成,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任啥容,我火速辦了婚禮锈颗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咪惠。我一直安慰自己,他們只是感情好淋淀,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布遥昧。 她就那樣靜靜地躺著,像睡著了一般朵纷。 火紅的嫁衣襯著肌膚如雪炭臭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天袍辞,我揣著相機與錄音鞋仍,去河邊找鬼。 笑死搅吁,一個胖子當著我的面吹牛威创,可吹牛的內(nèi)容都是我干的落午。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肚豺,長吁一口氣:“原來是場噩夢啊……” “哼溃斋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吸申,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤梗劫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后截碴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梳侨,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年日丹,在試婚紗的時候發(fā)現(xiàn)自己被綠了走哺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡聚凹,死狀恐怖割坠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妒牙,我是刑警寧澤彼哼,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站湘今,受9級特大地震影響敢朱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摩瞎,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一拴签、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旗们,春花似錦蚓哩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至稠氮,卻和暖如春曹阔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隔披。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工赃份, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奢米。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓抓韩,卻偏偏與公主長得像纠永,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子园蝠,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容