More Related Content
More from Yusuke Uchida (20)
ConvNetの歴史とResNet亜種、ベストプラクティス
- 6. ResNet [He+’15]
• 背景
– 深すぎるネットワークは学習が難しい
– 過学習ではなく訓練誤差すら⼩さくならない
– 直感的には、浅いネットワークに層を追加すれば訓練誤差は下がり
そう
(⼊⼒をそのまま出⼒するような層を追加すれば少なくとも訓練誤
差は上がらない)
– 勾配消失でもない(適切な初期化やBNをしても発⽣)
– 直接⽬的関数H(x)を学習するのではなく、その残差F(x)=H(x)-xを
学習するネットワークを提案
- 8. Identity mapping: zero-padding vs. projection
conv 3x3, 64
conv 3x3, 128
conv 3x3, 256
conv 3x3, 512
global average pooling
FC
x N1
x N2
x N3
x N4
56x56
28x28
14x14
7x7
画像サイズ
conv 3x3, 128
conv 3x3, 128, /2
64-d
128-d
x
zero-padding
64-d
0 x
64-d
conv 3x3, 128
conv 3x3, 64, /2
64-d
128-d
x
projecBon
conv 1x1, 128, /2
• 入出力の次元が違うResidual unitでは
idenBty mappingとしてzero-paddingもしくは
projecBonを利用
• パラメータ数が増加しないzero-paddingが
よく利用される
• どちらのケースでもsubsample (/2) を行う
/2
56x56
28x28 28x28
56x56
28x28 28x28
- 9. Residual Networks Behave Like Ensembles of Relatively
Shallow Networks [Veit+’16](参考)
• VGG:認識精度がほぼランダムな認識と同じ程度まで低下
• ResNet:ほとんど影響なし
• 精度が多少低下しているのはダウンサンプリングを行っている
residual unitを削除した場合
• ショートカットの存在により、ResNetが浅いネットワークの
アンサンブル学習を行っているという解釈
VGGとResNetでそれぞれランダムに1つだけレイヤを削除した場合の認識精度
- 12. PyramidNet [Han+’16]
• ResNetはランダムに層を削除しても精度がほとんど低下しない
• ダウンサンプリング層(フィルタ数を2倍にしているところ)は唯一精度が低下
• この層への依存が強く、アンサンブル学習としては望ましくない
→全てのresidual unitで少しずつフィルタ数を増加させる
• 増加のさせ方として、単調増加させるaddiBve PyramidNetと
指数的に増加させるmulBplicaBve PyramidNetを提案
→addiBveのほうが高精度
• Residualと相関の低い特徴をちょっとずつ抽出しているイメージ?
- 14. Deep Networks with Stochastic Depth [Huang+’16]
• ResNetは非常にdeepであることが学習を難しくしている
→訓練時は「期待値で見たときの深さ」を浅くしてあげよう
• バッチ毎にresidual unitをランダムにdropする
• Drop確率は出力に近いほど高くなるように線形に増加させる
→期待値で見たときのネットワークの深さが小さくなる
• テスト時にはdropせずに、各層のdrop率で出力をスケーリング
• 通常のResNetと比較して、学習が早く、高精度
- 16. 個⼈的なベストプラクティス
• ネットワーク:Wide Residual Networkがお⼿軽
• Residual unit:pre-act
– BN-ReLU-Conv-BN-ReLU-Conv
• 初期化:He+(MSRA)
– Delving Deep into Rectifiers: Surpassing Human-Level
Performance on ImageNet Classification
• 最適化:SGD+NesterovのMomentum+学習率⼿動
スケジューリング(ロスがサチるEpochで1/5に)