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にパディングなし、subsamplingが2x2のconv	
•  入力の全channelと結合していないconvがある
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でオワコン化)
VGGNet [Simonyan+’14]	
112x112	
56x56	
28x28	
14x14	
•  全て3x3のconv、2x2のmaxpooling、より深く	
•  半分にダウンサンプリングしてフィルタ数を2倍にする
ResNet [He+’15]	
•  背景
–  深すぎるネットワークは学習が難しい
–  過学習ではなく訓練誤差すら⼩さくならない
–  直感的には、浅いネットワークに層を追加すれば訓練誤差は下がり
そう

(⼊⼒をそのまま出⼒するような層を追加すれば少なくとも訓練誤
差は上がらない)
–  勾配消失でもない(適切な初期化やBNをしても発⽣)
–  直接⽬的関数H(x)を学習するのではなく、その残差F(x)=H(x)-xを

学習するネットワークを提案
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
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
Residual Networks Behave Like Ensembles of Relatively
Shallow Networks [Veit+’16](参考)	
•  VGG:認識精度がほぼランダムな認識と同じ程度まで低下	
•  ResNet:ほとんど影響なし	
•  精度が多少低下しているのはダウンサンプリングを行っている	
residual	unitを削除した場合	
•  ショートカットの存在により、ResNetが浅いネットワークの	
アンサンブル学習を行っているという解釈	
VGGとResNetでそれぞれランダムに1つだけレイヤを削除した場合の認識精度
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	
x	N1	
x	N2	
x	N3	
x	N4	
56x56	
28x28	
14x14	
7x7	
画像サイズ	
•  フィルタ数をK倍したResNet	
•  深いネットワークより(相対的に)浅くWideなネットワークのほうが	
パラメータ数は増加するが高精度+高速に学習できる	
•  Residual	unitの中にdropoutを入れることを提案
PyramidNet [Han+’16]	
•  ResNetはランダムに層を削除しても精度がほとんど低下しない	
•  ダウンサンプリング層(フィルタ数を2倍にしているところ)は唯一精度が低下	
•  この層への依存が強く、アンサンブル学習としては望ましくない	
→全てのresidual	unitで少しずつフィルタ数を増加させる	
•  増加のさせ方として、単調増加させるaddiBve	PyramidNetと	
指数的に増加させるmulBplicaBve	PyramidNetを提案	
→addiBveのほうが高精度	
•  Residualと相関の低い特徴をちょっとずつ抽出しているイメージ?
PyramidNet [Han+’16]	
•  Zero-paddingを行っているresidual	unitは上記(b)のように	
チャネルが増えないresidual	unit(左)と、通常のconv(右)の	
組み合わせとみなすことができる
Deep Networks with Stochastic Depth [Huang+’16]	
•  ResNetは非常にdeepであることが学習を難しくしている	
→訓練時は「期待値で見たときの深さ」を浅くしてあげよう	
•  バッチ毎にresidual	unitをランダムにdropする	
•  Drop確率は出力に近いほど高くなるように線形に増加させる	
→期待値で見たときのネットワークの深さが小さくなる	
•  テスト時にはdropせずに、各層のdrop率で出力をスケーリング	
•  通常のResNetと比較して、学習が早く、高精度
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
個⼈的なベストプラクティス	
•  ネットワーク: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に)
闇	
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、
PolyNet、Residual	Networks	of	Residual	Networks…
参考資料	
•  元ネタ
–  http://qiita.com/yu4u/items/4a35b47d5cab8463a4cb
•  ⾊々なChainer実装
–  http://qiita.com/aiskoaskosd/items/59c49f2e2a6d76d62798
•  より広範な資料
–  http://slazebni.cs.illinois.edu/spring17/lec04_advanced_cnn.pdf

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