- 携帯端末向けの画像モデルで、精度と計算量の両立を目指した。
- MobileNetV2はImageNetでTop-1正解率71.7%、300Mの乗加算、3.4Mパラメータだった。
- 演算回数が少ないことと、あらゆる端末で速いことは同義ではない。
何を確かめた研究か
画像認識の精度を上げると、計算やメモリが大きくなる。MobileNetV2の論文は、端末で使いやすい構造へ変えて、分類だけでなく物体検出と領域分割でも実用的な精度を保てるかを調べた。中心となるのは、通常の残差ブロックとは逆に、細い入出力の間だけ表現を広げる構造だ。
どう検証したか
細い層から広い中間層へ展開し、軽いdepthwise畳み込みを通した後、再び細い層へ戻す。細い層では非線形変換を外し、情報を失いにくくする。ImageNetの分類、COCOの物体検出、VOCの領域分割で比較した。精度とともに、パラメータ数、乗加算回数、特定CPU上の実行時間を示した。検出ではSSDLite、分割では簡略化したDeepLabv3と組み合わせた。
「逆向きの残差」と呼ぶのは、従来の残差ブロックが広い表現をつないでいたのに対し、細い表現を次のブロックへ渡すためだ。内部だけを広げて畳み込みをかけるので、表現力を使う場所と、保存・転送する情報量を分けて考えられる。細い層に強い非線形を入れないことも、著者らが重要とした設計上の違いである。
何が分かったか
表4の標準MobileNetV2はImageNet Top-1正解率71.7%、3.4Mパラメータ、300M乗加算、指定CPUで80ミリ秒だった。MobileNetV1は70.6%、4.2M、575M、123ミリ秒。同じ表ではV2が精度を少し上げつつ演算量を下げた。ただし、速度は論文の測定環境に依存する。検出の表6ではMobileNetV2とSSDLiteを組み合わせた構成のCOCO mAPは22.1で、計算量は0.8B乗加算だった。分類の71.7%と検出の22.1は違う課題の指標で、直接比べられない。
表4の71.7%は画像を一つのカテゴリへ分類する成績である。物体検出では複数の物体の位置まで当てるため、精度指標も計算の構成も変わる。モデルの名前が同じでも、SSDLiteなど後段を足した構成と分類器を一緒にしてはいけない。
限界は何か
論文は当時の端末向け設計の比較で、現在の端末や推論ライブラリの速度を予測しない。乗加算回数はメモリアクセスや実装の効率を含まない。入力画像の大きさ、精度設定、バッチ数を変えれば遅延も変わる。用途によっては、同じ計算量でも物体の見落としや領域の境界の誤差が重要になる。
仕事との接点
端末上で画像AIを使うなら、モデルの「軽さ」をパラメータ数だけで決めない。対象端末で遅延、消費メモリ、電力、対象画像での精度を測る。これは論文の複数指標の比較を応用した編集部の提案で、表4の80ミリ秒を現在の端末の保証値には使わない。