XNOR-NETテクノロジー詳細解説:AIテクノロジーがモバイル端末に搭載され、新時代が到来

XNOR-NETテクノロジー詳細解説:AIテクノロジーがモバイル端末に搭載され、新時代が到来

[[187849]]

この時代、人間の生活はスマートデバイスから切り離すことはできません。持ち歩く携帯電話であれ、手首に着けるスマートウォッチであれ、それらはすべて人工知能と密接に関係しています。同時に、人間のライフスタイルはますますシンプルになっています。現代人は旅行のときに携帯電話を持参するだけで、社交コミュニケーション、取引の支払い、旅行、交通などの一連の問題を効果的に解決できます。社会の携帯性と知能化への要求の発展に伴い、モバイル端末上で人工知能を実現することが一般的な傾向になっています。しかし、人工知能の実現には、ハードウェア機器への多額の投資だけでなく、大規模なデータセンターのサポートも必要になる場合があります。では、人間の生活に浸透できるモバイルデバイス上で AI テクノロジーの力を構築するにはどうすればよいでしょうか?

2017年2月2日、米国シアトルに拠点を置くAIスタートアップ企業xnor.aiは、Madrona Venture GroupとAllen Institute for Artificial Intelligenceから260万ドルのシード資金を調達したことを発表しました。このプラットフォームは、データセンターやインターネット接続に依存せず、モバイルデバイスや組み込みデバイス(携帯電話、無人車両など)上で直接かつ効率的に実行できるディープラーニングモデルの開発に特化しています。

モバイル展開向けに開発された Xnor.ai のディープラーニング テクノロジーは、応答性、速度、信頼性の点で最高レベルです。さらに、すべてのデータはモバイルデバイスに保存されるため、個人のプライバシーを高いレベルで保護できます。たとえば、物体検出性能の面では、業界はこの技術を携帯電話に全面的に適用し、リアルタイムの物体検出を実現できます。

実際、xnor.ai チームは 5 ドルの Raspberry Pi Zero に XNOR-Net を導入し、カメラを接続することでリアルタイムのビデオ分析を実現しました。この Web サイトのデモで示されているリアルタイムの検出と分析の効果は非常に目を引くものであり、強い視覚的インパクトを与えます。 Raspberry Pi Zero のようなモバイル デバイスで銃やナイフのリアルタイム監視やタイムリーなアラームが実行できれば、この技術を使用して AI セキュリティ製品をさらに開発し、AI セキュリティの分野を拡大することができます。また、この技術が他の分野で持つ大きな商業的価値も言うまでもありません。

周知のとおり、ディープラーニング モデルでは行列演算の数が多いため、GPU アクセラレーションが不可欠なハードウェア サポートとなり、コンピューティング リソースが限られているモバイル デバイス上でディープ ネットワークを実装することが困難になっています。では、xnor.ai はどのようにしてモバイル デバイスにディープ ネットワークを展開するのでしょうか? ここでは、バイナリ ニューラル ネットワークの概念について説明する必要があります。

ニューラル ネットワークの研究が深まるにつれ、従来のニューラル ネットワークでは計算コストとメモリ容量に対する要件が高く、2 値化によってこれらの問題を効果的に改善できることが学術研究者によって発見されました。ネットワークのバイナリ化は、モデルのストレージ サイズを縮小してストレージ容量を節約するだけでなく、計算を高速化し、コンピューティング コストを削減します。

2015年11月、カナダのモントリオール大学のYoshua Bengio教授率いる研究室チームのMatthie CourbariauxがバイナリニューラルネットワークBinaryConnectに関する論文(BinaryConnect: Training Deep Learing Neural Networks with binary weight during propagations)を発表し、大きな注目を集め、バイナリネットワークの新時代を切り開きました。論文で提案されたBinaryConnectアルゴリズムの鍵は、パラメータ更新プロセスで重み(つまり、依然として浮動小数点数)の完全な精度を維持しながら、順方向伝播と逆方向伝播でのみ重みを1または-1に2値化することです。このアプローチにより、行列演算の約3分の2を節約でき、トレーニング時間とメモリスペースが大幅に最適化されます。同時に、MNISIST、CIFAR-10、SVHN画像分類データセットでのBinaryConnectの実験結果は、当時の最高レベルに達する可能性があります。

