EfficientNetとは

エフィシェントネット別名 EfficientNet-B0、EfficientNet-B7

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で探索されたことや、少ないパラメータで高い精度を出したことも論点です。

◯×チェック

  1. EfficientNetは、Transformerの自己注意機構で画像全体の関係を捉える、Vision Transformerの一種である。

    答えを見る

    答え × 誤り

    EfficientNetは畳み込みを使うCNNです。基本ブロックは、MobileNetV2の反転残差ブロック(MBConv)にSEブロックの仕組みを加えたものです。

  2. CNN全体の計算量は、層の数(深さ)を2倍にするとおよそ2倍になるが、各層のチャネル数(幅)や入力画像の解像度を2倍にするとおよそ4倍になる。

    答えを見る

    答え ◯ 正しい

    チャネル数を2倍にすると入力と出力の両方が2倍に、解像度を2倍にすると縦と横の両方が2倍になるためです。EfficientNetの複合スケーリングは、この違いをふまえて倍率の条件を決めています。

  3. EfficientNet-B7は、それまでの最高精度のCNNと同程度のImageNetでの精度を、はるかに少ないパラメータ数で達成した。

    答えを見る

    答え ◯ 正しい

    論文では、top-1精度84.3%を、それまでの最高のモデルの約8.4分の1のパラメータ数と、約6.1倍速い推論で達成したと報告されています。

練習問題

EfficientNetの問題(2問)
  1. 画像分類モデルの設計の工夫
  2. モバイル向けモデルの自動設計

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術26

出典

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習