1.1 従来のモデルスケーリング手法の限界

畳み込みニューラルネットワーク(CNN)の性能向上には、モデルの規模を拡大するスケーリングが一般的に用いられてきた。従来の手法では、ネットワークの深さ(レイヤー数)、幅(チャネル数)、入力解像度の3要素を独立に調整していた。しかし、これらの要素を単独で拡大すると、精度向上が頭打ちになる傾向があった。例えば、深さのみを増やすと勾配消失や表現力の飽和が生じ、幅のみを増やすと特徴の冗長性が高まり、解像度のみを上げると計算コストが急増する。また、個別のスケーリングでは各要素間の相互作用が考慮されず、限られた計算資源に対して最適なバランスを達成できないという課題があった。

1.2 複合スケーリングの着想

これらの限界を克服するため、Googleの研究チームは深さ・幅・解像度を同時に、かつ一定の比率で拡大する「複合スケーリング(Compound Scaling)」を提案した。この着想は、CNNの各レイヤーが入力解像度に応じて受容野を広げ、チャネル数に応じて特徴量を豊かにするという観察に基づく。解像度が上がればより深い層が必要となり、幅も比例して増やすことで特徴抽出のバランスが保たれる。複合スケーリングはこのような依存関係モデル化し、効率的な精度向上を実現する。

2.1 ベースラインネットワーク(EfficientNet-B0)

2.1.1 MBConv(Mobile Inverted Bottleneck Convolution)ブロック

EfficientNet-B0の基本構成要素は、MobileNetV2で導入されたMBConvブロックである。MBConvは1×1の拡張畳み込みでチャネル数を増やした後、Depthwise畳み込みで空間特徴を抽出し、再度1×1の縮小畳み込みでチャネル数を減らす。この構造はパラメータ数と計算量を抑えつつ、表現力を維持する。EfficientNetではさらに活性化関数Swish(SiLU)を採用し、バッチ正規化を組み合わせている。

2.1.2 Squeeze-and-Excitation(SE)機構

各MBConvブロックには、Squeeze-and-Excitation(SE)モジュールが組み込まれている。SE機構は、グローバル平均プーリングでチャネルごとの重要度を集約し、2つの全結合層でチャネル間の依存関係を学習する。これにより、重要な特徴チャネルを強調し、不要なものを抑制する動的なチャネル重み付けが可能となる。SEモジュールはわずかなパラメータ追加で精度向上に貢献する。

2.1.3 全体構造とパラメータ分布

EfficientNet-B0は、MBConvブロックを7つのステージに分割して構成される。各ステージでは、MBConvの拡張率、カーネルサイズ、繰り返し数、チャネル数が異なる。初期ステージは少ないチャネル・浅い層で低レベル特徴を抽出し、後期ステージはチャネル数・層数が増加して高レベル特徴を捉える。全体のパラメータ数は約530万と、同等性能の従来モデル(ResNet-50など)よりも大幅に少ない。

2.2 Neural Architecture SearchNAS)による探索

2.2.1 探索空間報酬関数

EfficientNet-B0の構造は、Neural Architecture Search(NAS)によって自動設計された。探索空間は、MBConvブロックの種類(カーネルサイズ、拡張率)、各ステージの層数、チャネル数、SEの有無など、深さ・幅・解像度の組み合わせから構成される。報酬関数には、ImageNet検証セットでのトップ1精度を計算コスト(FLOPS)ペナルティと組み合わせた指標を用い、限られたリソースで最大精度を達成する構造を探索する。

2.2.2 得られた最適構造の特徴

NASによって発見された最適なEfficientNet-B0は、従来の手設計モデルと比較して次の特徴を持つ。カーネルサイズは3×3と5×5が混在し、拡張率は6が多く採用される。また、SE機構はすべてのMBConvブロックに含まれる。ステージごとのチャネル数は、初期の低解像度では少なく、後期の高解像度で急増する非対称な分布を示す。この構造は、計算資源を効率的に配分し、精度と効率のバランスを最適化している。

