モデルを大きくすれば精度は上がる――でも、どこをどれだけ大きくするのが正解なのでしょうか。この問いに「深さ・幅・解像度をバランスよく同時に」と答えたのがEfficientNetです。この記事では、その核心である複合スケーリングを解説します。
📖 ひと言でいうと
EfficientNetとは、2019年にGoogle Brainの研究者らが提案した画像認識モデルで、ネットワークの深さ・幅・入力解像度という3要素をバランスよく同時に拡大する「複合スケーリング(Compound Scaling)」により、少ないパラメータ数で高い精度を実現したモデルです。
たとえるなら、筋トレの設計に似ています。腕(深さ)だけ、脚(幅)だけを集中的に鍛えても全体のパフォーマンスは頭打ちになります。全身を決まった比率でバランスよく鍛えるほうが、同じトレーニング量(計算資源)で最も強くなれる――EfficientNetは、その「最適な比率」を見つけてモデル拡大に適用した手法です。
🖼 1枚でわかるEfficientNet
📘 公式テキストの説明
EfficientNetは、2019年にGoogle Brainの研究者らが提案した画像認識モデルで、モデルのスケーリング手法を再考することで高い精度と効率性を実現している。従来のモデルは、深さ、幅、解像度のいずれか一つの要素を個別に拡張することで性能向上を図っていたが、EfficientNetはこれら三つの要素をバランスよく同時に拡張する「複合スケーリング(Compound Scaling)」を採用している。このアプローチにより、EfficientNetは少ないパラメータ数で高い精度を達成している。例えば、EfficientNet-B7は、従来の最先端モデルと比較して、約8分の1のパラメータ数で同等以上の精度を示している。EfficientNetのアーキテクチャは、Mobile Inverted Bottleneck(MBConv)と呼ばれるブロックを基盤としており、これにSqueeze-and-Excitation(SE)モジュールを組み合わせている。これにより、計算効率を維持しつつ、モデルの表現力を高めている。さらに、2021年にはEfficientNetの改良版であるEfficientNetV2が発表された。EfficientNetV2は、学習速度の向上とモデルサイズの削減を目指しており、プログレッシブラーニングと適応型正則化を導入している。これにより、EfficientNetV2は従来のモデルと比較して、学習時間を短縮しつつ高い精度を維持している。
軸は「従来=1要素だけを個別に拡張」対「EfficientNet=3要素をバランスよく同時に拡張」という対比です。そのうえで、数字(2019年・B7が約1/8のパラメータ数)、部品(MBConv+SEモジュール)、発展形(2021年のV2=プログレッシブラーニングと適応型正則化)を肉付けして覚えましょう。
🔍 しっかり理解する
モデルを大きくする3つの方向
CNNの性能を上げたいとき、大きくできる要素は3つあります。
- 深さ(depth) — 層の数を増やす。より複雑で抽象的な特徴を捉えられる
- 幅(width) — 各層のチャンネル数を増やす。よりきめ細かい特徴を並列に捉えられる
- 解像度(resolution) — 入力画像を大きくする。細部の情報をより多く取り込める
従来の研究はこのうちどれか1つを伸ばすのが主流でした(たとえばResNetは深さを追求)。しかし1要素だけを大きくしていくと、効果は次第に飽和します。層を増やしても入力画像が粗いままなら見える情報は増えませんし、解像度だけ上げても、それを処理する深さと幅が足りなければ活かしきれません。3要素は互いに依存しているのです。
- 深さ・幅・解像度のどれか1つを拡張
- 大きくするほど効果が飽和しやすい
- 計算資源に対する精度の伸びが非効率
- 3要素を決まった比率でバランスよく同時拡張
- 要素間の相乗効果を最大限に引き出す
- 少ないパラメータで高精度を達成
複合スケーリングの考え方
EfficientNetの複合スケーリングは、「3要素をどの比率で拡大すべきか」をあらかじめ小規模な実験で求めておき、あとは1つの係数(複合係数)を大きくするだけで、その比率を保ったまま深さ・幅・解像度を一括拡大する仕組みです。
こうして生まれたのがEfficientNet-B0からB7までのファミリーです。番号が大きいほど3要素が比率を保って大きくなり、精度も向上します。最大のB7は、従来の最先端モデルと比べて約8分の1のパラメータ数で同等以上の精度を達成しました。「大きさに対する精度」の効率が桁違いだったことが、このモデルの名前(Efficient=効率的)の由来です。
土台のブロック — MBConvとSEモジュール
複合スケーリングの効果は、拡大の出発点となる基準モデルが優秀であってこそ活きます。EfficientNetの基準モデルB0は、MobileNet系で使われるMobile Inverted Bottleneck(MBConv)を基本ブロックとし、チャンネルごとの重要度を学習して特徴を強弱づけするSqueeze-and-Excitation(SE)モジュールを組み合わせています。いずれも計算効率を保ちながら表現力を高める部品で、軽量な土台×最適な拡大比率という2段構えがEfficientNetの強さです。
💡 具体例で考える
エッジデバイスでの画像認識を考えます。スマートフォンや監視カメラに載せるモデルは計算資源が限られるため、「精度あたりの計算コスト」が選定基準になります。EfficientNetはB0〜B7というサイズ展開があるため、スマホにはB0、サーバーにはB7というように、同じ設計思想のまま計算予算に合わせてモデルを選べるのが実務上の大きな利点です。
さらに2021年に登場したEfficientNetV2は、学習速度の向上とモデルサイズの削減を狙った改良版です。学習の進行に応じて入力画像サイズを段階的に大きくしていくプログレッシブラーニングと、それに合わせて正則化の強さを変える適応型正則化を導入し、学習時間を短縮しながら高い精度を維持しています。
⚠️ よくある誤解・紛らわしい用語
- 「単なる軽量モデル」ではない — MobileNetのような軽量化専用モデルと混同されがちですが、EfficientNetの本質は「スケーリング(拡大)の方法論」です。小型版から当時最高水準の精度を持つ大型版までを1つの原理で作り分けます。
- 複合スケーリング=3要素を「個別に」調整、は誤り — ポイントは「バランスよく同時に」です。1要素ずつ独立にチューニングする従来手法との対比が問われます。
- MBConvやSEモジュールはEfficientNetの発明ではない — MBConvはMobileNetV2系、SEモジュールはSENetに由来する既存の部品で、EfficientNetはそれらを土台に採用したモデルです。
- V1とV2の混同 — 複合スケーリングは2019年のEfficientNet(V1)の貢献、プログレッシブラーニングと適応型正則化は2021年のEfficientNetV2の貢献です。どちらの特徴かを問うすり替えに注意しましょう。
📝 試験でのポイント
- 「深さ・幅・解像度の三要素をバランスよく同時に拡張する複合スケーリング」という記述は、EfficientNetを特定する最重要キーワードです。
- 「2019年」「Google Brain」「B7は従来の最先端モデルの約8分の1のパラメータ数で同等以上の精度」という事実は正誤判定の材料になります。
- アーキテクチャの構成部品(MBConvブロック+SEモジュール)の名称を問う出題が想定されます。
- EfficientNetV2(2021年・プログレッシブラーニング・適応型正則化・学習時間の短縮)は、V1の特徴と入れ替えた選択肢に注意しましょう。
📚 まとめ
- EfficientNetは2019年にGoogle Brainの研究者らが提案した画像認識モデルで、深さ・幅・解像度を最適な比率で同時に拡大する複合スケーリングが核心です。
- 1要素だけを拡張する従来手法の非効率を解消し、B7では従来の最先端モデル比で約1/8のパラメータ数で同等以上の精度を達成しました。
- 土台はMBConvブロックとSEモジュールによる高効率な基準モデルB0で、そこからB1〜B7のファミリーが展開されます。
- 2021年の改良版EfficientNetV2は、プログレッシブラーニングと適応型正則化で学習時間の短縮と高精度を両立しています。
