MobileNet (G検定)

MobileNet

1. 定義と概要

MobileNetとは、Googleが2017年に発表した、モバイル端末や組み込み機器のように計算資源とメモリが限られた環境での動作を前提に設計された、軽量なCNNアーキテクチャの総称です。MobileNetの特徴は、通常の畳み込み層を軽量な処理に置き換えている点です。この処理はDepthwise Separable Convolution(通常の畳み込みを「チャネルごとの畳み込み」と「1×1の畳み込み」の2段階に分解し計算量を抑える手法。詳しい仕組みは別記事で解説します)と呼ばれます。この置き換えにより、精度をなるべく維持しながら計算量とパラメータ数を大幅に削減できるのが利点です。

MobileNetの系譜はV1・V2・V3と続きます。V2ではInverted Residual(通常のResNetの構造とは逆に、一度チャネル数を広げてから畳み込み、また絞る構造)が導入されています。あわせて採用された「Linear Bottleneck」は、チャネル数を絞る箇所で活性化関数を通さず、情報の欠落を防ぐ工夫です。V3ではNAS(ニューラルアーキテクチャサーチ。ネットワークの構造そのものをアルゴリズムで自動的に探索する手法)と、軽量な活性化関数「h-swish」が導入されました。

ディープラーニングによる画像認識は、層を深くしパラメータを増やすほど精度が向上しやすい一方、VGGやInceptionのような従来型のCNNは計算量とモデルサイズが大きいという課題を抱えていました。こうした従来型のCNNは、スマートフォンやIoT機器のような限られた計算資源では動かしにくいという難点もありました。クラウド上のサーバーで推論(学習済みモデルを使って答えを出す処理)し結果を端末へ返す方式では、通信の遅延や通信環境への依存も生じます。

こうした背景から、モバイル・組み込み機器上での動作を前提に、精度をなるべく落とさずに計算量とモデルサイズを削減する設計思想でMobileNetが考案されました。モデル全体を効率性重視で再設計したアーキテクチャの例として、MobileNetとEfficientNetが位置づけられています。

2. 試験対策ポイント

MobileNetの中核は、標準的な畳み込み層の代わりに「Depthwise Separable Convolution」を採用した点にあります。分解の詳しい仕組みは別記事に譲りますが、この採用によって精度をほぼ落とさずに計算量を標準的な畳み込みのおおむね8〜9分の1程度まで削減できる点が中心的な論点です。

モデルの大きさは、2つのハイパーパラメータで調整できます。それぞれの調整値と削減の効果を対応させて整理します。

ハイパーパラメータ 削減の目安
Width Multiplier(α。各層のチャネル数〈幅〉を一律に小さくする調整値) 計算量とパラメータ数がおよそα²の割合で減る
Resolution Multiplier(ρ。入力画像の解像度を小さくする調整値) 計算量がおよそρ²の割合で減る

どちらも値を小さくするほど軽量になる一方、精度は低下するというトレードオフの関係にあります。名前が似ているため、幅と解像度のどちらを絞る値なのかは取り違えやすい点です。

V1・V2・V3の各バージョンの構造の詳細は、個別のテーマとして扱われる位置づけです。モバイル・組み込み向けに最初から軽量に設計するアプローチは、学習済みモデルを事後的に軽くする手法とも比較されます。

量子化(モデルの重みなどの数値を少ないビット数で表現し軽くする手法)とプルーニング(モデルの中で重要度の低い重みや接続を削除して軽くする手法)は、いずれも学習済みモデルを事後的に軽くする手法です。蒸留(大きなモデルの知識を小さなモデルに継承させる手法)も同様に、学習済みモデルを軽量化する代表的な手法のひとつにあたります。MobileNetの設計思想とは、目的が共通する一方でアプローチが異なる点も整理しておきたい観点です。

3. 関連概念との比較・相違点

軽量化を狙う他の手法や標準的なCNNと並べると、MobileNetの位置づけがつかみやすくなります。

比較対象 軽量化の方法 違いが現れる軸
量子化・プルーニング・蒸留 学習済みモデルを事後的に小さくする 軽量化のタイミング
MnasNet 実機の速度も含めて自動探索する 設計の方法
VGGなど標準的なCNN 軽量化を主眼としない 畳み込みの構成

