Lattice Blog

Share:

エッジにおける人工ニューラルネットワークの実装

Implementation of Artificial Neural Networks at the Edge
Posted 07/05/2017 by Hussein Osman

Posted in

侵入者とあなたの近所の犬を見分けられる個人のセキュリティシステムや、部屋をスキャンして誰もいないときは自動的に電源を消すスマートTV、法医学的な分析や犯罪が起こる前に怪しい行動を見極められるカメラを想像してください。エッジにおける人工ニューラルネットワーク向けのアプリケーションは無限にあります。アイディアを考えるのは簡単ですが、実際に実装するのは容易なことではありません。設計者はどのようにして人工知能(AI)とニューラルネットワーク、機械学習の利点をリソースに制約がある低消費電力のネットワークエッジデバイスにもたらすことができるでしょうか?

その答えの一部は、データセンターの従来の教育技術を使ってクラウド内で学習し、そして、“推論”のためにエッジネットワークのデバイスにウェイトとパラメータをダウンロードすることにあります。ニューラルネットワークは“学習”段階で提供された例をふまえた“推論”を通じてタスクをこなし、前進的に学習します。ネットワークエッジレベルの推論の使用は、取得されたデータが絶えずクラウドに送られないので、意思決定のレイテンシを最小限に抑え、ネットワークの混雑を解消するとともに、個人のセキュリティやプライバシーを向上させます。

他の解決法は2値化ニューラルネットワーク(BNN)によるオンデバイスAIの使用にあります。BNNは実行時に大きな数値の代わりに1ビット値を使用することにより、乗算と除算の使用を排除します。これによって、足し算だけで畳み込み計算が可能になります。乗算がデジタルシステムにおいて一番スペースがと電力を必要とするコンポーネンツであることから、足し算に置き換える非常に大きな電力やコストの節約になります。

しかし、クラウドで計算リソースを使いたくないエッジのネットワークでのAIベースソリューション開発者は、電力とリソースをより効率的に使用する新しい方法を見つけなくてはいけません。その方向性における1歩として、小さな2値化ニューラルネットワークまたはTinBiNNと呼ばれる新しい種類のニューラルネットワークの出現があります。2値化のウェイト、8ビットアクティベーションを備えたいかなるニューラルネットワークも計算できる機能を備えています。 

最近、VectorBox Computing社とラティスの開発者が小さくて軽い2値かニューラルネットワークオーバーレイを共同開発しました。私たちはラティスのiCE40 UltraPlus 5K FPGA上に5280 LUTのうち5036個を用いたデモシステムを構築しました。デバイスの8 DSPブロックのうちの4つと、ブロックRAMの120kビット全て、シングルポートRAMの128kビット全てを使用しています。ORCAソフトRISC-VプロセッサでALUとして機能するようハードウェア内に2値化ニューラルネットワークオペレータを実装しました。さらに、プロセッサには、MaxPoolやアクティベーション機能のような他の数値計算の段階を高速化するためのベクトル命令のカスタムセットが追加されました。試作を加速し、設計を検証するため、開発チームはiCE40 UltraPlusモバイル開発プラットフォームを活用しています。

このシステムは将来性が見込まれ、動作はフレーム当たり1秒で0.4%未満のエラーレートです。ハイパワーのインテル社i7クアッドコアは1.5msの高速計算が可能ですが、iCE40 UltraPlusシステムははるかにシンプルで消費電力はわずか4.5mWです。

この間に、推論システムを開発する最適な場所についての論争は続きます-クラウド、ネットワーク、もしくデバイス上のエッジでしょうか?VectorBloxとラティスの事業はオンデバイスAIに関して強い議論を引き起こしました。このケースでは、RISC-Vプロセッサを使ってAIをFPGAに構築することは、電力消費を削減するだけでなく、レスポンスタイムを加速します。同時に、セキュリティとプライバシーのローカル処理を向上させます。iCE40 UltraPlusの機械学習デモについての詳細は当社のウェブサイトをご覧ください。

Share: