ソフトウェア

GoogleがPixel 4などでの次世代オンデバイス処理には欠かせないと言及する「MobileNetV3」と「MobileNetEdgeTPU」について解説


Googleの最新スマートフォンである「Pixel 4」では、プライバシーやセキュリティ面に配慮しながら端末の処理スピードを向上させるために、オンデバイスで機械学習などの処理が実行されています。そんなオンデバイス処理に欠かせないという次世代技術の「MobileNetV3」と「MobileNetEdgeTPU」について、Googleが解説しています。

Google AI Blog: Introducing the Next Generation of On-Device Vision Models: MobileNetV3 and MobileNetEdgeTPU
https://ai.googleblog.com/2019/11/introducing-next-generation-on-device.html

GoogleはGoogle I/O 2019の中でさまざまな最新テクノロジーを発表しましたが、中でもキーワードとなったのが「オンデバイス」、つまりは端末上で処理を済ませてしまうことでした。例えば、機械学習を使用する機能の場合、必要な処理をすべて「オンデバイス」で完結させることで、プライバシーとセキュリティの両方を担保し、処理速度そのものを高速化することが可能となります。

オンデバイス機械学習をコンピューティング能力および電力に制限のある端末上で実行するには、わずか数ミリワットの電力で毎秒数十億もの演算を実行できるような、アルゴリズム効率の高いニューラルネットワークモデルとハードウェアが必要になるそうです。

Googleの最新スマートフォンであるPixel 4は、機械学習アクセラレーターであるEdge TPUと同じアーキテクチャで開発されたオンデバイス処理を高速化できる「Pixel Neural Core」を採用しています。Pixel Neural Coreは、Pixel 4で新しく登場した顔認証機能のフェイスアンロックや、従来よりも高速になったGoogleアシスタント、さらにはカメラ機能など、Pixel 4のコア機能をサポートした「Pixel 4のコアテクノロジー」とも呼べるものです。


Pixel 4のオンデバイス処理をハードウェア面から助けるのがPixel Neural Coreならば、ソフトウェア面から助けるのが、スマートフォンなどのモバイル端末向けに開発された軽量かつ高性能な畳み込みニューラルネットワーク(CNN)である「MobileNet」などのアルゴリズムです。

そんな最新テクノロジーで重要視されていくであろう次世代のオンデバイス処理に欠かせないものとなる、MobileNetの最新バージョンとなる「MobileNetV3」と、Pixel 4のEdge TPU最適化に対応する「MobileNetEdgeTPU」を、Googleが発表しました。Googleはこれらのモデルについて、「ハードウェア対応の自動機械学習(AutoML)技術の最新の進歩と、アーキテクチャ設計におけるいくつかの進歩の集大成」と表現しています。

例えばMobileNetV3の場合、スマートフォン向けのモバイルCPU上でMobileNetV2と同等の精度で2倍の処理速度を実現しているため、「モバイルコンピュータービジョンネットワークの最先端技術を進歩させることができる」とのこと。また、MobileNetEdgeTPUはモデルの精度を向上させることで、ランタイムと消費電力を同時に削減することに成功しています。


◆MobileNetV3
手動で設計されたMobileNetV2とは異なり、MobileNetV3は自動機械学習技術を使って「モバイルコンピュータービジョンタスクにとって最良の探索空間を見つけられるアーキテクチャ」として設計されています。MobileNetV3が探索空間を最も効果的に活用するには、MnasNetNetAdaptという2つのテクニックを順番に展開する必要があるそうです。

最初に強化学習を使用するMnasNetを用いて、粗くアーキテクチャを検索し、個別の選択肢の中から最適な構成を選択します。次に、使用率の低いアクティベーションチャネルを小さなデクリメントでトリミングする補完的な手法としては最適なNetAdaptを用いて、アーキテクチャに微調整を加えるそうです。これにより、さまざまな条件下で可能な限り最高のパフォーマンスを提供可能な大規模モデルと小規模モデルの両方が作成できるようになります。

以下のグラフはPixel 4のCPUで実行したImageNet分類タスクにおける、各CNNモデルの精度およびレイテンシを比較したもの。左が小規模モデル、右が大規模モデルにおける精度(縦軸)とレイテンシ(横軸)を示しています。MobileNetV3(青)は大小規模どちらのモデルの場合であっても、各CNNモデルと比較して高精度かつ低遅延であることがわかります。


さらに、MobileNetV3の探索空間は、「モバイル環境に適応するアーキテクチャ設計における最新の進歩に基づいている」とGoogleは説明しています。Swishの非線形関数に基づいた「hard-swish(h-swish)」と呼ばれる新しいアクティベーション関数を導入しており、Swish関数の重大な欠点である「モバイル端末上での計算が非常に非効率的である」という点を補うために、2つの区分線形関数の積を効率的に表現できる近似を使用しているとのこと。

