組み込み人工知能とは、組み込み環境で人工知能を実行することです。アルゴリズムモデルは以前と同じですが、結局のところ、組み込み環境にあります。時代は変わり、いくつかのことは変更する必要があります。まず、組み込み型人工知能がなぜ必要なのかを考えてみましょう。 01 なぜ組み込み型人工知能が必要なのか? 現在、人工知能の発展における最大の問題は何ですか?チューリングテストに合格しますか? SOTA について?それは着陸の問題だと思います。近年、人工知能に関する大きなニュースが次々と発表されており、学術界、産業界を問わず、人工知能が今やホットな話題となっていることを誰もが実感しています。しかし、これはバブルではないかと疑問視する声が徐々に強まり、バブルがいつ崩壊するかを予測する声も出始めている。 人工知能に関して意見が二極化しているのはなぜでしょうか? 最初は私も理解できなかったので、友達に聞いたり、情報を読んだりして、だんだんと理解できました。結局はすべて実装の問題だということです。毎年、AI関連のトップカンファレンスがいくつか開催されており、そのたびに話題になるようなものが生まれています。時には「あ、こんなこともできるんだ」と驚くような、予想外のブレークスルーが起こることもあります。公平に言えば、研究の観点から見ると、人工知能は近年進歩しており、その進歩は相当なものです。誰もが、もうすぐ来るシンギュラリティを心待ちにしています。 しかし、アプリケーションの観点から考えると、事態はそれほど楽観的ではありません。確かに、多くの人工知能製品は私たちを感動させましたが、それは数年前のことです。ここ数年何もしていないわけではありませんが、主に最適化に取り組んできました。数年前、Siri はたどたどしく話していましたが、今では基本的に問題なく議論しています。しかし、以前にはなかった新しい機能はありますか?長い間考えましたが、分かりませんでした。問題は、一方では大声で歌っているのに、もう一方では鶏のように静かだということです。 人工知能の次の応用シナリオが次のトレンドになるだろうと多くの人が言っています。もちろん、次の着陸シナリオがどうなるかは推測できませんが、選択肢の 1 つとして人工知能の組み込みが挙げられます。以前、組み込みシステムについて話すときはマイクロコントローラを意味していたため、多くの学生はこの 2 つの単語が同じものだと考えていました。 これまでの組み込みシステムの一般的なプロセスは、センサー信号を入力し、記述したプログラムで処理し、制御信号を出力するというものでした。組み込みシステムを学ぶことは、マイクロコントローラのプログラミングを学ぶことに似ていると感じられるのは、このためです。 しかし、今はインテリジェント時代であり、組み込みシステムは「インテリジェント組み込みシステム」へと進化しています。違いは何ですか? 「AI 組み込みシステム」から引用したポイントは次のとおりです。従来の組み込みシステムは主に制御に使用されますが、インテリジェント組み込みシステムは、知覚、インタラクション、意思決定の 3 つの側面のインテリジェンス レベルを向上させており、それぞれインテリジェント知覚、インテリジェントインタラクション、インテリジェント意思決定と呼ばれています。この本では、これら 3 つの用語が明確に説明されています。ここでは、この質問を利用して、組み込み型人工知能が実装の次のシナリオの 1 つとなる理由についてお話ししたいと思います。 02 知性の役割 誰もが最も知りたいのは、「インテリジェンス」の追加によってどのような違いが生まれるかであり、その鍵はプログラミングにあります。 以前は、組み込みシステムで何かを行うにはプログラムする必要がありました。プログラミングは単にコードを書くだけではありません。まずデータを分析し、要件を絞り込み、最後にプログラミングを通じて実装する必要があります。これらすべてのステップには時間がかかります。特に、組み込み展開環境がますます複雑になり、問題も増えているためです。従来の方法では、プログラミング中にこれらの問題を 1 つずつ考慮し、システムが処理機能を持つようにルールを 1 つずつ記述する必要があります。 手書きのルールは時間がかかり、労力もかかるため、何かを見逃してしまう可能性も高くなります。この問題を解決するより良い方法はありますか?はい、それは人工知能を追加することです。人工知能は手動で書かれたルールを必要とせず、データを通じて「自己学習」することができます。手動で記述するのが容易ではない抽象的なルールについても、人工知能は学習を通じて対応する能力を獲得することができます。それは知性です。 組み込みシステムと人工知能を組み合わせることで、人件費が大幅に削減され、想像の空間が大幅に広がり、次世代のキラー人工知能アプリケーションが誕生する可能性があります。 03 組み込みシステムの特殊な制限 ここで、新たな疑問が生じます。なぜ人工知能から一部を切り離し、それを組み込み人工知能と呼ぶ必要があるのでしょうか? 前述のように、組み込み人工知能のモデルアルゴリズムは以前と同じであり、理論的な観点からは大きな違いはありません。問題は組み込みシステム自体にあります。 組み込み機器のコンピューティング環境は、汎用コンピュータのそれとは大きく異なります。私たちが通常感じる最も大きな違いは、ストレージ容量の小ささです。 「AI Embedded Systems」では、一連の比較データを提供しています。一般的なディープ ニューラル ネットワーク モデルでは、単精度浮動小数点数を使用してパラメータを保存し、対応するストレージ容量は 20 MB から 560 MB の間です。比較すると、従来の低コストの組み込みシステムの RAM ストレージ容量は最大でも 16 MB しかありません。 同様に大きな問題となっているのが、計算能力です。これについては話さないでおきましょう。組み込みデバイスは常に計算能力が劣っています。見落とされがちですが、制限もあるもう 1 つの要因は、エネルギー消費です。ディープラーニング モデルは電力を大量に消費することを知っておく必要があります。モデルをトレーニングするたびに、グラフィック カードのファンがまるで飛び立つような音を立てます。モデルを実行するだけの場合でも、電力を消費します。ただし、組み込みデバイスではエネルギー消費が制限されることがよくあります。 まとめると、おそらく人工知能を必要とする組み込みアプリケーションのシナリオを見つけるのは簡単で、要件を満たす既製のモデルが実際に存在し、完璧に一致するはずです。ただし、組み込みシステム自体のさまざまな制限により、人工知能の既存の成果を単に強制することは、英雄たちを泣かせるだけです。 04 人工知能とどう向き合うか 方法は一つ、二つあります。 1 つは組み込みデバイスのハードウェア条件を改善することですが、これによっても間接的にアプリケーション シナリオが制限されます。もう 1 つは、人工知能自体を最適化し、スペース、コンピューティング能力、エネルギー消費の需要を削減することです。今では誰もが2番目の道を選び、問題を人工知能側に戻して、組み込み型人工知能が誕生しました。 この部分には多くの内容が含まれています。ここでは、組み込み人工知能のどのような側面が研究されているかを理解していただくために、簡単に紹介させていただきます。人工知能が組み込み環境に適応するには、文字通り「靴に合わせて足を切る」必要があり、リソース要件を大幅に削減しながらも、パフォーマンスが大幅に低下しないようにする必要があります。組み込み人工知能では、これを最適化と呼び、たとえば行列乗算の最適化などがあります。 以前、機械学習の知識体系を紹介した際に、行列演算が機械学習のバックボーンであると述べました。機械学習はモデルではなく、一連のモデルであり、これらのモデルは行列演算、主に行列乗算を多用します。行列乗算の量を削減できれば、モデル計算の全体的な量も削減できます。 原理は簡単に理解できますが、何もせずに何かが得られるような良いものが本当に世の中にあるのでしょうか? 科学者たちは実際にそれを解明しました。これは、1969 年に提案され、アルゴリズムの複雑度が O(N3) 未満の最初の行列乗算である Strassen 行列乗算アルゴリズムから始まります。 簡単に言えば、このアルゴリズムは行列乗算演算の量を削減できます。たとえば、2×2 行列乗算の場合、従来のアルゴリズムでは 8 回の乗算演算が実行されますが、このアルゴリズムでは 7 回しか実行されず、行列乗算演算の量が 12.5% 削減されます。ただし、加算演算の数が 4 回から 18 回に増加するため、コストがかからないわけではありません。 大したことではないように思えるかもしれませんが、行列が 128×128 行列演算などの特定のサイズに達すると、このアルゴリズムを使用すると行列乗算演算を約半分に削減でき、最適化効果は非常に大きくなります。同様のアルゴリズムとして Winograd アルゴリズムがあり、これも大規模な行列演算における乗算演算を 50% 削減できます。 上記のタイプのアルゴリズムは、高速行列乗算と呼ばれます。別の解決策は、精度を犠牲にして速度を向上させ、行列乗算の結果に一定の誤差を許容することです。このタイプのアルゴリズムは、データの統計的相関に基づく近似行列乗算や、データ共分散の近似低ランク分解に基づく高速乗算など、近似行列乗算と呼ばれます。 畳み込み演算の演算子レベルでも同様の最適化が実行されます。畳み込み演算の役割については説明の必要はありません。現在、ディープ ニューラル ネットワークによる画像処理は畳み込み演算と切り離すことはできません。最適化の方向は行列の乗算と非常に似ています。高速畳み込みアルゴリズムと近似畳み込みアルゴリズムという 2 つの側面からの研究も行われています。たとえば、1 次元巡回畳み込み周波数領域高速アルゴリズムと、畳み込みカーネルの低ランク分解に基づく 2 次元高速畳み込みです。 05 組み込み型人工知能の開発方法 実践するわけですから、理論的な研究だけでなく、もちろん開発ツールも必要です。しかし、組み込みプラットフォームは数多く存在し、開発環境も異なります。ここでは「AI Embedded Systems」をベースに、Armプラットフォーム上の機械学習ツールについて簡単に紹介します。 Arm自体は言うまでもなく、10年前に組み込みシステムを勉強していた人にとっては、まだ新しい言葉だったかもしれません。今では誰もがスマートフォンを持っており、そこにはArmプロセッサが搭載されています。ただし、プロセッサの分類によると、Arm プラットフォームは、Cortex-A、Cortex-M、Cortex-R の 3 つのシリーズに大別できます。 当社の携帯電話には、NASAが月面着陸時に使用したスーパーコンピュータを上回る計算能力を持つと言われるCortex-Aシリーズが搭載されています。ハードウェア条件は比較的豊富で、開発リソースも豊富です。2大ディープラーニングフレームワークであるPytorchとTensorflowは、いずれもCortex-A用のバージョンをリリースしています。 Arm は、Arm プラットフォーム上での高性能データ コンピューティングをサポートするために、ACL (Arm Compute Libray) などのライブラリもリリースしました。 Cortex-M および Cortex-R シリーズは主に産業用アプリケーションを対象としているため、あまり耳にしません。Cortex-M は低コストおよび低エネルギーのアプリケーション シナリオに重点を置いていますが、Cortex-R はリアルタイム要件が高いタスクに使用できます。 Cortex-A と比較すると、これら 2 つのシリーズの計算能力は非常に限られています。 Arm は、Cortex-M シリーズのアプリケーション開発を容易にするために、CMSIS ソフトウェア アーキテクチャを特別にリリースしました。 CMSIS と機械学習に密接に関連するライブラリが 2 つあります。1 つは CMSIS-DSP ライブラリで、行列演算などの基本的な数学演算、SVM などのいくつかの機械学習アルゴリズム、さらに FIR フィルタリング、KL 距離の計算、DCT 変換、PID 制御、ソート機能などを提供します。 CMSIS-DSP は C 言語を使用しますが、Python の Scikit-Learn ライブラリを使用してトレーニングされたモデルをインポートできます。 もう1つはCMSIS-NNライブラリです。名前の通り、ニューラルネットワークを構築するためのライブラリです。学習済みのモデルをインポートすることもできます。 |
>>: Zooxロボットタクシーが半プライベートルートでテストを開始
現在、人類社会は人工知能の時代に入り、人工知能技術は生活のあらゆる分野で実証され、人類社会の継続的な...
今年初め、NVIDIA の研究エンジニアは、生成的敵対ネットワーク用のスタイルベースのジェネレーター...
最近、清華大学コンピュータサイエンス学部の朱軍教授の研究グループが発表したシュレーディンガー橋[1]...
開発チームが AI ツールの作成に奔走する中、エッジ デバイスでのアルゴリズムのトレーニングが一般的...
近年、サプライチェーンおよび物流業界は、労働力不足から予測不可能な天候、需給の変化まで、ますます多く...
AI時代の到来非常にドラマチックなのは、Microsoft Build 開発者会議と Google...
最近、OpenAI の主任科学者 Ilya Sutskever 氏が、計算理論の研究に重点を置く S...
2019年10月26日、Testinが主催する第2回NCTS中国クラウドテスト業界サミットが北京で開...
以前、RSA アルゴリズムの説明をしてほしいと頼まれたことがあります。今日は私が学んだことに基づいて...
グーグルは8月14日、飛行機による気候への影響を大幅に軽減できる人工知能の分野で大きな進歩を遂げたと...
Stable Diffusion は 11 か月前に誕生し、消費者向け GPU で実行できるという...
[[430184]]さまざまなアイテムの製造における 3D プリントの人気が高まるにつれ、特定の用途...