これを基に、Matthieu と Itay はその後、より完全なネットワーク モデルである BinaryNet を提案する論文 (Binarized Neural Networks: Training Networks with Weights and Activations Constrained to +1 or -1) を共同で発表しました。BinaryNet は、重みと隠し層のアクティベーション値の両方を 2 値化し、xnorcount および popcount 演算を使用して、ネットワーク内の従来の算術演算を置き換えます。このアルゴリズムは、一般的に使用される画像データセットでのモデル二値化実験でも成功しており、計算の複雑さを約 60% 削減し、分類の精度を確保しながら GPU の実行時間を 7 倍も短縮することができます。同時に、実験チームはCUDA、Theano、Torch上のコードも公開しましたが、残念ながら、このアルゴリズムはImageNetなどの大規模なデータセットで精度を維持できるかどうかは証明されていません。 BinaryNet の登場により、モデル精度の低下を最小限に抑えながら、モデル サイズを縮小し、計算の難しさを簡素化することでアルゴリズムが高速化されました。これにより、モバイル デバイスでのディープ ネットワークの展開に希望が生まれます。

ニューラル ネットワーク テクノロジーの活発な発展に伴い、多くの教授や学者が業界に加わったことは特筆に値します。たとえば、Matthie Courbariaux は現在 Google に入社し、TensorFlow フレームワークのディープ モデルの量子化タスクの実装を担当しています。 Matthie の論文の 2 値化の概念 (つまり、モデルの精度を失わずにモデルのサイズのみを圧縮する) とは異なり、実際に適用される量子化は、離散化として理解するのがより適切です。一般的に、ニューラル ネットワークをトレーニングする場合、重みに若干の微調整を加える必要があり、これらの微調整が適切に機能するには浮動小数点の精度が必要であり、低精度の計算はネットワークによってノイズとして扱われます。ディープ ネットワークの素晴らしい点の 1 つは、ネットワークが低精度の計算を一種のノイズとして扱うことができるため、入力ノイズにうまく対処できることです。これにより、量子化されたネットワークは、より少ない情報で数値形式で正確な結果を生成できます。

ネットワークを量子化する動機は 2 つあります。1 つはサイズを縮小することです。これは、各レイヤーの最大値と最小値を保存し、各浮動小数点値を 8 ビットの整数に圧縮して表現することで実現されます。 2 つ目は、リソース要件を削減することです。これには、計算全体を 8 ビットの入力と出力を使用して実装する必要があります。量子化圧縮はリスクを伴い、現在のバージョンはあまり成熟していないようです。Github の多くの開発者は、この方法を使用して量子化されたモデルは非効率的であると考えています。

2016 年 3 月、Mohammad Rastegari らは論文 (XNOR-Net: バイナリ畳み込みニューラル ネットワークを使用した ImageNet 分類) で初めて XNOR-Net の概念を提案しました。この論文は、二値化操作を使用して最も簡略化されたネットワークを見つけることを目的としており、バイナリ重みネットワークと XNOR ネットワークという 2 つの効果的なネットワークを紹介しています。 Binary-Weight-Networks は、CNN 内のすべての重みの 2 値化を近似し、ストレージ スペースを 32 倍節約できます。さらに、重みが2値化されているため、畳み込み処理には加算と減算のアルゴリズムのみが含まれており、乗算演算が含まれなくなり、計算速度が約2倍に向上します。これにより、精度を犠牲にすることなく、ポータブルデバイスなどの小型ストレージデバイスでCNNを使用できるようになります。 Binary-Weight-Networks は、2 値化方法とネットワーク構造において BinaryNet と異なります。

