Index
RepVGG
VGG の改善.
モチベーション
複雑な multi-branch designs の欠点を改善.
- 実装や、カスタマイズすることが難しくなり、予測処理が遅くなる
- メモリーアクセスが多い
工夫
Model Re-parameterization
- DiracNet
- Diracnets: Training very deep neural networks without skip-connections
- [2017]
- arxiv.org
Winograd Convolution
Architecture
- (A) : 通常の ResNet
- (B) : RepVGG training
- (C) : RepVGG inference
Training-time
は、residual block
また、足し合わせる時に次元が合っていなければ、 の conv を追加する.
は、convolutional shortcut
ここまでは、通常の ResNet.
- ResNet
multi-branch architecture の良さは、モデルを浅くしたまま、アンサンブルのようなことができる.
そこで、RepVGG では、training 時には、さらに branch を追加した.
Re-param for Plain Inference-time Model
以下のようなconvolution の重みを考える.
: input channel
: output channel
次に、BN のパラメータを考える.
: mean
: standard deviation
: learned scaling factor
: bias
次に、入力 / 出力
(特徴量) を考える.
実際に、上の multi-branch で、入力から出力を定式化すると以下のようになる.
(複数の conv + bn の計算をしなくても、一つの convで、同様の計算をすることが目標)
bn の計算は、
上の計算と同等の conv を1つになるように変換する.
変換1 : Conv + BN -> Conv
変換2 : 1x1 conv, identity mapping -> 3x3 conv
変換3 : 3x3 conv x3 -> 3x3 conv
重みを足し合わせる.
参考
- RepVGG: Making VGG-style ConvNets Great Again
- [2021]
- 1 Introduction
- VGG / Inception / ResNet / DenseNet
- Xception / MobileNet / ShuffleNet
- 2 Related Work
- 2.3 Model Re-parameterization
- 2.4 Winograd Convolution
- 3 Building RepVGG via Structural Re-param
- 3.2 Training-time Multi-branch Architecture
- 3.3 Re-param for Plain Inference-time Model
- arxiv.org