オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】EfficientNet #アルゴリズム編

この記事の読者

深層学習・ディープラーニングの手法の1つである「EfficientNet」について知りたい.


キーワード・知ってると理解がしやすい

  • NAS (Neural Architecture Search)
  • MnasNe
    • (MobileNet V3)
  • ResNet

yhayato1320.hatenablog.com

yhayato1320.hatenablog.com

yhayato1320.hatenablog.com

yhayato1320.hatenablog.com

Index

EfficientNet とは

ICML にて2019年5月に Google から発表されたモデル. モデルの大きさのスケールアップを理論的、効率的に行った手法.


CNN のスケールアップには、色々な工夫があった.

  1. ResNet
  2. Gpipe
この手法では、より効率的に、幅、深さ、解像度を軸にスケールアップする方法を考える.

モデルのスケールアップ

ネットワークアーキテクチャをスケールアップすることは、精度の向上を図るための考えの一つ. スケールアップの方向性としては、以下の3つがある.

  • wider / より広く
  • deeper / より深く
  • higher resolution / より厚く



使用できる計算リソース(パラメータ) を  2^{N} としたとき、
 N\ =\ 1,\ \cdots,\ 7 を段階的に上げていく. (モデルのスケールを大きくしていく.)

そのとき、ネットワークアーキテクチャを構成する「幅」、「深さ」、「解像度」の大きさを以下のように計算的に決定する(大きくしていく).
 \alpha^{N},\ \beta^{N},\ \gamma^{N}

 \alpha,\ \beta,\ \gamma はグリットサーチのような方法で、ハイパーパラメータ探索して精度が良い組み合わせを探索する.


ベースのネットワークアーキテクチャをMobileNet 等と ResNet 等で作成.
さらに、そのアーキテクチャNAS (Neural Architecture Search) により効率的(最小のアーキテクチャの増強で、最大の精度を出す)なアーキテクチャに調整.
さらに、今回のスケールアップの手法で、ネットワークアーキテクチャを大きくする.

Compound Model Scaling / 複合モデルスケーリング

モデルを効率良く大きくするための最適化問題として定式化する.


最大化するのは、Accuracy.
制限は、Memory(パラメータ数) と Flops(計算回数)

ベースネットワークアーキテクチャ

幅、深さ、解像度のスケールを大きくする前のベースネットワークアーキテクチャ(EfficientNet-B0).




ネットワークアーキテクチャ

MobileNet と ResNet によって、基本的なアーキテクチャを行い、 細かいパラーメタをNASによるアーキテクチャ構築を行なった.

そのモデルの作り方はMnasNetの論文(MnasNet: Platform-Aware Neural Architecture Search for Mobile)に則っているため、 EfficientNet-B0はその論文で提案されているMnasNetとほぼ同様.

MBConv とは、MobileNet-V3 で使用されているmobile inverted bottleneckを利用した Convolution.



参考

  • EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

    • 発表論文 [2019/05 Google / ICML]
    • 1 Introduction
    • 3 Compound Model Scaling
    • 4 EfficientNet Architecture
    • arxiv.org
  • MnasNet: Platform-Aware Neural Architecture Search for Mobile

Web サイト

  • 2019年最強の画像認識モデルEfficientNet解説