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?(1?T(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
推薦讀者們還是看一下本文最後列出的這篇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:
- 圖片resize:短邊長random.randint(256,480)
- 裁剪:224*224隨機采樣,含水平翻轉
- 減均值
- 標準顏色擴充[2]
- conv和activation間加batch normalization[3]
幫助解決vanishing/exploding問題 - minibatch-size:256
- learning-rate: 初始0.1, error平了lr就除以10
- weight decay:0.0001
- momentum:0.9
- 沒用dropout[3]
其實看下來都是挺常規的方法。
3. 實驗結果
-
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收斂快 -
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
Residual Networks