この記事の読者
キーワード・知ってると理解がしやすい
- CNN
Index
MobileNet V1 とは
2017 に Google から提案された手法です. 深層学習・DeepLearning で使用されるネットワークアーキテクチャの一つです. ネットワークを複雑化・多層化することをせず、「精度」と「速度」の2つを最大化するために 単純なネットワークアーキテクチャになっております.
ネットワークアーキテクチャ
下図の左は通常のCNNのレイヤです. (Convolution + BatchNorm + ReLU)
下図の右がMobileNetのレイヤで、2 つの CNN で本来の CNN の役割をしてます.
この 2つの CNN を合わせて Depthwise Separable Convolution と呼びます.
Depthwise Separable Convolution
この 2 つの CNN をそれぞれ Depthwise Convolution と Pointwise Convolution と呼びます.
通常の畳み込みが空間方向とチャネル方向の畳み込みを同時に行うのに対して、Depthwise Separable Convolution は Depthwise (空間方向)の畳み込みを行った後に、 Pointwise (チャネル方向)の畳み込みを行います
通常の Convolution
比較のために通常のConvolution をここに置いておきます.
パラメータ数
Depthwise Convolution
チャネル方向のカーネルフィルターをなくし、空間方向のフィルターのみで畳み込みを行います.
パラメータ数
Pointwise Convolution
空間方向のカーネルフィルターをなくし、チャネル方向のフィルターのみで畳み込みを行います.
パラメータ数
Depthwise Separable Convolution 全体
2 つの畳み込みを連結して、Depthwise Separable Convolution 全体になります.
パラメータ数
パラメータ数
通常のConvolution では、 だが、 MobileNet V1 の場合では、 まで下がります.
だけ減っていることがわかります.
まとめ
- 通常の畳み込みを 2 つの方向(空間方向とチャネル方向)に分割したことでパラメータ数が減り、精度を低下させずに計算を高速化させることが可能.