はじめに

今日、人工知能(AI)の能力と範囲は、技術の複雑化に伴い、絶えず拡大しています。その結果、エンジニアはAIをシステムに組み込むという新たな課題に直面しています。その複雑さの一因は、「AIモデルの有効性は、トレーニングデータ次第である」という認識に由来します。もし、そのデータが不十分、不正確、または偏っている場合には、モデルの計算も同様に不正確になります。

AIとシミュレーションは、高いレベルで3つの主要な交わり方をします。

1つ目は、データ不足の問題に対処することです。シミュレーションモデルは、収集が困難なデータや高価なデータを合成するために使用することができます。2つ目は、計算コストのかかる複雑で忠実度の高いシミュレーションの近似値としてAIモデルを利用することです。これは、低次元化モデリングとも呼ばれます。3つ目は、制御、信号処理、組み込みビジョンなどのアプリケーション向けの組み込みシステムでのAIモデルの利用です。ここでは、シミュレーションが設計プロセスの重要な要素になっています。

エンジニアは、より効果的なAIモデルを開発するための新しい方法を模索しています。この記事では、シミュレーションとAIを組み合わせることによって、時間、モデルの信頼性、データ品質といった課題を解決する方法を探っていきます。

課題1:AIモデルのトレーニングと検証のためのデータ

実世界のデータを収集し、カタログ化された良質でクリーンなデータを作成する作業は、困難で時間がかかります。また、ほとんどのAIモデルは静的である(固定パラメーター値を使用して実行される)一方、常に新しいデータにさらされ、そのデータが必ずしもトレーニングセットに含まれていない可能性があるという事実にも留意する必要があります。

モデルのトレーニングに役立つ堅牢なデータがないとプロジェクトは失敗しやすくなるため、データの準備はAIワークフローにおいて重要なステップになります。 「悪い」データでは、洞察に満ちた結果を期待できず、モデルが機能しない理由を特定するために時間を費やすことになります。

シミュレーションは、エンジニアがこれらの課題を克服するのに役立ちます。近年、データセントリックAI(Data-centric AI)により、AIコミュニティは、トレーニングデータの重要性に着目しています。プロジェクトのすべての時間をAIモデルのアーキテクチャとパラメーターの調整に費やすよりも、トレーニングデータの改善に時間を費やした方が、より大きな精度向上が得られる場合が多いことがわかっています。既存のトレーニングデータを補強するためにシミュレーションを使用することには、以下の利点があります。

  • 計算シミュレーションは、一般的に物理実験よりもはるかに低コスト
  • 現実の世界では作成が困難または危険なシナリオを、完全に制御できる環境でシミュレーションできる。
  • シミュレーションでは、実験では測定できないような内部状態にアクセスできるため、特定の状況でうまく機能しないAIモデルをデバッグする際に有効。

モデルのパフォーマンスは、学習させるデータの品質に大きく依存します。エンジニアは、データのシミュレーション、AIモデルの更新、AIモデルが予測できない条件の観測、その条件のシミュレーションデータの収集という一連のプロセスを繰り返すことで、成果を向上させることができます。

SimulinkSimscapeなどのツールを使用することで、実世界のシナリオを反映したシミュレーションデータを生成することができます。 SimulinkとMATLABの組み合わせにより、AIモデルを構築するのと同じ環境でデータをシミュレーションできるため、多くのプロセスを自動化でき、ツールチェーンの切り替えを気にする必要がありません。

課題2:複雑なシステムをAIで近似する

油圧バルブを制御するアルゴリズムなど、物理システムと相互作用するアルゴリズムを設計する場合、システムのシミュレーションベースのモデルが、アルゴリズムの迅速な設計反復を可能にする鍵となります。制御分野ではこれを「プラントモデル」と呼び、無線分野では「チャネルモデル」と呼びます。強化学習の分野では、「環境モデル」と呼ばれます。どのように呼ぼうとも、その考え方は同じです。アルゴリズムが相互に影響を及ぼす物理システムを再現するために必要な精度を持つ、シミュレーションベースのモデルを作成するのです。

このアプローチの問題点は、「必要な精度」を達成するために、これまで基本原則から忠実度の高いモデルを構築してきましたが、複雑なシステムの場合、構築とシミュレーションの両方に長い時間がかかるという点です。シミュレーションに時間がかかるということは、設計の繰り返しが少なくなり、より良い設計の代替案を評価するのに十分な時間がとれないことを意味します。

