EfficientNetは、Googleが提案した効率重視のCNNです。AlexNetが「深くして勝つ」、DenseNetやResNetが「つなぎ方で深くする」方向だったのに対し、EfficientNetは深さ・幅・解像度の三つを同時にバランスよく拡大する——複合スケーリング(Compound Scaling)——本記事は係数φの暗記ではなく、「なぜ一軸だけ伸ばすと非効率になるか」に焦点を当てます。
スケールの三つのノブ
CNNを大きくする方法は、おおむね三つに分けられます。
| ノブ | 何を増やすか | 単独で伸ばすと… |
|---|---|---|
| 深さ(Depth) | 層の数 | 勾配・過学習の課題(ResNetが対処、G-322) |
| 幅(Width) | チャネル数・フィルタ数 | パラメータ爆発、特徴の冗長化 |
| 解像度(Resolution) | 入力画像のピクセル数 | 計算量が二乗的に増加 |
従来は「層だけ深く」「チャネルだけ太く」と一軸ずつ試すことが多かった。EfficientNetは、三つを一定の比率で同時に伸ばす方が精度あたりの計算コストが良い——という発見を体系化しました。
複合スケーリングの直感
複合スケーリングの考え方はシンプルです。
深さ・幅・解像度を、同じ倍率 φ で協調的に拡大する。
- ベースネット — 小さく効率の良い基本構造(MobileNet系の畳み込みブロック)を設計
- スケール係数 φ — B0, B1, B2… と段階的に三つのノブを同時に拡大
- 精度とFLOPs — 同じ計算量でより高精度、同じ精度でより軽量——を両立
試験では「深さ・幅・解像度を複合スケール」がキーワードです。G-406の量子化やプルーニングといった事後の軽量化とは別で、設計段階から効率を狙うアプローチです。
土台となる畳み込みブロック
EfficientNetの骨格はMBConv(Mobile Inverted Bottleneck Convolution)など、深度方向畳み込み+畳み込みの組み合わせでパラメータを抑えるブロックです。詳細の暗記より、「軽量ブロック × 複合スケール」の二層構造で理解すれば試験に十分なことが多いです。
HQ-0298のCNN定義——畳み込みで局所特徴を捉える——は共通ですが、EfficientNetはどのCNNよりも「計算あたりの精度」を重視した設計名として位置づけられます。
他のCNNとの位置づけ
| モデル | 工夫の焦点 | 試験での整理 |
|---|---|---|
| AlexNet | 深層CNNの実用化(2012年) | 歴史的ランドマーク |
| ResNet | 残差接続で深く学習 | G-235 / G-322 |
| DenseNet | 密結合で特徴再利用 | 接続設計の別解 |
| EfficientNet | 三軸の複合スケールで効率化 | 精度/FLOPsのバランス |
| BERT | NLPの事前学習 | 別ドメイン(G-323) |
試験で押さえるポイント
- 定義 — 深さ・幅・解像度を複合スケールした効率CNN
- キーワード — Compound Scaling、計算効率と精度の両立
- 対比 — ResNet=残差、DenseNet=密結合、EfficientNet=三軸スケール
- すり替え回避 — 軽量化手法全般・NLPモデル・物体検出専用名ではない
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| EfficientNet=ResNet | 複合スケール vs 残差接続 |
| EfficientNet=量子化 | 設計時の効率 vs 事後の軽量化(G-406) |
| EfficientNet=CNN全体の別名 | 一アーキテクチャ名 |
| EfficientNet=モバイルアプリ | モデル設計。製品名ではない |
| 解像度スケール=画像拡大処理 | 入力サイズの設計選択 |
よくある質問
EfficientNetは何をするアーキテクチャですか?
画像認識向けのCNN設計で、層の深さ・チャネル幅・入力解像度の三つを複合スケーリングでバランスよく拡大し、少ない計算量で高い精度を狙うアーキテクチャです。モバイルやエッジでも使われる効率重視の代表例として知られます。
EfficientNetとResNetは同じですか?
同じではありません。ResNetは残差接続で深いネットワークの学習を可能にしたCNNの代表です。EfficientNetは深さだけでなく幅と解像度も含めた複合スケーリングで効率と精度のバランスを取る別設計です。いずれも画像認識向けCNNですが、工夫の焦点が異なります。
EfficientNetはBERTですか?
いいえ。EfficientNetは画像認識向けのCNNアーキテクチャ、BERTは自然言語処理向けのTransformerエンコーダです。ドメインも構造も異なります。