EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
スポンサーリンク
論文URL
https://arxiv.org/pdf/1905.11946.pdf
2019年6月公開
ポイント
- モデルのスケールアップを行う場合、既存研究ではwidth(特徴量マップのチャンネル数)、depth(モデルの層数)、resolution(入力画像解像度)のいずれか1つもしくは2つだけ大きくすることが大半であったのに対し、本論文では3つのパラメータを同時に大きくすることで効果的にモデルの性能(精度、パラメータ数、FLOPS)を向上できるEfficientNetを提案。
- EfficientNetはwidth、depth、resolutionが最小となるB0から最大となるB7まで8つのモデルがあり、同程度のパラメータ数のモデルと比べ、大幅にImageNetのTop1精度が向上している(Fig1)。
- 既存の最高精度モデルGPipeとEfficientNet-B7を比べると、精度は+0.1%とわずかな改善にとどまるが、パラメータ数が556Mから66Mと激減している。
- 横軸をパラメータ数ではなくFLOPSに変えても同様の傾向である(論文中のFigure5)
ベースモデルEfficientNet-B0
- ベースとなるEfficientNet-B0はneural architecture searchで作成
- メモリ使用量とFLOPSに上限をかけて分類性能を最大化している
- メモリ使用量やFLOPSの制約により、width等をスケールアップする前の小さいモデルを作成できる
<EfficientNet-B0の構造>
- MBConv : Mobile inverted bottleneck
- MobileNetV2で提案された構造
- MBConvに「squeeze-and-excitation optimization」を加えているとの記述があることから、各MBConvにSEブロックが組み合わされていると思われる。
- 活性化関数にはswishを使用
EfficientNet-B1 ~ B7
- width、depth、resolutionを完全に独立にスケールアップさせようとするとパラメータの探索空間が広大になりすぎるため、以下の式に基づきスケールアップさせる
- depth :
width :
resolution :
制約 : 、- が1増えると、FLOPSが約2倍になる
- は、の時に2倍のリソースを使用できると仮定し、グリッドサーチにより以下の値に決定
- depth :
- EfficientNet-B1 ~ B7はを1 ~ 7に設定した結果と思われる
ImageNetによる他のモデルとの性能比較
スポンサーリンク