Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ConvNetの歴史とResNet亜種、
ベストプラクティス	
Yusuke Uchida@DeNA
はじめに	
•  ⽬的:ConvNetのデファクトであるResNetを理解
–  ResNetに⾄るまでの歴史Overview
–  ResNetの亜種
–  ResNetのベストプラクティス
LeNet-5 [Lecun+’98]	
conv	5x5,	6	 conv	2x2	
stride=(2,	2)	
conv	5x5,	16	 conv	2x2	
stride=(2,	2)	
Feature	map	
毎	
•  convに...
AlexNet [Krizhevsky+’12]	
conv	11x11,	48	
stride=(4,	4)	
max-pool	3x3	
stride=(2,	2)	
•  conv	11x11と大きいフィルタを利用	
•  overlap...
VGGNet [Simonyan+’14]	
112x112	
56x56	
28x28	
14x14	
•  全て3x3のconv、2x2のmaxpooling、より深く	
•  半分にダウンサンプリングしてフィルタ数を2倍にする
ResNet [He+’15]	
•  背景
–  深すぎるネットワークは学習が難しい
–  過学習ではなく訓練誤差すら⼩さくならない
–  直感的には、浅いネットワークに層を追加すれば訓練誤差は下がり
そう

(⼊⼒をそのまま出⼒するような層...
ResNet [He+’15]	
基本形(実は単純)	
???	
conv	3x3,	64	
conv	3x3,	128	
conv	3x3,	256	
conv	3x3,	512	
global	average	pooling	
FC	
x	...
Identity mapping: zero-padding vs. projection	
conv	3x3,	64	
conv	3x3,	128	
conv	3x3,	256	
conv	3x3,	512	
global	average	p...
Residual Networks Behave Like Ensembles of Relatively
Shallow Networks [Veit+’16](参考)	
•  VGG:認識精度がほぼランダムな認識と同じ程度まで低下	
•  ...
Residual Networks Behave Like Ensembles of Relatively
Shallow Networks [Veit+’16](参考)
Wide ResNet [Zagoruyko+’16]	
conv	3x3,	64xK	
conv	3x3,	128xK	
conv	3x3,	256xK	
conv	3x3,	512xK	
global	average	pooling	
FC...
PyramidNet [Han+’16]	
•  ResNetはランダムに層を削除しても精度がほとんど低下しない	
•  ダウンサンプリング層(フィルタ数を2倍にしているところ)は唯一精度が低下	
•  この層への依存が強く、アンサンブル学習と...
PyramidNet [Han+’16]	
•  Zero-paddingを行っているresidual	unitは上記(b)のように	
チャネルが増えないresidual	unit(左)と、通常のconv(右)の	
組み合わせとみなすことができ...
Deep Networks with Stochastic Depth [Huang+’16]	
•  ResNetは非常にdeepであることが学習を難しくしている	
→訓練時は「期待値で見たときの深さ」を浅くしてあげよう	
•  バッチ毎にr...
PyramidSepDrop [Yamada+’16]	
•  PyramidDrop:PyramidNetにstochasBc	depthを適用したもの	
•  PyramidSepDrop:PyramidDropにおいて、入力xと	
zer...
個⼈的なベストプラクティス	
•  ネットワーク:Wide Residual Networkがお⼿軽
•  Residual unit:pre-act
–  BN-ReLU-Conv-BN-ReLU-Conv
•  初期化:He+(MSRA)
...
闇	
IdenBty	Mappings	in	Deep	Residual	Networks
闇	
Deep	Pyramidal	Residual	Networks
闇	
Wide	Residual	Networks
闇	
Aggregated	Residual	TransformaBons	for	Deep	Neural	Networks	
ResNetの亜種でも…Fractal	Net、Dense	Net、Highway	networks、
PolyNe...
参考資料	
•  元ネタ
–  http://qiita.com/yu4u/items/4a35b47d5cab8463a4cb
•  ⾊々なChainer実装
–  http://qiita.com/aiskoaskosd/items/59c...
Upcoming SlideShare
Loading in …5
×

ConvNetの歴史とResNet亜種、ベストプラクティス

5,513 views

Published on

Brief history of convolutional neural networks, variants of residual networks, and their best practices

Published in: Technology
  • Be the first to comment

ConvNetの歴史とResNet亜種、ベストプラクティス

  1. 1. ConvNetの歴史とResNet亜種、 ベストプラクティス Yusuke Uchida@DeNA
  2. 2. はじめに •  ⽬的:ConvNetのデファクトであるResNetを理解 –  ResNetに⾄るまでの歴史Overview –  ResNetの亜種 –  ResNetのベストプラクティス
  3. 3. LeNet-5 [Lecun+’98] conv 5x5, 6 conv 2x2 stride=(2, 2) conv 5x5, 16 conv 2x2 stride=(2, 2) Feature map 毎 •  convにパディングなし、subsamplingが2x2のconv •  入力の全channelと結合していないconvがある
  4. 4. AlexNet [Krizhevsky+’12] conv 11x11, 48 stride=(4, 4) max-pool 3x3 stride=(2, 2) •  conv 11x11と大きいフィルタを利用 •  overlapping pooling •  dropoutの利用 •  acBvaBonにReLUを利用 •  Local Response NormalizaBonの利用(BNでオワコン化)
  5. 5. VGGNet [Simonyan+’14] 112x112 56x56 28x28 14x14 •  全て3x3のconv、2x2のmaxpooling、より深く •  半分にダウンサンプリングしてフィルタ数を2倍にする
  6. 6. ResNet [He+’15] •  背景 –  深すぎるネットワークは学習が難しい –  過学習ではなく訓練誤差すら⼩さくならない –  直感的には、浅いネットワークに層を追加すれば訓練誤差は下がり そう
 (⼊⼒をそのまま出⼒するような層を追加すれば少なくとも訓練誤 差は上がらない) –  勾配消失でもない(適切な初期化やBNをしても発⽣) –  直接⽬的関数H(x)を学習するのではなく、その残差F(x)=H(x)-xを
 学習するネットワークを提案
  7. 7. ResNet [He+’15] 基本形(実は単純) ??? 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 画像サイズ •  Residual unitを重ねていくだけ •  Batch normalizaBon •  画像サイズを半分+フィルタ数を倍に •  最後はglobal average pooling Building block / Residual unit
  8. 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. 9. Residual Networks Behave Like Ensembles of Relatively Shallow Networks [Veit+’16](参考) •  VGG:認識精度がほぼランダムな認識と同じ程度まで低下 •  ResNet:ほとんど影響なし •  精度が多少低下しているのはダウンサンプリングを行っている residual unitを削除した場合 •  ショートカットの存在により、ResNetが浅いネットワークの アンサンブル学習を行っているという解釈 VGGとResNetでそれぞれランダムに1つだけレイヤを削除した場合の認識精度
  10. 10. Residual Networks Behave Like Ensembles of Relatively Shallow Networks [Veit+’16](参考)
  11. 11. Wide ResNet [Zagoruyko+’16] conv 3x3, 64xK conv 3x3, 128xK conv 3x3, 256xK conv 3x3, 512xK global average pooling FC x N1 x N2 x N3 x N4 56x56 28x28 14x14 7x7 画像サイズ •  フィルタ数をK倍したResNet •  深いネットワークより(相対的に)浅くWideなネットワークのほうが パラメータ数は増加するが高精度+高速に学習できる •  Residual unitの中にdropoutを入れることを提案
  12. 12. PyramidNet [Han+’16] •  ResNetはランダムに層を削除しても精度がほとんど低下しない •  ダウンサンプリング層(フィルタ数を2倍にしているところ)は唯一精度が低下 •  この層への依存が強く、アンサンブル学習としては望ましくない →全てのresidual unitで少しずつフィルタ数を増加させる •  増加のさせ方として、単調増加させるaddiBve PyramidNetと 指数的に増加させるmulBplicaBve PyramidNetを提案 →addiBveのほうが高精度 •  Residualと相関の低い特徴をちょっとずつ抽出しているイメージ?
  13. 13. PyramidNet [Han+’16] •  Zero-paddingを行っているresidual unitは上記(b)のように チャネルが増えないresidual unit(左)と、通常のconv(右)の 組み合わせとみなすことができる
  14. 14. Deep Networks with Stochastic Depth [Huang+’16] •  ResNetは非常にdeepであることが学習を難しくしている →訓練時は「期待値で見たときの深さ」を浅くしてあげよう •  バッチ毎にresidual unitをランダムにdropする •  Drop確率は出力に近いほど高くなるように線形に増加させる →期待値で見たときのネットワークの深さが小さくなる •  テスト時にはdropせずに、各層のdrop率で出力をスケーリング •  通常のResNetと比較して、学習が早く、高精度
  15. 15. PyramidSepDrop [Yamada+’16] •  PyramidDrop:PyramidNetにstochasBc depthを適用したもの •  PyramidSepDrop:PyramidDropにおいて、入力xと zero-paddingに対応するチャネルに独立にstochasBc depthを適用 •  PyramidSepDrop > PyramidNet > PyramidDrop •  前述のPyramidNetにおけるresidual unitと通常のconvの 組み合わせという観点ではSepDropのほうが自然に見える •  CIFAR-10/100でSOTA
  16. 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に)
  17. 17. 闇 IdenBty Mappings in Deep Residual Networks
  18. 18. 闇 Deep Pyramidal Residual Networks
  19. 19. 闇 Wide Residual Networks
  20. 20. 闇 Aggregated Residual TransformaBons for Deep Neural Networks ResNetの亜種でも…Fractal Net、Dense Net、Highway networks、 PolyNet、Residual Networks of Residual Networks…
  21. 21. 参考資料 •  元ネタ –  http://qiita.com/yu4u/items/4a35b47d5cab8463a4cb •  ⾊々なChainer実装 –  http://qiita.com/aiskoaskosd/items/59c49f2e2a6d76d62798 •  より広範な資料 –  http://slazebni.cs.illinois.edu/spring17/lec04_advanced_cnn.pdf

×