人工知能(AI)

これだけは知っておきたい3つのこと

人工知能(AI)とは、人間の知的行動のシミュレーションです。AIは、環境を理解し、行動を起こすように設計されたコンピューターまたはシステムです。自動運転車のようなAIドリブンシステムは、機械学習やディープラーニングなどのAIアルゴリズムを、自動化を可能にする複雑な環境に統合します。

なぜAIが重要か

マッキンゼーの予測によると、AIは2030年までに世界中で13兆ドルの経済的価値を生み出すと推定されています。

これは、AIがほぼすべての業界および産業用途でエンジニアリングに変革を起こしているからといえます。自動運転だけでなく、AIは機械の故障を予測するモデルにも使用され、メンテナンスが必要となる時期を示します。医療分野における患者モニタリングシステムのヘルスケアとセンサー分析や、経験から学び改善していくロボットシステムにも適用されています。

AIの一般的な産業用途

AIワークフローの鍵

AIを成功させるには、特に意思決定を行い行動を起こすAIドリブンシステムにおいては、AIモデルのトレーニング以上のものが必要です。強固なAIワークフローには、データの準備、モデルの作成、モデルを実行するシステムの設計、ハードウェアまたはエンタープライズシステムへの展開が含まれています。

AIワークフローのステップ

データの準備

生データを取得し、そのデータを正確かつ効率的で意味のあるモデルに役立つようにすることは、重要なステップです。実際、このステップがAI開発の労力の大部分に相当します。

データの準備には特定分野の専門知識が必要です。具体的には、音声やオーディオ信号の経験や、ナビゲーションとセンサーフュージョン、画像処理動画処理、レーダーとLiDARなどの専門知識です。これらの分野のエンジニアは、データの重要な特徴、重要ではない特徴、または考慮すべきまれな現象を判断するのに最も適しています。

AIには、膨大な量のデータも含まれます。しかし、データと画像のラベル付けは面倒で時間がかかります。特にセーフクリティカルなシステムの場合、十分なデータがない場合があります。正確な合成データを生成することで、データセットを改善できます。どちらの場合も、納期を守るためには自動化が重要です。

AIモデルの作成

AIシステムのモデル化を成功させる主な要因は次のとおりです。

  • 機械学習、ディープラーニング、強化学習、およびその他のAI技術向けの、アルゴリズムと事前構築済みモデルから始める
  • 生産的な設計と分析にアプリを使用する
  • MATLAB®、PyTorch、TensorFlow™などのAIツールを一緒に使用できるオープンなエコシステムで作業する
  • GPU高速化と並列、クラウドサーバー、オンプレミスデータセンターへのスケーリングにより、計算の複雑さを管理する

システムの設計

AIモデルは完全なシステムに存在します。自動運転システムにおいて、認識のためのAIは、位置推定とパスプランニング向けのアルゴリズム、およびブレーキ、加速、旋回の制御と統合する必要があります。

自動運転シナリオに使われるAI

また、風力発電プラントの予知保全や、航空機の自動操縦制御におけるAIを考えてみましょう。

これらのような複雑なAIドリブンシステムには、統合とシミュレーションが必要です。

展開

AIモデルは、組み込みやエッジデバイス、エンタプライズシステム、またはクラウドの一部であろうと、いずれにせよ、最終製品のCPU、GPU、FPGAに展開する必要があります。組み込みまたはエッジデバイスで実行されるAIモデルは、フィールドで必要な迅速な結果を提供し、またエンタープライズシステムやクラウドで実行されるAIモデルは、多くのデバイスで収集されたデータから結果を提供します。多くの場合、AIモデルはこれらのシステムの組み合わせに展開されます。

モデルからコードを生成し、デバイスをターゲットにすると、展開のプロセスは加速します。コード生成の最適化手法とハードウェアに最適化されたライブラリを使用することで、組み込みやエッジデバイスに必要な低電力プロファイルまたはエンタープライズシステムとクラウドの高性能ニーズに合わせてコードを調整できます。

