EfficientNet

イントロ

これまでの畳み込みネットワークでは、層を深くしたり、幅を広げたり、解像度を上げたりと、どれか1つの要素を増やすことで精度を上げてきた。 この論文では、畳み込みネットワークの改良について再考し、上記3要素をバランスよく増やして精度を上げる方法を提案している。

関連研究

  • 畳み込みネットワークの精度

     2012年のImageNet CompetitionにおいてAlexNetが優勝してから、畳み込みネットワークが画像分類の分野において台頭してきた。様々なネットワークが提案され、物体検出など他の分野にも性能を発揮している。
    ネットワークの精度はとても重要な要素だが、ハードウェアのメモリに限界があるため、精度をさらにあげるには効率性も重要になっている。

  • 畳み込みネットワークの効率性

    深層畳み込みネットワークは、パラメータ数が多くなりがちである。
    そこでよく使われる手法が、モデルの圧縮である。圧縮を行うことで、精度はやや落ちるが、効率性が上がる。
    さらにSqueezeNets、MobileNets、ShuffleNetsなどのmobile-sizeの畳み込みネットワークもよく使われる。最近は、mobile-sizeの畳み込みネットワークの設計にneural architecture searchが使われており、手作業で作ったmobile-sizeの畳み込みネットワークよりも良い精度を出している。
    しかしながら、大きなモデルにどのように適用するかは不透明である。 この論文では、そのような大きなモデルの効率性向上に焦点を当てている。

  • モデルのスケーリング

    畳み込みネットワークのスケール調整は様々な方法がある。 層数の増減(e.g., ResNet)、 幅の増減(e.g., WideResNet、MobileNets)、入力画像の解像度などがある。 これまでの研究で、ネットワークの深さ、幅は畳み込みネットワークの表現力の重要な要素である子が示されているが、効率性も考慮したスケーリングはいまだに未解決である。 この研究では、ネットワークの深さ、幅、解像度を同時にスケーリングに用いる手法を提案する。

複合スケーリング

畳み込みネットワークNは以下のような式で表すことができる。

f:id:Becon147:20191220132048p:plain
ネットワークの定式
なお、
X:入力
H,W:解像度
C:チャンネル数
F:畳み込み層などのオペレータ
添字i:ステージ番号
L:ステージ内の繰り返し回数 である。 各ステージは同じ畳み込み層を用い、L回繰り返す。

複合スケーリングではF自体は変えず、(つまり畳み込み層の形状を変えず)L,C,H,Wを増やしていく。さらに設計空間を減らすために、 これらすべてを一定の割合で増やしていく。
そのために以下のように問題を再定式する。

f:id:Becon147:20191220133246p:plain
問題の再定式

w,d,rはスケーリングの係数である。 最適なw,d,rを求めるために難点となるのは、互いに依存しており、資源の制約によって値が変わってきてしまうことである。 このような難点のため、これまでは一つの要素についてスケーリングしていた。

f:id:Becon147:20191220133839p:plain
w,d,rのみでスケーリングした時のFLOPSとImageNetにおける精度
上図は、w,d,rのみでスケーリングした時の関係図である。
wを大きくすると、きめ細かい特徴が捉えられ、学習しやすくなる。 しかし、幅があって浅いネットワークでは高レベルの特徴を捉えるのは難しくなってしまう。
dを大きくすると、複雑な特徴なども取り扱え、他のタスクにも応用しやすくなる。しかし、勾配消失問題の影響で学習が難しくなってしまう。
rを大きくすると、潜在的にきめ細かい特徴が捉えられるが、それだけ層を深くしたり幅を広げたりする必要がある。

またいづれの係数も大きくしていくと、大きなモデルになってしまい、FLOPSの上昇に対する精度の上昇がかなり小さくなってしまうという難点がある。

f:id:Becon147:20191220142010p:plain
wを変化させた時のFLOPSとImageNetにおける精度
上図をみると、wを変化させた時の精度の上昇は、dとrに大きく影響 を受けていることがわかる。このことから、w,d,rのバランスがとても重要であることがわかった。

先行研究では、ランダムにパラメータをチューニングしていたが、本論文では、複合スケーリング法を提案する。

f:id:Becon147:20200108222319p:plain
複合スケーリング法

φは、どれだけモデルスケーリングに資源を用いることができるかによって、ユーザ指定で操作できる変数であり、α、β、γは深さ、幅、解像度にどれだけ資源を割り当てるかを指定する変数である。(α、β、γはグリッドサーチによって決定する。)

EfficientNetの構造

モデルスケーリングでは層の構造を変えることができないので、良いベースラインを用いることが重要である。 今回ベースラインとして提案するのがEfficientNetである。 以下がその構造である。

f:id:Becon147:20200108230214p:plain
EfficientNet-B0の構造

MnasNetと類似しているが、目標FLOPSが400Mと少し大きいため、少し大きな構造となっている。

このEfficientNet-B0をもとに複合スケーリング法を用いてモデルを拡張していく。 まずφを1に固定し、グリッドサーチによりα、β、γを決定する。最適なパラメータは、α=1.2、β=1.1、γ=1.15となった。
次にα、β、γを固定し、Φを徐々に大きくしていく。 これにより、EfficientNet-B1~B7を得る。

グリッドサーチはそれぞれのモデルで行なった方が良い精度を期待できるが、モデルが大きいため多大なサーチコストがかかることが予想される。そのため、小さなモデルでのみグリッドサーチを行う。

実験結果

f:id:Becon147:20200108232839p:plain
ImageNetにおける精度とFLOPS

上図を見ると。これまでの代表的な畳み込みネットワークと比較すると、少ないパラメータ数、FLOPSでより良い精度を足していることがわかる。

また、実際のハードウェア上においてこれまでのネットワークよりも(例ではGPipe)高速学習となっている。

転移学習においてもこれまでの畳み込みネットワークと比較して、少ないパラメータ数で、同等またはそれ以上の精度を発揮している。

ディスカッション

f:id:Becon147:20200109094241p:plain
単一要素のスケールアップと複合スケーリング法

上図を見ると、深さ、幅、解像度のみをスケールアップしていくよりも、複合スケーリング法を用いてスケールアップしていく方が有用であることがわかる。