MobileNet論文その1: 「MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications」を読みました

この記事は7/6に開催されたMETRICAエンジニア勉強会の発表資料です。
今回は参加者の西本くんがMotibleNetについて発表してくれました。

論文pdf

Mobilenetの特徴

  • 軽い
  • 速い
  • 精度が良い

Depthwise Separable Convolution

Mobile Netの軽量化のための工夫。

わかりやすい動画
https://www.youtube.com/watch?v=T7o3xvJLuHk&feature=youtu.be

MobileNetの全体の構造

1層目だけFull Convolution層。 2層目以降はdepthwise separable convolutionの繰り返し。

  • 積-和演算の数を減らせる
  • 残りの積-和計算を効率的に実装できる。

パラメータの75%、計算時間の95%を1x1畳込み層が占めている。

1x1畳込み層は、線形代数数値計算が最適化されたアルゴリズムの1つであるgeneral matrix multiply (GEMM) functionでdirectに実装可能。

Hyper-parameters

  1. width multiplier
    • 論文では ( \alpha )という記号で表されている。
    •  ( 0 \leq \alpha \leq 1 ) の範囲で制御可能
    • (\alpha)が小さくなるとinput channel, output channelが (\alpha)倍小さくなる。
    • 計算コストは大体 (\alpha^{2})
    • accuracyとのトレードオフがある
  2. resolution multiplier
    • 論文では ( \rho )という記号で表されている。
    •  ( 0 \leq \rho \leq 1 ) の範囲で制御可能
    •  (\rho)が小さくなるとfeature mapの大きさが (\rho)倍小さくなる。
    • 計算コストは (\rho^{2})倍小さくなる。
    •  (\rho)を変化させてもパラメータ数は変化しない。
    • accuracyとのトレードオフがある

ハイパーパラメータを導入すると、Depthwise Separable Convolution の計算にかかるコストは

になる。

性能評価

Depthwise Separable vs Full Convolution MobileNet

精度はほとんど同じだが、Depthwise Separable の方が積和計算の数、パラメータ数は大幅に少ない。

Narrow vs Shallow MobileNet

MobileNetの層を5層取り除いて浅くしたものと、ハイパーパラメータ(\alpha)を調整して層を薄くしたものの比較。 後者のほうがやや性能良かった。

Model Shrinking Hyperparameters

 ( \alpha \in { 1, 0.75, 0.5, 0.25 }),

 ( \rho * 224 \in { 224, 192, 169, 128 })

の範囲でハイパーパラメータを変化させたときのモデルの振る舞いを調べた。

積和計算の数とaccuracyのトレードオフ

パラメータ数とaccuracyのトレードオフ

他のモデルとの比較

積和計算、ハイパーパラメータが少ないだけでなく、精度も良い。

様々な場面で応用可能

  • PlaNet
  • Face attribute classification
  • Object classification
参考にした記事

https://qiita.com/simonritchie/items/f6d6196b1b0c41ca163c(