3.1 スケーリング係数の定義

3.1.1 深さ係数(d)

深さ係数dは、各ステージのMBConvブロックの繰り返し数をスケーリングするための係数である。d>1の場合、ステージ内の層数がd倍に増加する。深さを増やすことで特徴の階層的表現が強化されるが、勾配消失や過学習のリスクが高まるため、dは他の係数と連動して設定される。

3.1.2 幅係数(w)

幅係数wは、各レイヤーのチャネル数をスケーリングするための係数である。w>1の場合、すべてのMBConvブロックの入出力チャネル数がw倍に増加する。幅を増やすことで特徴の多様性が向上するが、計算コストはチャネル数の2乗に比例して増加するため、wは慎重に選ばれる。

3.1.3 解像度係数(r)

解像度係数rは、入力画像の解像度をスケーリングするための係数である。ベースラインの解像度(通常224×224)に対してr倍に拡大する。解像度を上げることで細かい特徴を捉えやすくなるが、計算コストは2乗に比例する。また、過度な解像度はメモリ使用量を急増させる。

3.2 複合スケーリング式とその導出

3.2.1 計算リソース制約下の最適化

複合スケーリングでは、深さ・幅・解像度の係数をそれぞれd、w、rとし、計算リソース(FLOPs)を2倍、3倍…と増やす際に、目標とする資源増加量に対して各係数を均等に割り当てる。具体的には、総計算量がd × w² × r²に比例することを利用し、d、w、rをそれぞれα、β、γのべき乗で表す。すなわち、d=α^φ、w=β^φ、r=γ^φとし、α×β²×γ²≒2(φ=1で2倍のリソース)を満たすように設定する。

3.2.2 グリッド探索による係数決定

実際の係数α、β、γは、EfficientNet-B0をベースに小規模なグリッド探索で決定される。探索では、α、β、γの組み合わせを試し、計算リソース制約(例えば2倍、3倍)のもとでImageNet精度が最大となる組み合わせを選択する。典型的な値はα=1.2、β=1.1、γ=1.15程度であり、φを0~7まで変化させることでB1~B7を生成する。

4.1 EfficientNet-B0~B7のスペック

4.1.1 各バリエーションのパラメータ数とFLOPs

EfficientNet-B0は約530万パラメータ、0.39B FLOPsである。B1ではパラメータ数が約780万、0.70B FLOPs、B2では約1.0Bパラメータ、1.1B FLOPsと増加する。最大のB7では約6,600万パラメータ、37.0B FLOPsに達する。複合スケーリングにより、パラメータ数とFLOPsはφに対してほぼ2^φ倍で増加する。

4.1.2 推論速度とメモリ使用量

推論速度はFLOPsに比例するが、実際の処理時間はハードウェア最適化やメモリ帯域の影響を受ける。B0はモバイルデバイスでもリアルタイム推論が可能であり、B5以上ではGPUが必要となる。メモリ使用量は解像度に強く依存し、B7では入力解像度が600×600と高いため、GPUメモリを数十GB消費する。

4.2 画像分類におけるベンチマーク結果

4.2.1 ImageNetでのトップ1精度比較

ImageNet検証セットにおいて、EfficientNet-B0はトップ1精度76.3%を達成し、同規模のMobileNetV2(71.8%)を上回る。B7ではトップ1精度84.4%に達し、当時最先端のGPipe(84.3%)をパラメータ数で約1/8に削減して同等精度を達成した。従来のResNet-152(78.6%・6,000万パラメータ)と比較しても、B4(82.6%・1,900万パラメータ)が大幅に効率的である。

4.2.2 他のタスクへの転移学習性能

