2017 年には、モバイル アプリケーション向けのディープラーニングにおいて大きな進歩がありました。 2017 年 4 月、Google は軽量ニューラル ネットワーク MobileNets をリリースしました。 2017 年 6 月、Apple はモバイル デバイス上で機械学習モデルの実行をサポートする Core ML をリリースしました。さらに、最近発売されたハイエンドデバイスの中には、MacBook Proよりもさらに高速に機械学習を実行できるGPUを搭載したものもあります。 ディープラーニングはすでにあらゆるところに存在しています。この記事では、ディープラーニングの実際のアプリケーションを見て、それがどれだけ高速化できるかを見ていきます。 MobileNets アプリケーション 私たちは最近、セマンティックセグメンテーション問題を解決するために、MobileUNet と呼ばれる新しいディープニューラルネットワークを開発しました。設計は非常にシンプルで、U-Net で MobileNet を使用します。ここでは要点のみ記載しています。詳細については、GitHub リポジトリを参照してください。
このプロジェクトを開発する際、私たちは主に推論速度を重視しました。ディープ ニューラル ネットワークは GPU 上でより高速に実行されることはわかっていますが、モバイル デバイス上で実行するとどうなるでしょうか? そのため、MobileNets を使用しました。
下の図に示すように、比較的理想的な結果が得られます。 スピードと正確さ MobileUNet のパフォーマンスを紹介する前に、いくつかの一般的な概念を明確にしたいと思います。 すべての畳み込み (Conv2D、DepthwiseConv2D、Conv2DTranspose など) は、異なるプロセッサで同じ速度で実行されますか? 答えはノーです。プロセッサによっては、一部の操作は高速になり、一部の操作は低速になります。 CPU と GPU の違いは簡単に区別でき、異なる GPU でも最適化に違いがあります。 次の図は、通常の畳み込みブロックと深さ方向の畳み込みブロックの違いを示しています。 深さ方向の畳み込みブロックと通常の畳み込みブロックのパフォーマンスは CPU 上では大きく異なりますが、GPU 上ではその差ははるかに小さくなります。 したがって、モバイル デバイスをベースにしたディープラーニング アプリケーションをリリースする場合は、まず主流のデバイスでテストするのが最適です。次に、MobileUNet のさまざまな指標を共有したいと思います。 主に以下の機材を使用しました。
MobileNets は、速度と精度の比率を制御するための alpha というパラメータを提供しているため、MobileUNet でもこのパラメータを使用します。 4 つのアルファ値 (1、0.75、0.5、0.25) と 4 つの画像サイズ (224、192、160、128) を選択しました。 下の図は速度の比較です。 驚いたことに、最も速いデバイスは iPhone 8 Plus ではなく、iPhone 7 Plus でした。 iPhone 7 Plus は非常に高速で、リアルタイム アプリケーションでも問題ありません。 iPhone 6 Plus と Snapdragon 820 は、特にアルファ値が大きい場合にはそれほど高速ではありません。 下の図は精度の比較です。 アルファが 0.25 に達すると、精度は急激に低下し始めます。精度はアルファ値と画像サイズに応じて直線的に低下します。したがって、アルファ値 0.25 は使用しません。 下のグラフは、Snapdragon 820 で実行されている速度と精度を示しています。 速度が重要な場合は、サイズが 128、精度が 0.875 IoU、アルファ値が 0.5 の左上のものを検討できます。精度がより重要な場合は、サイズが 192 でアルファ値が 0.5 のものを選択できます。 もちろん、デバイスごとに異なるモデルを使用することもできますが、複雑さが増します。 それでは、iPhone 7 Plus が iPhone 8 Plus よりも高速な理由を見てみましょう。 すでに述べたように、速度は各プロセッサによって異なります。 iPhone 7 Plus の GPU が iPhone 8 Plus の GPU よりもニューラル ネットワークに適しているかどうかを調べるために実験を行いました。 MobileUNet のエンコーダーとデコーダーを別々の部分に分割し、そのパフォーマンスをテストします。 明らかに、デコーダー部分が iPhone 8 Plus のボトルネックです。デコーダーでは Conv2DTranspose を使用しました。iPhone 7 Plus の GPU は Conv2DTranspose に最適化されていますが、iPhone 8 Plus は最適化されていません。 ベンチマークに使用されるスクリプトは Gist で入手できます。
結論は モバイルデバイスでのディープラーニングの使用はトレンドになっており、近い将来、ディープラーニングの応用はますます便利になるでしょう。 しかし、すべてのデバイスにハイエンドの GPU が搭載されているわけではないので、パフォーマンスのチューニングが必要です。プロセッサによって特性が異なるため、パフォーマンス テストには必ず実際のデバイスを使用してください。 パフォーマンス テスト自体は難しくなく、トレーニング済みのモデルを使用する必要もありません。トレーニングされていないモデルを使用して、パフォーマンスのボトルネックを見つけることができます。 |
>>: AI時代のクラウドベースのインテリジェントコンピューティング
人工知能は教育分野に大きな波を起こしている。この傾向は、北京師範大学とiFLYTEKが共催した「人工...
世界の食品サプライチェーンの複雑さには驚かされることがあります。何千万もの農場が何百万もの食料品店や...
1. 新しいユーザーシナリオでの実験が直面する問題1. UGパノラマUGのパノラマビューです。 U...
突然でしたね… Meta の MR ヘッドセットは舌を追跡できるようになりました。効果は次のようにな...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
2023年の初め、OpenAIが開発したChatGPTの出現により、インターネット業界の微妙なバラ...
最近では、セキュリティ業界のほぼあらゆるところで人工知能 (AI) の話題が取り上げられています。確...
[[317457]]教育部が発表した最新の学部専攻新登録リストでは、理工系や総合大学のほか、語学や...
[[256809]]アルゴリズムを理解しておらず、AI機能を備えたアプリを開発したいアプリ開発者の...
[[317839]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...