1行定義
EfficientNetとは、ネットワークの深さ・幅・入力画像の解像度を1つの係数でバランスよく拡大する複合スケーリングを使った、CNNのモデル群のことです。
くわしく
EfficientNetは、GoogleのMingxing TanとQuoc V. Leが2019年に発表したCNNのモデル群です。小さいB0から大きいB7まで8段階の大きさがあり、少ないパラメータ数で高い精度を出したことで注目されました。
モデルを大きくする3つの方向
CNNの精度を上げるためにモデルを大きくする方向は、主に3つあります。
- 深さ:層の数を増やす。
- 幅:各層のチャネル数を増やす。
- 解像度:入力する画像を大きくする。
それまでは、このうち1つを経験にもとづいて大きくするのが一般的でした。しかし、どれか1つだけを大きくしても、精度の伸びはやがて鈍ります。たとえば画像を大きくして細部が見えるようになっても、それを処理する層が浅く細いままでは、細部を活かしきれません。
複合スケーリング
EfficientNetは、3つの方向を決まった比率で同時に大きくします。これを複合スケーリングと呼びます。深さをα^φ倍、幅をβ^φ倍、解像度をγ^φ倍にし、α × β² × γ² ≈ 2という条件を置きます。幅と解像度は計算量に二乗で効くため、二乗の形で入っています。この条件により、φを1増やすごとに計算量がおよそ2倍になります。論文では、小さなグリッドサーチでα = 1.2、β = 1.1、γ = 1.15が選ばれ、φを大きくしてB1からB7が作られました。
土台となるモデル
拡大の出発点になるB0は、NASで探索されたモデルです。MnasNetと同じ探索空間を使い、精度と計算量の両方を目的にして探しました。基本ブロックは、MobileNetV2の反転残差ブロックにSEブロックの仕組みを加えたものです。
最大のB7は、ImageNetで当時最高水準のtop-1精度84.3%を、それまでの最高のモデルの約8.4分の1のパラメータ数で達成しました。
覚え方
「深さ・幅・解像度を、1つのつまみでそろえて大きくする」と覚えます。
G検定での出題
出題のされ方
深さ・幅・解像度の3つを同時にバランスよく大きくする複合スケーリングの考え方が中心に問われます。ベースのモデルがNASで探索されたことや、少ないパラメータで高い精度を出したことも論点です。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
EfficientNetは、Transformerの自己注意機構で画像全体の関係を捉える、Vision Transformerの一種である。
答えを見る
答え × 誤り
EfficientNetは畳み込みを使うCNNです。基本ブロックは、MobileNetV2の反転残差ブロック(MBConv)にSEブロックの仕組みを加えたものです。
-
CNN全体の計算量は、層の数(深さ)を2倍にするとおよそ2倍になるが、各層のチャネル数(幅)や入力画像の解像度を2倍にするとおよそ4倍になる。
答えを見る
答え ◯ 正しい
チャネル数を2倍にすると入力と出力の両方が2倍に、解像度を2倍にすると縦と横の両方が2倍になるためです。EfficientNetの複合スケーリングは、この違いをふまえて倍率の条件を決めています。
-
EfficientNet-B7は、それまでの最高精度のCNNと同程度のImageNetでの精度を、はるかに少ないパラメータ数で達成した。
答えを見る
答え ◯ 正しい
論文では、top-1精度84.3%を、それまでの最高のモデルの約8.4分の1のパラメータ数と、約6.1倍速い推論で達成したと報告されています。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目26 画像認識)
- Mingxing Tan, Quoc V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks, ICML 2019(PMLR 97), arXiv:1905.11946 (3 Compound Model Scaling、4 EfficientNet Architecture)