他にも、従来のシグモイド関数を区分的線形近似で置き換えるための「Squeeze-and-Excitation Networks」という技術も導入しています。 h-swishとモバイルフレンドリーなSqueeze-and-Excitation Networksを、MobileNetV2で導入された逆ボトルネック構造の修正版と組み合わせることで、MobileNetV3の新しいビルディングブロックが生まれたそうです。


さらに、MobileNetV3ではネットワークの最後に、新しい効率的な最終ステップを導入することで、レイテンシを15%削減することにも成功しているそうです。


そのほか、MobileNetV3では、COCOデータセットにおいて、MobileNetV2と同等の精度でありながら検出レイテンシが25%も削減されたオブジェクト検出モデルが採用されています。

加えて、Googleは効率的なセマンティックセグメンテーションを実現するためにMobileNetV3の最適化を目指しており、「Lite Reduced Atrous Spatial Pyramid Pooling(LR-SPP)」と呼ばれる低レインテンシーセグメンテーションデコーダーを導入しています。LR-SPPとMobileNetV3の組み合わせにより、高解像度のCityscapesデータセットではレイテンシが35%以上も削減されるそうです。

◆MobileNetEdgeTPU
Pixel 4のEdge TPUは、Coral製品の中に搭載されているEdge TPUのアーキテクチャと非常に似ていますが、Pixel 4にとって重要なカメラ機能に最適化するためにカスタマイズが施されています。アクセラレータ対応の自動機械学習アプローチを用いることで、ハードウェアアクセラレータのニューラルネットワーク設計と最適化に伴う手動プロセスを大幅に削減することに成功しているのですが、このアプローチにおける重要な部分が、「ニューラルアーキテクチャにおいて探索空間を作成すること」だそうです。しかし、これはコンパクトで高速なCPUモデルの構築には不可欠なものであるものの、Edge TPUでは最適化が実行されていないそうです。

そこで、モデル精度とEdge TPUのレイテンシを同時に最適化するために、インセンティブ化されたニューラルネットワークアーキテクチャ検索として、既存のMobileNetV2やMobileNetV3とは異なる、一定の精度で低いレイテンシを実現できるMobileNetEdgeTPUを作成。CoralのEdge TPU用に最適化された「EfficientNet-EdgeTPU」というモデルと比較すると、精度は多少劣るものの、Pixel 4上でははるかに低いレイテンシを実現できるとのこと。

実際にMobileNetEdgeTPU(青)とEfficientNet-EdgeTPU(黒)、MobileNetV2(緑)、MobileNetV3(赤)の3つを、ImageNet分類タスクにおける精度とレイテンシで比較したグラフが以下のもの。横軸がレイテンシ、縦軸が精度を表しています。グラフからもわかるように、MobileNetEdgeTPUは低レイテンシを実現しているため、Edge TPUの消費電力削減にも貢献しているとのこと。Googleによると、同等の精度を求める場合、MobileNetEdgeTPUの消費電力はMobileNetV3の50%未満となります。


そのほか、MobileNetEdgeTPUの分類モデルはオブジェクト検出タスクにおいて、効果的な特徴抽出機能にもなるそうです。MobileNetV2ベースの検出モデルと比較すると、MobileNetEdgeTPUはEdge TPUの同等のランタイムでCOCO14 minivalのデータセットのモデル品質を大幅に改善することが可能です。ただし、MobileNetEdgeTPUはあくまでもEdge TPU向けのCNNモデルであるため、モバイルCPU上で実行してもモバイルCPU向けに特別に調整されたCNNモデルであるMobileNetV3などよりもはるかに低いパフォーマンスとなる、とGoogleは警告しています。

この記事のタイトルとURLをコピーする

・関連記事
GoogleがI/O 2019で発表した100のコトまとめ - GIGAZINE

Google製スマートフォンの最新モデル「Pixel 4」&「Pixel 4 XL」開封&外観レビュー - GIGAZINE

暗所・変顔・目閉じ状態でもちゃんと反応する顔認証搭載の「Pixel 4」を「Pixel 3」と比較してみた - GIGAZINE

Pixel 4とPixel 3のカメラにはどれぐらい差があるのか写真・動画を撮り比べてみた - GIGAZINE

Googleのエッジデバイス向けTPU「Google Edge TPU」がついに発売か、気になる価格は? - GIGAZINE

in ソフトウェア, Posted by logu_ii

You can read the machine translated English article here.