EfficientNetは転移学習においても高い性能を示す。CIFAR-10、CIFAR-100、Food-101などの標準ベンチマークで、ファインチューニング後の精度が従来モデルを上回る。特に、少ないデータセットでも安定した収束が観察される。これは、事前学習された特徴表現が汎用的でバランスが取れているためと考えられる。

5.1 主要フレームワークでの利用方法

5.1.1 TensorFlow/Keras実装

TensorFlowでは、tf.keras.applications.EfficientNetモジュールとして公式に提供される。EfficientNetB0からEfficientNetB7までのモデルが利用可能で、weights='imagenet'で事前学習済み重みを読み込める。また、input_shapeを変更することで任意の解像度に対応できる。

5.1.2 PyTorch実装(timmライブラリ等)

PyTorchでは、Ross Wightman氏が開発したtimmライブラリが最も広く使われる。timm.create_model('efficientnet_b0', pretrained=True)のように簡単に読み込める。また、公式のtorchvisionでも0.9以降でサポートされている。両者とも、転移学習用の高レベルインターフェースを提供している。

5.2 応用事例

5.2.1 医療画像解析

EfficientNetは、X線写真やCT画像の分類タスクで高い性能を発揮する。例えば、胸部X線画像からの肺炎検出では、B3クラスが少ないパラメータで高精度を達成し、限られた医療リソースでも利用可能である。また、病理画像の腫瘍分類においても、転移学習による高速な適応が報告されている。

5.2.2 物体検出(EfficientDetとの関連)

EfficientNetの特徴抽出能力は、物体検出モデルEfficientDetのバックボーンとして採用された。EfficientDetはEfficientNetをベースに、BiFPN(双方向特徴ピラミッドネットワーク)と複合スケーリングを適用し、COCOデータセットにおいて当時の最先端精度を達成した。これにより、画像分類から物体検出への応用範囲が広がった。

5.2.3 セマンティックセグメンテーション

セマンティックセグメンテーションでは、EfficientNetをエンコーダとして用い、デコーダ(例えばDeepLabV3+)と組み合わせる。解像度スケーリングの柔軟性から、高解像度のセグメンテーションマスクを効率的に生成できる。CityscapesやADE20Kベンチマークで競争力のある結果を示している。

6.1 大規模データセットでのスケーリング限界

6.1.1 過度なスケーリングによる精度飽和

EfficientNetをB7より大きくスケーリングすると、精度向上が鈍化する現象が観察される。理由として、深さの増加による勾配問題や、幅拡大による特徴の冗長性、解像度上昇によるノイズ増加が挙げられる。複合スケーリングの比率が固定されているため、データセットやタスクによって最適なバランスが変化することも要因である。

6.1.2 計算資源と実用性のトレードオフ

B5以上のモデルは、推論にGPUを要し、メモリ消費が大きい。特にモバイルやエッジデバイスではB0~B2が現実的である。また、訓練時間もスケーリングに比例して増加し、大規模なモデルは研究目的に限られる。実運用では、必要な精度と許容されるリソースのバランスを考慮したモデル選択が重要となる。

6.2 EfficientNetV2への進化

6.2.1 Fused-MBConvの導入

EfficientNetV2では、従来のMBConvの一部をFused-MBConvに置き換えた。Fused-MBConvは、通常の畳み込み(3×3など)で拡張とDepthwise畳み込みを一体化したブロックであり、訓練速度と推論効率を向上させる。特に、初期ステージでFused-MBConvを用いることで、GPUでの並列処理が改善される。

6.2.2 適応型スケーリング戦略

EfficientNetV2は、固定比率の複合スケーリングに代わり、訓練効率を考慮した適応型スケーリングを採用する。具体的には、各ステージのスケーリング係数を個別に調整し、計算資源当たりの精度向上率を最大化する。また、学習率や正則化をスケーリングに応じて動的に変更することで、過学習を抑制しながら大規模モデルを安定して訓練できる。これにより、EfficientNetV2は同等精度で2~4倍高速な訓練を実現した。