XNOR-Networks アルゴリズムは、CNN 内のすべての重みと入力を同時にバイナリ化します。畳み込み演算のすべてのオペランドがバイナリの場合、2 つのバイナリ ベクトルのドット積は、XNOR 演算とビット演算と同等になります。この記事における著者の主な貢献は 2 つあります。1 つはスケーリング係数を導入して精度を大幅に向上させること、もう 1 つは従来の典型的な CNN 構造を変更することです。

XNOR-Net アルゴリズムの基本的な考え方は次のとおりです。

ステップ 1: L 層 CNN 構造を定義します。これは、3 つの要素 I、W、* を使用して表します。ここで、I は畳み込み入力、W はフィルター、* は畳み込み演算子を表します。スケーリング係数 α を使用して、2 値化フィルターが完全精度のフィルター重みを近似できるようにします。また、スケーリング係数 β を使用して、2 値化入力が完全精度の入力値を近似できるようにします。これはバッチ正規化のアフィン パラメーターに多少似ていますが、違いは、ここではネットワークの学習によって取得されるのではなく、平均を計算することによって取得される点です。スケーリング係数 β の計算を検討する場合、畳み込みによって生成されたサブテンソルごとに β を計算する必要があり、その結果、多くの冗長な計算が発生します。計算量を削減するために、著者はすべての入力チャネルの絶対値平均行列 A を計算し、2 次元フィルター k と A の畳み込みを通じて K を生成します。すると、K にはすべてのサブテンソルに対する入力 I のスケーリング係数が含まれます。このような一連の数学的導出により、入力 I と重み W のバイナリ畳み込みは次のように近似できます。

具体的なプロセスは以下のとおりです。

図 1: XNOR-Net はバイナリ畳み込みプロセスを近似します (Mohammad Rastegari 他)

ステップ 2: 一般的な CNN は、畳み込み、バッチ正規化、アクティベーション、プーリングの 4 層構造になっています。プーリング層は、入力に対して任意のタイプのプーリング方法を適用できます。ただし、バイナリ入力 (-1, 1) がプーリング プロセスに入ると、多くの情報が失われます。たとえば、バイナリ入力に対して最大プーリングを実行すると、入力の大部分は +1 のみになり、メッセージが失われ、精度が低下します。この問題を解決するために、著者はネットワーク構造を改良し、これらの層の順序を変更しました。まず、平均が0になるようにバッチ正規化を実装し、次にバイナリ活性化を実行して、データがすべて+1と-1になるようにしました。次に、バイナリ化畳み込みを実行しました。このとき、スケーリング係数の影響により、出力は-1と+1ではなくなり、情報損失が相対的に減少します。ここで著者らは、バイナリ畳み込みの後に非バイナリ化アクティベーションステップ(ReLU など)を追加することを提案しており、これによりより複雑なネットワークのトレーニングが可能になります。

具体的なプロセスは以下のとおりです。

図 2: 典型的な CNN と XNOR-Net の構造 (Mohammad Rastegari 他)

XNOR-Net チームは、独自に構築した軽量ニューラル ネットワーク フレームワーク DarkNet で CPU 速度を 58 倍に向上させました。これは、XNOR-Net が小さなメモリ デバイス上でリアルタイム タスクを完了できることを意味します。実際、2016年のComputer Vision Conferenceでは、XNOR-NetチームがYOLO物体検出アルゴリズムのXNORバージョンを使用してiPhone上でリアルタイム検出を実現し、注目を集めました。 XNOR-Net の出現により、BinaryNet の記事の不足が補われ、最終的にバイナリ ニューラル ネットワークが ImageNet での実験を完了できるようになりました。

興味深いことに、XNOR-Net チームはかつて、彼らを有名にした Yolo ネットワークを含むコードを Github でリリースしていました。しかし、彼らは公開された論文で C/C++ ソースコードをリリースせず、Torch バージョンのみをリリースしました。かつて Github でリリースされたバージョンも短命で、すぐに撤回されました。今のところ、これらの行動は間違いなく XNOR-Net の商用化に向けた準備であると思われます。

