MobileNetは、Depthwise Separable Convolution——畳み込みを二段に分けて薄くする——ことを核にした軽量CNNファミリーです。AlexNetが「GPUで深く太く」なのに対し、MobileNetは「スマホの上で回る薄さ」——本記事はバージョン番号の暗記より、「なぜ畳み込みを分割するのか」に焦点を当てます。
なぜ軽量が必要か
画像認識はクラウドだけでは完結しません——カメラ上でリアルタイム推論するエッジAIでは、計算・メモリ・消費電力に厳しい上限があります(G-408)。
データセンターのGPU向けに設計された大型CNNをそのまま端末に載せるのは難しい。MobileNetはアーキテクチャの段階から計算を削る——「学習後に削る」の前に、「最初から薄く作る」発想です。
二段畳み込みの直感
標準の畳み込みは、空間方向とチャネル方向を一度に混ぜます。Depthwise Separableはこれを分割します(G-309)。
| 段階 | 何をするか |
|---|---|
| 1. Depthwise | 各チャネルごとに空間方向だけ畳み込み(チャネル間は混ぜない) |
| 2. Pointwise(1×1) | 1×1畳み込みでチャネル間を混合 |
たとえば「まず各チャネルでエッジを拾い、次に1×1で特徴を組み合わせる」——2段に分けることで、標準畳み込みより計算量・パラメータを大幅に削減できる場合があります。G-309の正解は「畳み込みを含む」——全結合だけ、という誤答Dを避けます。
精度とのトレードオフ
軽くすれば速い・省メモリ——反面、表現力は標準CNNより落ちやすい。MobileNetファミリーは幅の倍率(width multiplier)や解像度の倍率で、速度と精度のノブを調整します。
- α小 — さらに軽い。精度は下がりやすい
- α大 — 重くなるが精度回復
- 用途 — リアルタイム分類、顔検出、エッジカメラなど
Inceptionが「複数スケールを並べて賢く」、EfficientNetが「深さ・幅・解像度のバランス」——MobileNetは畳み込みの分解で薄くする、という別ルートの効率化です。
他の軽量化との違い
| 手法 | いつ効くか | 層 |
|---|---|---|
| MobileNet | 設計時から軽量CNN | アーキテクチャ |
| プルーニング | 学習後に重み削減 | 圧縮(G-025) |
| 量子化 | ビット数を下げる | 圧縮(G-406) |
| 知識蒸留 | 大モデル→小モデルへ転移 | 学習手法 |
試験では「MobileNet=プルーニング」「MobileNet=全結合のみ」と答えない——軽量CNNの代表名として位置づけます。
試験で押さえるポイント
- 定義 — Depthwise Separable Convolutionを核にした軽量CNN
- 目的 — モバイル・エッジでの画像認識推論
- 仕組み — Depthwise(空間)+ Pointwise(チャネル混合)の二段
- 対比 — AlexNet=高精度志向、プルーニング=事後削減、RNN=時系列
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| MobileNet=AlexNet | 軽量エッジ向け vs GPU時代の古典 |
| MobileNet=全結合のみ | 畳み込みを二段に分ける(G-309の誤答D) |
| MobileNet=RNN | 画像CNN vs 時系列モデル |
| MobileNet=プルーニング | 設計時軽量化 vs 学習後の削減 |
| MobileNet=YOLO | 軽量分類CNN vs 物体検出モデル名 |
よくある質問
MobileNetは何をするモデルですか?
畳み込みをDepthwiseとPointwiseの二段に分けて計算量を削減した軽量CNNです。画像認識の精度をある程度保ちつつ、モバイル端末やエッジデバイスで推論しやすいサイズと速度を狙って設計されています。
MobileNetとAlexNetは同じですか?
同じではありません。AlexNetはGPU時代を切り開いた高精度志向の古典CNNです。MobileNetはその後の世代で、計算資源が限られた端末向けに軽量化を最優先したCNNファミリーです。どちらもCNNですが、設計目標が異なります。
MobileNetとプルーニングは同じですか?
同じではありません。MobileNetは軽量な畳み込み構造を最初から組み込んだアーキテクチャ設計です。プルーニングは学習済みモデルから不要な重みや構造を後から削る圧縮手法です。目的はどちらも軽量化ですが、設計時 vs 事後削減で役割が異なります。