MATLABによるAIドリブンシステムの開発

よく言われるようにAIにはスキル不足な点があります。しかしながら、MATLAB/Simulinkを使うエンジニアや科学者には、各専門分野でAIドリブンシステムを構築するために必要なスキルとツールがあります。

MATLABを使用したデータの前処理

データの前処理にかかる時間が短縮されます。時系列センサーデータから画像やテキストデータまで、MATLABアプリとデータ型はデータの前処理に必要な時間を大幅に短縮します。高水準関数を使用することで、異種の時系列の同期、外れ値の補間値への置換、ノイズの多い信号のフィルタリング、実テキストの単語分割などを簡単に行うことができます。また、プロットやライブエディターによって迅速にデータを可視化することで、傾向の理解やデータ品質の問題の特定に役立ちます。

MATLABアプリは、画像、動画、および音声データのグランドトゥルースラベリングを自動化します。

センサーまたは他の機器からデータが利用可能なる前にアルゴリズムをテストするために、Simulinkから合成データを生成できます。このアプローチは、アダプティブクルーズコントロール(ACC)、車線逸脱防止支援(LKA)、自動緊急ブレーキ(AEB)などの自動運転システムで一般的に使用されています。

セマンティックセグメンテーションのようなディープラーニングワークフロー向けのラベリングアプリの利用

ディープラーニングフレームワークとの相互運用

MATLABによるAIモデル作成

AIモデル作成の方法は用途によって異なります。

機械学習

MATLABユーザーによって、予知保全、センサー解析、金融および通信エレクトロニクス向けの何千ものアプリケーションが展開されています。Statistics and Machine Learning Toolbox™は、モデルの学習と比較、高度な信号処理と特徴抽出、分類、回帰、および教師あり学習教師なし学習向けのクラスタリングアルゴリズムのためのアプリにより、機械学習の難しい部分を簡単にします。

半導体メーカーのASMLは、機械学習を使用して仮想計測技術を開発し、チップを構成する複雑な構造のオーバーレイアラインメントを改善しました。エンジニアのEmil Schmitt-Weaver氏は、「プロセスエンジニアとして、ニューラルネットワークや機械学習の経験はありませんでしたが、MATLABのサンプルを使って、仮想計測を生成するための最適な機械学習関数を見つけることができました。C言語やPythonでこれを行うことはできませんでした。適切なパッケージを見つけ、検証し、統合するのに時間がかかりすぎていたのです。」と語っています。

また、MATLABモデルは多くの統計や機械学習の計算において、オープンソースよりも高速に実行できます。

分類学習器アプリによりデータセットに対して様々な分類器を試し、最適な分類器を見つけることができます

ディープラーニング

エンジニアはMATLABのディープラーニング機能を、自動運転、コンピュータビジョン、音声と自然言語処理、およびその他の用途に使用しています。Deep Learning Toolbox™では、ディープニューラルネットワークのレイヤーを作成、相互接続、学習、評価できます。MATLABのサンプルや事前学習済みネットワークにより、高度なコンピュータビジョンアルゴリズムやニューラルネットワークの知識がなくてもディープラーニングを簡単に行うことができます。また、MATLABを利用することで、エンジニアたちは様々なディープラーニングフレームワークを越えて共に作業することができます。ONNXのサポートにより、MATLABはTensorFlowを含む他のサポートされているフレームワークとの間で最新モデルのインポート/エクスポートが可能です。

ディープネットワークデザイナーアプリにより、ディープラーニングネットワークの構築、可視化、編集が可能です

強化学習

累積報酬に基づく学習の恩恵を受ける制御システムでは、強化学習が理想的な手法です。Reinforcement Learning Toolbox™では、DQN、A2C、DDPG、およびその他の強化学習アルゴリズムを使用してポリシーをトレーニングできます。これらのポリシーを使用して、ロボットや自律システムなどの複雑なシステムにコントローラーと意思決定アルゴリズムを実装できます。ディープニューラルネットワーク、多項式、またはルックアップテーブルを使用してポリシーを実装できます。

