[論文レビュー] RepVGG: Making VGG-style ConvNets Great Again
RepVGGは訓練時にマルチブランチのアーキテクチャで学習し、推論時には構造的再パラメータ化を介して平易な3x3 conv本体へ変換することで、GPU上の推論を高速化しつつ高い精度を達成します。
We present a simple but powerful architecture of convolutional neural network, which has a VGG-like inference-time body composed of nothing but a stack of 3x3 convolution and ReLU, while the training-time model has a multi-branch topology. Such decoupling of the training-time and inference-time architecture is realized by a structural re-parameterization technique so that the model is named RepVGG. On ImageNet, RepVGG reaches over 80% top-1 accuracy, which is the first time for a plain model, to the best of our knowledge. On NVIDIA 1080Ti GPU, RepVGG models run 83% faster than ResNet-50 or 101% faster than ResNet-101 with higher accuracy and show favorable accuracy-speed trade-off compared to the state-of-the-art models like EfficientNet and RegNet. The code and trained models are available at https://github.com/megvii-model/RepVGG.
研究の動機と目的
- マルチブランチアーキテクチャに並ぶ、単純で高速、メモリ効率の良い CNN の設計を動機づける。
- 構造的再パラメータ化を介して訓練時の複雑さと推論時の単純さを切り離す。
- ImageNetとセマンティックセグメンテーション課題での性能と速度の利点を実証する。
提案手法
- 訓練時のマルチブランチブロック(アイデンティティおよび1x1ブランチを含む)と、推論時には積み重ねた3x3畳み込みと ReLU からなる平易な本体を備える RepVGG を提案する。
- デプロイのために訓練時のマルチブランチブロックを等価な単一の3x3 convカーネルへ変換する構造的再パラメータ化を用いる(BN Folding とカーネル集約)。
- BN と前の conv を統合し、1x1 および identity の寄与を最終的な 3x3 カーネルへ足し合わせ、パディングとストライドを揃える式を導出する。
- VGG風の平易なトポロジーで 5 ステージのアーキテクチャを実装し、3x3 畳み込みと制御されたダウンサンプリング、グローバル平均プーリング、および最終分類ヘッドを用いる。
- ブランチ有無のバリアントを検討し、BN の配置を削除・有する実験を行い、ResNet、EfficientNet、RegNet のベースラインと比較する。
実験結果
リサーチクエスチョン
- RQ1訓練時のマルチブランチ設計を、精度を犠牲にすることなく高速な普通の推論時アーキテクチャへ再パラメータ化できるのか。
- RQ2ImageNet 上で、RepVGG のスピード-精度のトレードオフは最先端モデル(ResNet、EfficientNet、RegNet)とどう比較されるか。
- RQ33x3 畳み込みを用いた VGG 風の平易な本体は ImageNet で競争力があり、セマンティックセグメンテーションへ転用可能か。
- RQ4訓練時構造における identity および 1x1 ブランチの有無、BN の配置、ReLU の有無が最終性能に与える影響はどれか。
- RQ5構造的再パラメータ化はメモリ使用量とデプロイの単純さに実用的な利得をもたらすのか。
主な発見
| Model | Top-1 acc | Speed (examples/s) | Params (M) | Theo FLOPs (B) | Wino MULs (B) |
|---|---|---|---|---|---|
| RepVGG-A0 | 72.41 | 3256 | 8.30 | 1.4 | 0.7 |
| ResNet-18 | 71.16 | 2442 | 11.68 | 1.8 | 1.0 |
| RepVGG-A1 | 74.46 | 2339 | 12.78 | 2.4 | 1.3 |
| RepVGG-B0 | 75.14 | 1817 | 14.33 | 3.1 | 1.6 |
| ResNet-34 | 74.17 | 1419 | 21.78 | 3.7 | 1.8 |
| RepVGG-A2 | 76.48 | 1322 | 25.49 | 5.1 | 2.7 |
| RepVGG-B1g4 | 77.58 | 868 | 36.12 | 7.3 | 3.9 |
| RepVGG-B1g2 | 77.78 | 792 | 41.36 | 8.8 | 4.6 |
| ResNet-50 | 76.31 | 719 | 25.53 | 3.9 | 2.8 |
| RegNetX-3.2GF | 77.98 | 671 | 15.26 | 3.2 | 2.9 |
| RepVGG-B2 | 78.78 | 460 | 80.31 | 18.4 | 9.1 |
| ResNet-101 | 77.21 | 430 | 44.49 | 7.6 | 5.5 |
| VGG-16 | 72.21 | 415 | 138.35 | 15.5 | 6.9 |
| ResNeXt-101 | 78.42 | 295 | 44.10 | 8.0 | 7.9 |
| RepVGG-B2g4 | 78.50 | 581 | 55.77 | 11.3 | 6.0 |
| RepVGG-B3g4 | 80.21 | 464 | 75.62 | 16.1 | 8.4 |
| RepVGG-B3 | 80.52 | 363 | 110.96 | 26.2 | 12.9 |
| RegNetX-12GF | 80.55 | 277 | 46.05 | 12.1 | 10.9 |
| EfficientNet-B3 | 79.31 | 224 | 12.19 | 1.8 | - |
- RepVGG は plain 推論時のアーキテクチャで 80% を超える top-1 精度を ImageNet で達成し、彼らの報告における plain model の初となる。
- NVIDIA 1080Ti では、RepVGG モデルは ResNet-50 および ResNet-101 より高速で、精度が高く、EfficientNet および RegNet と比べても speed-accuracy が有利。
- 交互に組み込まれたグループワイズ畳み込み(g2/g4)を用いたアーキテクチャの変種は、精度の損失は小さく substantial speedups を生む(例: RepVGG-B1g4 vs ResNet-101)。
- 構造的再パラメータ化(訓練時のマルチブランチを推論時の平易な形へ)は不可欠であることが検証され、ブランチの削除や BN の配置を外すと精度が低下する一方、完全な再パラメータ化が最良の結果をもたらす。
- アブレーションでは、訓練時の BN とブランチがパラメータ数を超える利点を提供し、DiracNet や単純な再パラメータ化を上回る。
- RepVGG-B2/B3 変種は、複数のベースラインと比較して FLOPs が競合的で、パラメータ数が少なく、ImageNet で高い性能を示す(例: up to 80.52% top-1)。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。