高性能なCNNをスマホや組み込み機器でも動かしたい——この要望に応えた代表的な軽量モデルがMobileNetです。カギは、畳み込みを2段階に分解して計算量を激減させる「Depthwise Separable Convolution」。G検定ではこの手法の中身が最重要ポイントです。
📖 ひと言でいうと
MobileNetとは、Googleが2017年に発表した軽量CNNで、畳み込みを「チャンネルごと(Depthwise)」と「1×1(Pointwise)」の2段階に分解するDepthwise Separable Convolutionにより、精度を保ちながら計算量とパラメータ数を大幅に削減したモデルです。
例えるなら、通常の畳み込みが「全食材をまとめて一度に調理する鍋料理」なら、Depthwise Separable Convolutionは「食材ごとに下ごしらえ(Depthwise)してから最後に合わせる(Pointwise)」二段構えの調理法です。仕上がりはほぼ同じでも手間(計算量)は大幅に減ります。
🖼 1枚でわかるMobileNet
📘 公式テキストの説明
MobileNetは、Googleが2017年に発表した軽量な畳み込みニューラルネットワーク(CNN)で、特にモバイルデバイスや組み込みシステムなど、計算資源が限られた環境での画像認識タスクに適している。このモデルは、計算量とパラメータ数を削減しつつ、高い精度を維持することを目指して設計されている。MobileNetの主な特徴は、「Depthwise Separable Convolution」という手法の採用にある。従来の畳み込み演算では、入力画像の全チャンネルに対して同時にフィルタを適用するが、Depthwise Separable Convolutionでは、まず各チャンネルごとに個別のフィルタを適用し(Depthwise Convolution)、その後、1×1のフィルタでチャンネル間の情報を統合する(Pointwise Convolution)。この2段階の処理により、計算量を大幅に削減しながら、従来の畳み込み演算と同等の結果を得ることが可能となる。さらに、MobileNetでは「Width Multiplier」と「Resolution Multiplier」というハイパーパラメータを導入している。Width Multiplierは、ネットワークの幅、すなわち各層のフィルタ数を調整するもので、モデルのサイズと計算量を制御する。一方、Resolution Multiplierは、入力画像の解像度を調整し、計算量と精度のバランスを取る役割を果たす。これらのパラメータにより、ユーザーは特定のアプリケーションやデバイスの要件に応じて、モデルの複雑さと性能を柔軟に調整できる。MobileNetは、画像分類、物体検出、セマンティックセグメンテーションなど、さまざまな画像認識タスクで広く利用されている。その後継モデルとして、MobileNetV2やMobileNetV3が開発され、精度と効率性の向上が図られている。これらのモデルは、スマートフォンやIoTデバイスなど、リソースが限られた環境でのリアルタイム画像処理において、特に有用である。
長い説明ですが、中身は「①Depthwise Separable Convolutionで計算量を削減」「②2つのMultiplierでサイズを柔軟に調整」「③V2/V3へ発展」の3ブロックです。本丸は①で、Depthwise(チャンネルごと)→Pointwise(1×1で統合)の順序と役割を正確に言えることが目標です。
🔍 しっかり理解する
通常の畳み込みとDepthwise Separable Convolutionの違い
画像や特徴マップは複数の「チャンネル」(色や特徴の層)を持ちます。通常の畳み込みは、1つのフィルタが全チャンネルを同時に見て、空間方向のパターン抽出とチャンネル方向の統合を一度に行うため、計算量がかさみます。
- 1つのフィルタが全チャンネルを同時に処理
- 空間方向とチャンネル方向を一度に扱う
- 表現力は高いが計算量・パラメータが多い
- Depthwise: 各チャンネルに個別のフィルタを適用
- Pointwise: 1×1のフィルタでチャンネル間を統合
- 2段階に分けて計算量を大幅削減・結果はほぼ同等
Depthwise Separable Convolutionは、この処理を役割ごとに分解します。まずDepthwise Convolutionでチャンネルごとに個別のフィルタを適用して空間方向のパターンを抽出し(チャンネル間は混ぜない)、次にPointwise Convolutionで1×1のフィルタによりチャンネル間の情報を統合します(空間方向は見ない)。「空間はDepthwise、チャンネルはPointwise」と分業させることで、従来の畳み込みと同等の結果を保ちながら掛け算の回数を大幅に減らせるのです。
2つのMultiplier——アプリに合わせたサイズ調整
MobileNetのもう1つの特徴は、モデルの規模を連続的に調整できる2つのハイパーパラメータです。
- Width Multiplier — ネットワークの幅、すなわち各層のフィルタ数(チャンネル数)を一律に間引く係数。モデルのサイズと計算量を制御します。
- Resolution Multiplier — 入力画像の解像度を下げる係数。計算量と精度のバランスを取ります。
同じMobileNetでも、端末の性能や要件に応じて複雑さと性能を柔軟に調整できる設計になっています。
V2・V3への発展
後継のMobileNetV2では逆残差構造(Inverted Residuals)などの改良で精度と効率が向上し、MobileNetV3ではNAS(ニューラルアーキテクチャ探索)を活用した自動設計が取り入れられました。「人手の軽量設計から自動探索との融合へ」という流れは、MnasNetやEfficientNetとも交差するモバイルAIの潮流です。
💡 具体例で考える
エッジAI——クラウドに送らない画像認識
工場の外観検査カメラやドローンの障害物検知など、クラウドへ画像を送ると遅延・通信コスト・プライバシーの問題が生じる場面では、端末側(エッジ)で推論を完結させる「エッジAI」が求められます。MobileNetはこうした用途の定番バックボーンで、画像分類のほか、SSDと組み合わせた物体検出などさまざまなタスクの土台として使われています。スマホの翻訳カメラやリアルタイムフィルタの背後でも、この系統の軽量モデルが動いています。
⚠️ よくある誤解・紛らわしい用語
- DepthwiseとPointwiseの役割の取り違え — 「各チャンネルごとに個別のフィルタ」がDepthwise、「1×1でチャンネル間を統合」がPointwiseです。順序も「Depthwise→Pointwise」で固定です。入れ替えた選択肢が定番のひっかけです。
- 「精度を犠牲にした低精度モデル」ではない — MobileNetの設計目標は「計算量とパラメータ数を削減しつつ高い精度を維持する」ことです。単なる精度の切り捨てではありません。
- MnasNetとの違い — MobileNet(V1/V2)は人間が設計した軽量モデル、MnasNetはNASで自動設計されたモバイル向けモデルです。なおMobileNetV3ではNASが活用されています。
- 1×1畳み込み自体はMobileNetの発明ではない — チャンネル方向を1×1畳み込みで扱う発想はGoogLeNetなどでも使われてきました。MobileNetの特徴は「Depthwiseとの2段階分解」の体系的な採用です。
📝 試験でのポイント
- 「Depthwise Separable Convolutionの採用」がMobileNetを特定する最大の目印です。Depthwise(チャンネル別)→Pointwise(1×1で統合)の2段階を正確に。
- 「計算量を大幅に削減しながら従来の畳み込みと同等の結果を得る」という効果の記述も正誤判定に使われる想定です。
- Width Multiplier(フィルタ数の調整)とResolution Multiplier(入力解像度の調整)の役割の対応付けに注意しましょう。
- 軽量化モデル群(MobileNet・MnasNet・EfficientNet)と精度追求モデル(VGG・ResNet)の仕分け問題も想定されます。
📚 まとめ
- MobileNetは、Googleが2017年に発表したモバイル・組み込み向けの軽量CNNです。
- 核心はDepthwise Separable Convolutionで、チャンネルごとのDepthwise Convolutionと1×1のPointwise Convolutionの2段階に分解して計算量を大幅に削減します。
- Width MultiplierとResolution Multiplierにより、デバイスの要件に応じてモデルの複雑さと性能を柔軟に調整できます。
- 後継のMobileNetV2/V3で改良が続き、スマホやIoTデバイスでのリアルタイム画像処理を支えています。
