G検定(ジェネラリスト検定)
えふぃしぇんとねっと
EfficientNet
EfficientNet
EfficientNetは、ネットワークの深さ・幅・解像度を1つの複合係数phiでそろえて拡大する複合スケーリング手法と、それで拡大した高精度かつ効率的なConvNetの系列です。
詳しい説明
固定の予算で作り、後から拡大するという前提
畳み込みニューラルネットワーク(ConvNet)は、多くの場合、決められた計算資源の予算の中で開発されます。そして、より多くの資源が使えるようになったときに、精度を高めるためにモデルを拡大(スケールアップ)します。EfficientNetは、このモデルの拡大のしかたを体系的に調べた研究から生まれたConvNetの系列です。この研究では、ネットワークの深さ(depth)、幅(width)、入力画像の解像度(resolution)の3つを注意深く釣り合わせて拡大すると、より良い性能が得られることが示されました。
複合係数phiで深さ・幅・解像度を同時に拡大する
この観察をもとに提案されたのが、複合スケーリング手法(compound scaling method)です。この手法では、1つの複合係数phiを使って、深さ・幅・解像度の3つを一定の比率で同時に拡大します。式はプレーンテキストで次のように書けます。
- 深さ: d = alpha^phi
- 幅: w = beta^phi
- 解像度: r = gamma^phi
- 制約: alpha*beta^2*gamma^2 がおよそ2、かつ alpha >= 1、beta >= 1、gamma >= 1
alpha、beta、gammaは、小さなグリッドサーチで決めることができる定数です。一方、phiは利用者が指定する係数で、モデルの拡大にどれだけ多くの資源を使えるかを制御します。直観的には、phiが追加の資源の量を決め、alpha、beta、gammaがその追加の資源を深さ・幅・解像度の3方向にどう割り当てるかを決める、という役割分担になっています。1つの方向だけを大きくするのではなく、3つの方向をそろえて拡大する点が、この手法の中心的な考え方です。
深さは比例、幅と解像度は2乗で計算量に効く
3つの方向は、計算量への影響の大きさが同じではありません。通常の畳み込み演算のFLOPSは、d、w^2、r^2 に比例します。つまり、ネットワークの深さを2倍にするとFLOPSは2倍になりますが、幅や解像度を2倍にするとFLOPSは4倍になります。制約式 alpha*beta^2*gamma^2 で、深さに対応するalphaは1乗、幅と解像度に対応するbetaとgammaは2乗になっている形は、この非対称性と対応しています。
ベースラインのEfficientNet-B0とそこからの拡大
複合スケーリングを当てはめる出発点となるベースラインのネットワークが、EfficientNet-B0です。EfficientNet-B0の主要な構成ブロックは、モバイル逆残差ボトルネック(mobile inverted bottleneck、MBConv)で、これにsqueeze-and-excitation(SE)最適化が加えられています。
EfficientNet-B0から、複合スケーリング手法を2つのステップで適用してモデルを拡大します。最初のステップでは、phi = 1 に固定し、使える資源が2倍あると仮定したうえで、上の式に基づいてalpha、beta、gammaを小さなグリッドサーチで求めます。こうしてB0を拡大して得られるモデル群が、EfficientNetsと呼ばれます。
EfficientNet-B7が示した精度と効率
EfficientNetsは、従来のConvNetよりはるかに高い精度と効率を達成しました。最大のモデルであるEfficientNet-B7は、ImageNetでtop-1精度84.3%という当時の最高水準の精度を達成しつつ、既存の最良のConvNetと比べて8.4倍小さく、推論が6.1倍高速です。また、既存のConvNetと比べて、パラメータ数は最大8.4倍、FLOPSは最大16倍削減されています。精度を上げながらモデルを小さく速くできたことが、深さ・幅・解像度を釣り合わせて拡大するという考え方の有効性を示しています。
試験で問われること
G検定
- EfficientNetの複合スケーリング手法では、ネットワークのどの3つの要素を、どのような係数を使って同時に拡大するか説明できますか。
- 複合スケーリングの式 d = alpha^phi、w = beta^phi、r = gamma^phi において、利用者が指定するphiと、グリッドサーチで決める定数alpha、beta、gammaは、それぞれどのような役割を持つか説明できますか。
- 通常の畳み込み演算のFLOPSに対して、深さを2倍にした場合と、幅または解像度を2倍にした場合とで、FLOPSはそれぞれ何倍になるか答えられますか。
- ベースラインのEfficientNet-B0の主要な構成ブロックは何で、そこにどのような最適化が加えられているか答えられますか。
- EfficientNet-B7がImageNetで示したtop-1精度と、既存の最良のConvNetと比べたモデルの大きさと推論速度の差を説明できますか。
最終更新日: 2026/09/23