Reinforcement Learning Toolboxを使用したポリシーの設計と学習

自然言語処理

自然言語処理モデルは、感情分析、予知保全、およびトピックモデリングによく使用されます。Text Analytics Toolbox™には、テキストデータの前処理、解析、モデル化を行うアルゴリズムと可視化手法が備わっています。機器のログ、ニュースフィード、アンケート、オペレーターのリポート、およびソーシャルメディアなどのソースから、実テキストを抽出し処理できます。

LSA、LDAおよび単語埋め込みなどの機械学習の手法を使用して、クラスターを検索して高次元のテキストデータセットの特徴量を作成できます。Text Analytics Toolboxで作成された特徴量を別のデータソースの特徴量と組み合わせて、テキスト、数値、および他のタイプのデータを使用する機械学習モデルを作成できます。

ストームレポートデータ内のトピック特定

システム設計

複雑なAIドリブンシステムは他のアルゴリズムと統合する必要があります。システム全体がAIモデルの有効性に影響するため、システムの設計とシミュレーションは重要です。エンジニアは、Simulinkを迅速な設計の反復と閉ループテストに使用しています。

たとえば、自動運転システムではAIとシミュレーションを使用して、ブレーキ、加速、旋回のコントローラーを設計します。Simulinkをシステムモデルの設計とシミュレーションに使い、MATLABをAIモデルに使います。Unreal Engineのようなソフトウェアを使用して、理想的なカメラ画像を合成し、AIモデルに渡すことができます。

退職者コミュニティ向けの自動運転タクシーを開発するVoyageは、3か月未満でレベル3の自動運転車を展開しました。統合モデルにより、アイデアから道路でのテストまでのプロセスがスピードアップしました。Simulinkにより、危険な状況を安全にテストすることができます。

また、Simulinkでは、既知の障害状態から障害データを生成することもできます。風力発電所で風力タービンからの測定データに合成故障データを追加できます。システムモデルを改良して、将来の機器の故障を正確に予測できます。

MATLAB/Simulinkで作成された単眼カメラ認識による車線追従制御

モデルの合成故障データと測定データを使用して、将来の故障の確かな予測を作成します

展開

MATLABのAIモデルは、組み込みデバイスまたはボード、フィールドのエッジデバイス、エンタープライズシステム、またはクラウドに展開できます。

ディープラーニングモデルの場合、GPU Coder™を使用してNVIDIA® CUDA® GPUを生成および展開できます。または、Intel®とArm®のボードに展開するために、MATLAB Coder™を使用してCコードを生成します。ベンダーに最適化されたライブラリは、高性能な推論速度で展開可能なモデルを作成します。

MATLAB Production Server™を使用すると、エンタープライズITシステム、データソース、および運用テクノロジーに安全に展開して統合できます。

Tableau®、TIBCO® Spotfire®、Power BI、およびその他の最新の分析システムを含む既存のシステムとデータと直接統合します

AIについてさらに詳しく

MATLABがディープラーニングワークフロー全体(前処理から展開まで)でどのように役立つかを学びます。MATLABを使用したディープラーニングの概要を把握し、様々な用途について見ていきます。
MATLAB、シンプルなWebカメラ、ディープニューラルネットワークを使用して、周囲の物体を識別する方法をご覧ください。このデモではAlexNetを使用します。AlexNetは、100万を超える画像で学習された事前学習済みの畳み込みニューラルネットワーク(CNN)です。
機械学習のトピックを調べ、それが何であるか、そしてどのように使用するかを学びます。
MATLABを使うことでAIの取り組みがいかに容易になるかを3つの事例でご紹介します。
武蔵精密工業株式会社はMATLAB/Simulinkを活用し、シミュレーションにより開発時間短縮を実現しました。
BMWのエンジニアはMATLABを使用して、オーバーステアを98%の精度で検出できる教師あり機械学習モデルを開発しました。