量子化・プルーニング・蒸留は学習済みの大規模モデルを事後的に小さくする手法であるのに対し、MobileNetは最初から軽量に動作するように設計されたアーキテクチャそのものという違いがあります。

MnasNet(モバイル実機の処理速度も目的関数に含めて構造を自動探索した軽量モデル)との違いは、設計方法です。MobileNetは「Depthwise Separable Convolution」を核に研究者が手動で設計したアーキテクチャであるのに対し、「MnasNet」は実機のレイテンシ(処理の応答時間)も目的関数に含めてNASで自動探索します。探索手法の詳細は、別テーマとして扱われます。

標準的なCNNは1回の畳み込みでチャネル方向と空間方向を同時に処理するのに対し、MobileNetはこれを2段階に分解する「Depthwise Separable Convolution」を採用します。この分解により、同程度の精度を計算量の数分の一で達成します。

4. ビジネス・実務での活用シナリオ

スマートフォンアプリの分野では、カメラアプリのリアルタイム物体認識やAR(拡張現実)フィルターなどに、MobileNetベースの軽量モデルが使われる例です。端末内で推論を完結させることで通信を介さず即座に結果を返せるため、オフライン環境でも機能が止まらないという利点が生まれます。

小売業では、店舗の防犯・棚監視カメラに物体検出手法SSD(画像内の物体の位置とクラスを1回の処理でまとめて検出する手法)と組み合わせたSSD MobileNetが搭載され、来店客数の把握や陳列棚の欠品検知をリアルタイムに行う事例があります。映像そのものをクラウドへ送らず現場で処理できるため、多数のカメラを運用してもネットワーク負荷を抑制できる点が特徴です。

農業・産業機器の分野では、電力や重量に制約のあるドローンや小型ロボットにMobileNetベースの画像認識モデルが搭載され、その場で作物の生育状況や設備の異常を判定する用途に使われています。処理をその場で完結できる軽量さは、通信環境が整わない屋外や広大な現場で機器を稼働させるうえでの前提条件になります。

5. 要点まとめ

  • MobileNetは、Googleが2017年に発表した、標準的な畳み込みを「Depthwise Separable Convolution」に置き換えることで計算量とパラメータ数を大幅に削減した軽量CNNアーキテクチャです。
  • 「Width Multiplier」と「Resolution Multiplier」という2つのハイパーパラメータで、チャネル数(幅)と入力解像度を調整し、モデルサイズと精度のバランスを取れます。
  • 学習済みモデルを事後的に軽くする量子化・プルーニング・蒸留とは異なり、最初から軽量な構造として設計されたアーキテクチャである点に加え、MnasNet・EfficientNetへの系譜もあわせて確認しておきたい点です。

6. 確認問題

問1MobileNetは、標準的な畳み込み層を「Depthwise Separable Convolution」に置き換えることで、精度をなるべく維持しながら計算量とパラメータ数を削減したCNNアーキテクチャである。

解答・解説をみる

○ 正しい

MobileNetの定義そのものであり、通常の畳み込みを2段階に分解する手法の採用が最大の特徴です。この分解によって計算量が大きく抑えられます。

問2MobileNetの「Width Multiplier」と「Resolution Multiplier」は、どちらもモデルの層の数(深さ)を調整するハイパーパラメータである。

解答・解説をみる

× 誤り

正しくは、幅と解像度を調整するハイパーパラメータです。「Width Multiplier」は各層のチャネル数(幅)を、「Resolution Multiplier」は入力画像の解像度を調整し、層の深さを直接調整するものではありません。幅・解像度・深さは取り違えやすい点です。

問3MobileNetは、学習済みの大規模モデルを後から軽量化する量子化やプルーニングとは異なり、最初から軽量に動作するように設計されたアーキテクチャである。

解答・解説をみる

○ 正しい

事後的なモデル圧縮(量子化・プルーニング・蒸留)と、設計段階から軽量化を織り込んだMobileNetのようなアーキテクチャは、目的は共通しつつアプローチが異なる関係にあります。