読者です 読者をやめる 読者になる 読者になる

zawa's blog

読んだ本や論文のメモ

【論文】 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (A. G. Howard, et al., Google, 2017)

[1704.04861] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

 

概要

GoogleのAndrew G. Howardによる論文。モバイル機器等でも動作可能な軽量・高速なニューラルネットワークのモデルとしてMobileNetsを提案。MobileNetsは畳み込みニューラルネットで使われる畳み込み演算を分解することで演算量を削減していることに加え、2種類のハイパーパラメータを導入することでユーザがフレキシブルにネットワークのサイズを調整できるようにしている。本論文ではMobileNetsを既存のさまざまなニューラルネットワークのアプリに適用し、その効果を検証している。

 関連手法

軽量・高速なNNを直接的に設計する手法

  • Depthwise separable convolutions
  • Inception models
  • Flattened networks(factorized conovlutionを利用)
  • Factorized networks(flattened networksと類似)
  • Xception network(depthwise separable filters)
  • Squeezenet(ボトルネック手法を利用)
  • Structured transform networks
  • Deep fried convnets

トレーニング済みのNNを圧縮する手法

  • Product quantization
  • Hashing
  • Pruning, vector quantization, Huffman coding
  • Factorization
  • Distillation(大規模なNNを教師にして小規模なNNが学習する)
  • Low bit networks

Depthwise Separable Convolution

  •  畳み込み演算をdepthwise convolutionと1x1のpointwise convolutionに分解したfactorized convolutionを利用
  • 通常の畳み込みフィルタは、フィルタ処理と結合処理を一度に行うが、depthwise separable convolutionではこれを2層に分け、フィルタ処理と結合処理を独立に行う
  • まず、入力の各チャネルに対して1種類のフィルタをかけ(depthwise convolutoin)、次にそれらの線形結合を得るために1x1の畳み込み(pointwise convolution)を行う
  • 通常の畳み込みと比較し、だいたい演算量を1/8~1/9にできる

ネットワークの構造とトレーニング

  • 単に積和演算を減らすだけでは不十分であり、実装効率も考える必要がある
  • 不規則なスパース行列はいくらスパース性が高くても一般に密な行列の演算よりも遅い
  • MobileNetsでは、ほぼ全ての演算は密な1x1畳み込みであり、GEMMで実装できる
  • 畳み込みをGEMMで実装するには、im2colと呼ばれるメモリへのマッピング処理が必要になるが、1x1畳み込みでは不要であり、GEMMで直接実装できる

Width Multiplier: Thinner Models

  • width multiplier(α)と呼ばれるパラメータで、ネットワークの各層を薄くすることができる
  • 入力チャネル数MはαM、出力チャネル数NはαNとなる
  • αはだいたい1、0.75、0.5、0.25のいずれかに設定される(1はベースライン)

Resolution Multiplier: Reduced Representation

  • resolution multiper(ρ)と呼ばれるパラメータで、入力画像とNN内部の中間表現の解像度を下げることができる
  • ρは入力データの解像度を指定することで計算される
  • 解像度は、224、192、160、128など

実験

  • 通常の畳み込みで実装した場合と比べて精度低下1%で積和回数1/9程度
  • 同程度のパラメータ数、演算量で比較した場合、階層を浅くするよりも薄くした方が性能が良い
  • VGG16とほぼ同性能でパラメータ数1/32、演算量1/27
  • Fine Grained Recognition、Large Scale Geolocalization、Face Attributes、Objecet Detection、Face Embeddeingで効果を確認