コンピュータービジョン

RegNet れぐねっと

RegNetネットワーク設計空間CNNFacebook AI Researchモデル設計画像認識
RegNetについて教えて

簡単に言うとこんな感じ!

RegNetは「モデルを手で設計するのではなく、設計空間を体系的に探索してネットワークの規則性(Regularity)を発見する」アプローチで生まれたCNNだよ。Facebookが2020年に発表し、「良いモデルには共通した設計パターンがある」ことを示したんだ!


RegNetとは

RegNet(Regularized Network) は、2020年にFacebook AI Research(FAIR)のRadosavovic・Dollárらが発表したネットワーク設計空間(Design Space)の体系的探索から生まれたCNNアーキテクチャです。

従来のモデル設計は「人間が経験とヒューリスティクスで手動設計する」方法でした。RegNetは数百万のモデルをサンプリング・評価することでネットワーク設計の「規則性(Regularity)」を発見するアプローチを取ります。

発見された規則性は「幅(チャンネル数)は線形に増加する」「深さ(層数)は固定または緩やかに増加する」「ボトルネック比は一定にする」などで、これに従って設計されたRegNetはResNetEfficientNetを同じ計算量で精度で上回る多くの設定で確認されました。


RegNetの設計原則

パラメータ従来の試行錯誤RegNetの発見した規則
チャンネル幅経験的に設定段階ごとに線形に増加
深さ均等または試行固定または緩やか増加
グループ幅固定値8以上の固定値が良い
ボトルネック比変化する1固定が最適に近い

歴史と背景

  • 2020年:論文「Designing Network Design Spaces」を発表。RegNetXとRegNetYを公開
  • 2020年:RegNetが同計算量のEfficientNetを超える精度をいくつかの設定で達成
  • 2021年:PyTorchのtorchvisionに公式実装が追加される
  • 現在:検出・セグメンテーションなどのバックボーンとして使用されているが、ViT系の台頭で主役の座はやや後退

RegNetの系統

バリアント特徴
RegNetX通常のグループ畳み込みのみ使用
RegNetYRegNetX + Squeeze-and-Excitation(チャンネルアテンション)を追加
import torchvision.models as models

# RegNetY-8GFを使用(高精度版)
regnet = models.regnet_y_8gf(pretrained=True)
print(f"パラメータ数: {sum(p.numel() for p in regnet.parameters()):,}")

EfficientNet・ResNetとの比較

モデル計算量精度(Top-1)設計方法
ResNet-504.1G76.1%手動
EfficientNet-B44.2G82.6%複合スケーリング
RegNetY-8GF8G82.2%設計空間探索

関連用語