Xnor.ai の一連の動きは、昨年人気を博した Prisma APP のオフライン版のリリースや、新世代のスマートウォッチ OS Andriod Wear 2.0 のリリースを思い起こさざるを得ません。これらはすべて、モバイル デバイスでのディープラーニングの典型的な製品例であり、これらの技術的成果と R&D 製品は、世界をつなぎインターネットを普及させること、人工知能、仮想現実と拡張現実という、今後 10 年間の主要な R&D 戦略領域における Facebook の先見性を証明しています。

また、Facebookが昨年末にリリースしたCaffe2Goも、モバイルデバイスに組み込んで展開できるディープラーニングフレームワークであり、規模が小さく、トレーニング速度が速く、コンピュータの性能に対する要求が低いという利点がある。その本質は、Facebook のハードウェア最適化エンジニアとアルゴリズムの専門家 (Jia Yangqing 氏が代表) がパフォーマンスの最適化に多大な労力を費やし、Caffe2Go をモバイル フォンに正常に展開できるようにしたことです。同様に、Google は TensorFlow Android カメラ デモを Github でリリースしました。ここで Google は、より複雑な Inception v3 画像分類ネットワーク モデルを約 4 倍量子化して圧縮し、Android スマートフォンに展開しました。このモデルは、物体認識や歩行者検出などのタスクもスマートフォンで実行できます。これらの最適化は、アルゴリズム自体の革新的というよりは、エンジニアリング的な意味合いが強いように思われますが、これらのインターネット大手の行動は、間違いなく私たちに何らかのインスピレーションを与えてくれるでしょう。モバイル端末にディープラーニング フレームワークを展開することは、将来の主流の開発トレンドです。

現在、ディープラーニングフレームワークの開発と最適化は急速に進んでおり、その種類も数多く存在します。しかし、モバイル端末に対応できるフレームワークは比較的少ないです。どのフレームワークがモバイル端末への展開に最適な選択肢であるかは、まだ検証されていません。 TensorFlow などのより複雑な主流のディープラーニング フレームワークと比較して、MXNET は、メモリ要件が低く、非常に柔軟なディープ オープン ソース フレームワークとして業界でも好まれており、それ自体が複数のモバイル端末をサポートしています。

昨年6月、中国のFace++はDoReFa-Netアルゴリズムに関する記事(DoReFa-Net:低ビット幅勾配による低ビット幅畳み込みニューラルネットワークのトレーニング)を発表しました。 DoReLa-Net では、スケーリング係数の設計がよりシンプルになっています。畳み込み層によって出力される各フィルター マップのスケーリング係数を計算する代わりに、畳み込み層の全体的な出力の平均定数がスケーリング係数として計算されます。これにより、逆操作を実行するときに量子化も実行する必要があるため、逆操作が簡素化されます。 DoReLa-Net の貢献は、2、4、8、16、32 ビットの重みと活性化関数の量子化という異なる量子化係数の実験結果を提供し、後方フィードバックで勾配量子化を実現することです。勾配二値化の問題に対して、XNOR-Net は理論的な計算方法のみを提案し、4~16 ビットの量子化実験は実装しておらず、逆勾配計算では二値演算を使用していませんでした。 SVHN と ImageNet の実験により、DoReFa-Net は CPU、FPGA、ASIC、GPU に効果的に適用できる大きな可能性と実現可能性を持っていることが示されました。ただし、DoReLa-Net では xnor 演算や popcount 演算は使用しないため、実験結果は精度の参考値のみとなり、加速効果はありません。

人工知能は現在、医療、セキュリティ、車両輸送、教育などのあらゆる分野に浸透しており、一般大衆の携帯生活にAI技術を移植することは避けられなくなっています。今後は、車載ナビゲーション機能、モバイルゲームクライアント、さまざまなモバイルアプリなど、モバイル端末にニューラルネットワークを組み込むことに特化した製品がさらに登場するでしょう。これは、モバイル端末上で人工知能を実現するのは非常に便利で持ち運びやすく、いつでもどこでも人々のさまざまなニーズを満たすことができるためです。また、オフライン時には、データをアップロードまたはダウンロードする必要がないため、情報伝達の時間が短縮され、ユーザーのプライバシーが向上します。人々は、生活の質をさらに向上させ、ライフスタイルを変えるために、AI を自らの手で直接制御する意欲と必要性を持っています。

