Residual Networks

本文介紹一下2015 ImageNet中分類任務的冠軍——MSRA何凱明團隊的Residual Networks。實際上,MSRA是今年Imagenet的大贏家,不單在分類任務,MSRA還用residual networks贏了 ImageNet的detection, localization, 以及COCO數據集上的detection和segmentation, 那本文就簡單分析下Residual Networks。

目錄
————————————
1. Motivation
2. 網絡結構
3. 實驗結果
4. 重要reference


1. Motivation

作者首先拋出了這個問題, 深度神經網絡是不是越深越好。
照我們一般的經驗,只要網絡不訓飛(也就是最早在LSTM中提出的vanishing/exploding problem),而且不過擬合, 那應該是越深越好。

但是有這麼個情況,網絡加深了, accuracy卻下降了,稱這種情況爲degradation。如下圖所示(詳見[1]):


這裏寫圖片描述

Cifar-10 上的training/testing error. 網絡從20層加到56層,error卻上升了。

按理說我們有一個shallow net,在不過擬合的情況下再往深加幾層怎麼說也不會比shallow的結果差,所以degradation說明不是所有網絡都那麼容易優化,這篇文章的motivation就是通過“deep residual network“解決degradation問題。



2. 網絡結構

Shortcut Connections

其實本文想法和Highway networks(Jurgen Schmidhuber的文章)非常相似, 就連要解決的問題(degradation)都一樣。Highway networks一文借用LSTM中gate的概念,除了正常的非線性映射H(x, Wh)外,還設置了一條從x直接到y的通路,以T(x, Wt)作爲gate來把握兩者之間的權重,如下公式所示:


y=H(x,WH)T(x,WT)+x(1T(x,WT))



shortcut原意指捷徑,在這裏就表示越層連接,就比如上面Highway networks裏從x直接到y的連接。其實早在googleNet的inception層中就有這種表示:

這裏寫圖片描述


Residual Networks一文中,作者將Highway network中的含參加權連接變爲固定加權連接,即


y=H(x,WH)WT+x


Residual Learning

至此,我們一直沒有提及residual networks中residual的含義。那這個“殘差“指什麼呢?我們想:
如果能用幾層網絡去逼近一個複雜的非線性映射H(x),那麼同樣可以用這幾層網絡去逼近它的residual function:F(x)=H(x)x ,但我們“猜想“優化residual mapping要比直接優化H(x)簡單。

推薦讀者們還是看一下本文最後列出的這篇reference paper,本文中作者說與Highway network相比的優勢在於:

x Highway Network Residual Network 評論
gate參數 有參數變量WT 沒參數,定死的, 方便和沒有residual的網絡比較 算不上優勢,參數少又data-independent,結果肯定不會是最優的,文章實驗部分也對比了效果,確實是帶參數的error更小,但是WT 這個變量與解決degradation問題無關
關門? 有可能關門(T(x,WT)=0 不會關門 T(x,WT)[0,1] , 但一般不會爲0



所以說這個比較還是比較牽強。。anyway,人家講個故事也是不容易了。


34層 residual network

網絡構建思路:基本保持各層complexity不變,也就是哪層down-sampling了,就把filter數*2, 網絡太大,此處不貼了,大家看paper去吧, paper中畫了一個34層全卷積網絡, 沒有了後面的幾層fc,難怪說152層的網絡比16-19層VGG的計算量還低。

這裏再講下文章中講實現部分的 tricks

  1. 圖片resize:短邊長random.randint(256,480)
  2. 裁剪:224*224隨機採樣,含水平翻轉
  3. 減均值
  4. 標準顏色擴充[2]
  5. conv和activation間加batch normalization[3]
    幫助解決vanishing/exploding問題
  6. minibatch-size:256
  7. learning-rate: 初始0.1, error平了lr就除以10
  8. weight decay:0.0001
  9. momentum:0.9
  10. 沒用dropout[3]

其實看下來都是挺常規的方法。



3. 實驗結果

  1. 34層與18層網絡比較:訓練過程中,
    34層plain net(不帶residual function)比18層plain net的error大
    34層residual net(不帶residual function)比18層residual net的error小,更比34層plain net小了3.5%(top1)
    18層residual net比18層plain net收斂快

  2. Residual function的設置:
    A)在H(x)與x維度不同時, 用0充填補足
    B) 在H(x)與x維度不同時, 帶WT
    C)任何shortcut都帶WT
    loss效果: A>B>C


4. 重要reference

[1]. Highway Networks
[2]. ImageNet Classification with Deep Convolutional Neural Networks
[3]. Batch Normalization
[4]. VGG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章