スマホでAIがサクサク動く秘密!MobileNetの「分業」の魔法を解説
こんにちは。ゆうせいです。
前回、前々回とVGGやAlexNetといった、AI界のスターたちを紹介してきましたね。彼らは非常に賢いのですが、実はひとつ大きな悩みがありました。それは「体が大きすぎて、スマホや小型デバイスで動かすには重すぎる」ということです。
せっかくの便利なAIも、パソコンの前でしか使えないのではもったいないですよね。そんな悩みを解決するために、Googleが開発した革命的なモデルがMobileNet(モバイルネット)です!
今日は、なぜMobileNetがスマホの中でもサクサク動くのか、その驚きの仕組みを解説します。
MobileNetが解決した「重たいAI」問題
これまでのAIは、精度を上げるために「より深く、より大きく」作られてきました。しかし、スマホの脳(プロセッサ)やバッテリーには限界があります。
みなさんは、巨大な百科事典を毎日カバンに入れて持ち歩きたいと思いますか。できれば、必要な情報だけが詰まったスマホ1台で済ませたいですよね。MobileNetは、まさにAI界の「百科事典からスマホアプリへの進化」を成し遂げた存在なんです。
秘密兵器「深度別分離畳み込み」
MobileNetが劇的な軽量化に成功した最大の理由は、深度別分離畳み込み(Depthwise Separable Convolution)という計算方法を採用したことです。
名前は難しそうですが、考え方はとてもシンプルです。一言でいうと「計算の分業」です!
これまでの一般的なAI(通常の畳み込み)は、「色(チャンネル)の情報」と「形(空間)の情報」を一度にまとめて計算していました。これをMobileNetは2つのステップに分解したのです。
1. Depthwise(デプスワイズ)畳み込み
まず、色ごとの情報をバラバラに処理します。赤、緑、青の情報を、それぞれ専用のフィルターで別々に計算するイメージです。
例えるなら、3人組のアイドルグループ全員を一度に撮影するのではなく、一人ずつソロショットを撮るようなものですね!
2. Pointwise(ポイントワイズ)畳み込み
次に、バラバラになった情報を という最小サイズのフィルターでガッチャンコと結合します。ここでようやく、全体の情報をまとめ上げるわけです。
この「分業」をすることで、計算量はなんと通常の 分の1程度にまで削減されます!
MobileNetのメリットとデメリット
ここで、MobileNetの特徴を確認しておきましょう。
| 項目 | メリット | デメリット |
| 動作速度 | スマホやドローンなどの非力な端末でもリアルタイムで動く | 巨大なモデルに比べると、わずかに精度が落ちる場合がある |
| サイズ | モデルの容量が非常に小さく、アプリのダウンロードも一瞬 | 非常に複雑な画像の分析には不向きなこともある |
| 省エネ | 計算が少ないので、バッテリーの持ちが良い | 学習が少し特殊で、コツが必要 |
算数の視点から見る「分業」の凄さ
どれくらい計算が楽になるのか、簡単な数式で比較してみましょう。
入力画像のチャンネル数を 、出力のチャンネル数を
、フィルターのサイズを
とします。
通常の畳み込みの計算量は
通常のコスト =
となりますが、MobileNetの分離畳み込みでは
MobileNetのコスト =
となります。
例えば のフィルターを使っている場合、通常の計算を
とすると、MobileNetはおよそ
まで計算を減らせます。フィルターが なら、だいたい
分の1から
分の1の軽さになるというわけです。驚異的なダイエット成功ですよね!
今後の学習の指針
MobileNetの登場により、AIは私たちのポケットの中にやってきました。今、みなさんのスマホで写真が自動分類されているのも、この技術のおかげかもしれません。
MobileNetには現在、さらに進化を遂げた「v2」や「v3」といったバージョンも存在します。それぞれ「逆ボトルネック」や「NAS(AIがAIを設計する技術)」といった、さらに面白いアイデアが詰まっています。
みなさん、身近なスマホの中でこんな工夫がされていると思うと、ワクワクしませんか。