ここでAIが登場するのは、構築した物理システムに忠実度が高いモデルを、AIモデル(低次元化モデル)で近似できるからです。また、実験データからAIモデルをトレーニングし、物理ベースのモデル作成を完全に回避することも可能です。この場合、基本原則モデルよりも計算コストがはるかに低いため、設計空間の探索をより多く行えるという利点があります。また、システムの物理モデルが存在する場合、AIモデルで決定した設計を検証するために、プロセスの後半でいつでもそのモデルを使用することができます。

  • ディープラーニングを用いて、物理ベースのエンジンモデルの低次モデルを作成した例

ニューラルODE(常微分方程式)などのAI分野における最近の進歩は、AIトレーニング技術と物理学に基づく原理が組み込まれたモデルを組み合わせたものです。このようなモデルは、エンジニアが保持したい物理システムの特定の側面がある一方で、システムの残りの部分をよりデータ中心のアプローチで近似したい場合に役立ちます。

課題3:アルゴリズム開発のためのAI

制御システムなどのアプリケーションのエンジニアは、アルゴリズムを設計する際にシミュレーションに頼ることが多くなっています。多くの場合、これらのエンジニアは、利用可能なセンサーから直接測定されていない値を計算しようとするオブザーバーである「仮想センサー」を開発しています。線形モデルやカルマンフィルターなど、さまざまなアプローチが用いられます。

しかし、実世界の多くのシステムに存在する非線形動作を捉えることができるこれらの方法には限界があります。そのため、エンジニアは複雑な状態を柔軟にモデル化できるAIベースのアプローチに注目しています。彼らは(測定またはシミュレーションした)データを使用して、観測された状態から観測されていない状態を予測できるAIモデルをトレーニングし、そのAIモデルをシステムと統合するのです。

この場合、AIモデルは物理的なハードウェアに搭載される制御アルゴリズムの一部として組み込まれるため、パフォーマンスやメモリに制限があり、通常、C/C++などの低レベル言語でプログラミングする必要があります。こうした要件は、このようなアプリケーションに適した機械学習モデルの種類に制限を課す可能性があるため、エンジニアは複数のモデルを試し、精度とデバイス上の性能のトレードオフを比較する必要があるかもしれません。

この分野の研究の最前線にある強化学習は、このアプローチをさらに一歩推し進めます。強化学習は、推定量だけを学習するのではなく、制御戦略全体を学習します。強化学習は、ロボット工学や自律システムのような難しいアプリケーションにおいて強力な手法であることが示されています。そのようなモデルを構築するには、多数のシミュレーションを実行しうるコンピューティング能力とともに、現実には用意しえない環境の正確なモデルが必要です。

仮想センサーや強化学習に加えて、AIアルゴリズムは、埋め込みビジョン、音声・信号処理、無線通信アプリケーションなどで利用が進んでいます。例えば、自動運転機能を持つ自動車では、AIアルゴリズムが道路上の車線標示を検出して、車を車線中央に維持します。補聴器では、AIアルゴリズムが音声を強調し、ノイズを抑えます。ワイヤレスアプリケーションでは、AIアルゴリズムがデジタル プリディストーションを適用して、パワーアンプの非線形性の影響を相殺することができます。これらすべてのアプリケーションにおいて、AIアルゴリズムはより大きなシステムの一部となっています。シミュレーションは、全体的な設計が要件を満たしていることを確認するための統合テストに使用されます。

  • 制御アプリケーションにおける非線形状態推定器としてのAI。ニューラルネットワークを用いて、電流、電圧、温度の測定値からバッテリーの充電状態を推定しています

シミュレーションにおけるAIの未来

まとめると、アプリケーションが複雑になるにつれて、モデルの規模と複雑さが増します。そのため、AIとシミュレーションは、エンジニアの道具箱の欠かせないツールになることでしょう。SimulinkやMATLABなどのツールは、合成データ生成、低次元化モデリング、制御、信号処理、組み込みビジョン、無線通信アプリケーション用の組み込みAIアルゴリズムなどの手法を取り入れることにより、ワークフローを最適化し、開発時間を短縮することを可能にします。

ハードウェア構築前に、正確かつ低コストでモデルを開発、テスト、検証することができるこれらの方法論は今後もますます利用が拡大し続けることでしょう。

関連リソース

[PR]提供:MathWorks Japan(マスワークス合同会社)