同時に、産業発展の観点から、モバイル人工知能の推進も不可欠です。産業用ロボットや家庭用ロボットなどの工業製品も、ポータブル機能を備えた組み込みチップに依存する必要があります。ハードウェア条件の発展によりディープラーニングの速度が制限される一方で、ソフトウェアアルゴリズム技術の改善は革新を続けます。この革新の過程で、端末デバイスのインテリジェント化が日の目を見始めました。

しかし、このプロセスには、克服すべきボトルネックや問題がまだいくつか残っています。たとえば、大規模データベース上でバイナリ ニューラル ネットワーク モデルのパフォーマンスを向上させる方法、既存のバイナリ ネットワーク アルゴリズムの精度と速度を最適化する方法、フル精度ネットワークと比較したバイナリ ネットワーク モデルの情報損失の欠陥を三元ネットワークで補えるかどうかなどです。また、産業分野におけるもう 1 つの非常に重要な問題は、理論上のアルゴリズムを効率的に実装する方法、さらには実用的なネットワーク モデルやフレームワークを開発できるかどうかです。これらの問題は、将来の研究開発担当者の焦点と研究方向となるでしょう。

xnor.ai が人工知能の分野で血みどろの嵐を巻き起こすかどうかは、時が経てばわかるだろう。

<<:  人間と機械のインターフェースは一貫性があり、音声と触覚によるフィードバックを提供する必要がある。

>>:  ビッグデータの機械理解の秘密:クラスタリングアルゴリズムの詳細な説明

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

二次編集やUnreal Engine 5へのインポートをサポートし、Stable Diffusionは3D生成機能に進化

全体像を捉えるモデルに関して言えば、Stability AI が 2022 年にリリースした Sta...

貪欲アルゴリズム: バイナリツリーを監視したい!

[[361051]]バイナリツリーの問題の監視アドレス: https://leetcode-cn....

スマートホテルの室内技術トレンドを探る

オンライン予約プラットフォームは人々の旅行計画の方法に革命をもたらし、モバイルアプリによりユーザーは...

大型モデルを実行するカード、パフォーマンスは4090の80%に達し、価格は半分だけ:陳天奇TVMチームが制作

最近、テクノロジー分野の多くの人々がコンピューティング能力について懸念しています。 OpenAI C...

2021年の産業用ロボットの6つの主要トレンド

産業情報ウェブサイトReportlinkerが2020年11月に発表したレポートによると、産業用ロボ...

AlibabaのBladeDISCディープラーニングコンパイラが正式にオープンソース化

ガイドディープラーニングの継続的な発展により、AI モデルの構造は急速に進化しており、基盤となるコン...

AIはビデオを流暢に解釈できますか? Vista-LLaMAはこの「錯覚」の問題を解決します

近年、GPT、GLM、LLaMAなどの大規模言語モデルは自然言語処理の分野で大きな進歩を遂げており、...

フレームワークがシャム自己教師学習を統合、清華大学とセンスタイムが効果的な勾配形式を提案

[[443228]]現在、自己教師あり学習は、手動によるラベル付けを必要とせずに強力な視覚特徴抽出機...

北京大学はChatGPTを使用して開発チームを構築し、AIが人間の介入なしにソフトウェア開発を自律的に完了します

「一人の能力には限界があるが、チームの力は無限である。」この言葉は、現実世界のソフトウェア開発に鮮や...

...

ASO チュートリアル: 評価とダウンロードの最適化と Google Play ストアのランキング アルゴリズム

この ASO チュートリアル シリーズを初めて読む場合は、最初の記事から始めることをお勧めします。 ...

...

検討すべき5つのスマートホームテクノロジー

今日でも、ほとんどの人はスマートホームテクノロジーを手の届かない贅沢品と見なしています。しかし、家庭...