MixConv: Mixed Depthwise Convolutional Kernels
どんなもの?
- Depthwise Convolutionは近年の軽量なCNNでよく使われているが、カーネルサイズについては深く議論されていない。
- 本論文では、異なるカーネルサイズ(3x3以外も)を用いることによる影響を体系的に調査し、複数のカーネルサイズを組み合わせて使用することで精度と計算効率の両方が向上することを発見した。
- この発見に基づいてmixed depthwise convolution (MixConv)を提案。
- MobileNetのdepthwise convolutionをMixConvに置き換えることで、分類タスクと物体検出タスクの両方で精度と計算効率が向上した。
- さらに、MixConvを組み込んだアーキテクチャであるMixNetsをAutoMLで探索。MixNet-LがImageNetで近年の軽量なCNNの中ではSOTAな精度の78.9%(top1-acc)を示した。
技術や手法のキモ
MixConv Feature Map
- MixConvの構造は以下の通り。
- 入力マップをチャネル方向で分割して異なるカーネルサイズのdepthwise convolutionをかけ、それぞれをチャネル方向でconcatしたものを出力マップとする。
- tensorflow実装は以下のようになる。
MixConv Design Choices
Group Size
- 入力マップを分割して種類のカーネルサイズを使用するというパラメータ。
- のときは通常のdepthwise convolutionと同じになる。
- MobileNetについてはが良かったが、アーキテクチャを探索する際にはより多様な範囲を探索するために1~5とした。
Kernel Size Per Group
- 理論上は各グループのカーネルサイズは任意であるが、2つのグループが同じカーネルサイズなのは意味がないので、各グループは異なるカーネルサイズであるという制約を設けた。
- さらに、カーネルサイズが小さいほどパラメータ数とFLOPSが小さいため、各グループのカーネルサイズはから始まりずつ増加していくという制約を設けた。言い換えると番目のグループのカーネルサイズは。
- 例えば、4-group MixConvの各グループのカーネルサイズは。
Channel Size Per Group
- 各グループのチャネルの分割について2つの方式を考えた。
- (1) Equal partition: 各グループのチャネル数は同じ。
- (2) Exponential partition: 番目のグループのチャネル数は全チャネルのおよそ。
- 例えば、チャネル数が32の4-group MixConvの各グループのチャネル数は、equal partitionだとで、exponential partitionだと。
Dilated Convolution
- カーネルサイズを大きくする代わりにDilated Convolutionが良く使われるが、実験ではdilatedではない方が精度が良かった。
MixConv Performance on MobileNets
ImageNet Classification Performance
- MobileNetについて、ただ単にdepthwise convolutionのカーネルサイズを大きくした場合と、MixConvを使った場合とでImageNetを用いて性能を比較した。
- 結果は以下のようになった。
- (1) MixConvの方がパラメータとFLOPSが少なく、精度も同等以上だった。→MixConvは精度と計算効率を向上させる。
- (2) depthwise convolutionのカーネルサイズを大きくしていくとある程度の大きさから精度が低下したが、MixConvではそのようなことはなかったため、MixConvはカーネルサイズの大きさによる影響を受けにくいと言える。→MixConvは大きなカーネルサイズを用いる場合により安定した精度を得ることができる。
COCO Detection Performance
- COCOでもMixConvの方が性能が良かった。
Ablation Study
MixConv for Single Layer
- MobileNetV2の15のdepthwise convレイヤのうち一つを、カーネルサイズがのDepthwiseConv9x9、もしくはのカーネルを持つMixConv3579に置き換えたときのレイヤごとの性能比較を行った。結果は以下の通り。
- ほとんどのレイヤで大きな精度の違いは見られないが、ストライドが2のレイヤについては精度が大きく向上している。
- MixConv3579のパラメータとFLOPSはDepthwiseConv9x9の半分であるにもかかわらず、多くのレイヤでDepthwiseConv9x9と同じかわずかに良い性能を示している。
Channel Partition Methods
- 2つのチャネル分割の方式であるequal partition (MixConv)とexponential partition (MixConv+exp)を比較した。結果は以下の通り。
- exponential partitionはより多くのチャネルが小さなサイズのカーネルに割り当てられるため、予想通り、より少ないパラメータとFLOPSになっている。
- MobileNetV1についてはexponential partitionの方がわずかに性能が良いが、V1とV2の両方を見るとどちらが優れているか明確に判断できない。
- exponential partitionの制約として、大きなカーネルが十分に高解像度のパターンを十分に捉えられない可能性がある。
Dilated Convolution
- dilated convolutionについても比較。結果はChannel Partition Methodsの図参照。
- dilated convolutionはカーネルサイズが小さいときには妥当な性能であるが、カーネルサイズが大きくなると精度が急激に低下している。
- 仮説としては、大きなサイズのカーネルのdilation rateが大きいと、多くの局所的な情報をスキップしてしまうため、精度に悪影響を与えていると考えられる。
MixNet
- アーキテクチャの探索によって得られたMixNetの構造は以下の通り。
- MixNet-S, M, Lがあり、MixNet-LはMixNet-Mのdepth multiplierを1.3にしたもの。
- 最初の方のレイヤは特徴マップのスケールが大きいため、カーネルサイズを小さくすることで計算コストを抑えており、一方で後ろの方のレイヤではカーネルサイズを大きくすることで精度を向上させている。
有効性の検証
- ImageNetでの性能を比較したものが以下の表。
- 精度と計算効率の両方でSOTA。
- MixNet-MはResNet-152と同等のtop-1 accだが、パラメータ数は1/12、FLOPSは1/31小さい。
所感
- MixNetはMobileNetと比較するとチャネル数が全体的に小さい。MixConvを使うことでチャネル数が小さくても十分な特徴表現を獲得できるということなのか。