AI 技術は、産業に革命をもたらし、私たちの働き方や生活様式を変えつつあります。航空宇宙、自動車、医療などのセーフティクリティカルな産業分野で AI システムの導入が進むにしたがい (図 1)、AI システムが人間の安全と福祉に直接影響する意思決定を行うようになってきています。この状況を受けて、モデルの動作を説明して、検証し、妥当性を確認するための厳密な検証・妥当性確認プロセスの必要性が高まっています。
AI 認証において、検証と妥当性確認 (V&V) の手法は、AI モデルや AI を活用したシステムが業界標準と規制に準拠していると実証することで、リスクの特定と軽減を支援します。
従来の V&V ワークフロー (V サイクルなど) では、AI モデルの精度と信頼性を確保するには不十分な場合もあります。こうしたワークフローを AI 用途に合わせて適応させた、W字型開発プロセスのような新しいワークフローも登場しています。(図 2)。
以降のセクションでは、W 字型開発プロセスの V&V 手順について説明します。詳細なプロセスについては、以下のリソースを参照してください。
このトピックについてさらに詳しく
このプロセスの実践的な事例を示すため、本ホワイトペーパーでは、胸部 X 線画像を解析して患者が肺炎に罹患しているかどうかを識別する医療用 AI システムの開発プロセスについて解説します。以下のケーススタディでは、セーフティクリティカルな用途における AI の長所と課題を明確にし、誤診による被害を未然に防ぐために画像分類モデルが正確かつ堅牢であるべき理由を示します。
W 字型開発プロセスの前半では、AI モデルが必要な基準を満たし、実際のアプリケーションで確実に動作するようにします。
ML コンポーネント管理に割り当てられた要件
W 字サイクルの最初のステップは、機械学習コンポーネントに特化した要件の収集です。主な考慮事項には、モデルの実装、テスト、説明可能性が挙げられます。Requirements Toolbox™ を使用すると、要件の作成、紐付け、検証がしやすくなります (図 3)。
データ管理
W 字サイクルにおける次のステップはデータ管理です。教師あり学習はラベル付きデータを必要とするため、データ管理が極めて重要になります。MATLAB® では、インタラクティブな自動ラベル付けを可能にするイメージラベラーや信号ラベラーなどのアプリを提供しています。以下のように、imageDatastore を使用すれば、画像ファイルをスケーラブルに構造化して、大規模な画像データセットを管理することができます。たとえば、肺炎検出学習を行う画像データの管理などです。
trainingDataFolder = "pneumoniamnist\Train"; imdsTrain = imageDatastore(trainingDataFolder,IncludeSubfolders=true,LabelSource="foldernames"); countEachLabel(imdsTrain)
学習プロセスの管理
学習の前に、アルゴリズム、損失関数、ハイパーパラメーターを含むネットワーク アーキテクチャと学習オプションを確定することが重要です。ディープ ネットワーク デザイナー アプリを使用すると、インタラクティブなネットワークの設計や可視化が可能になります。以下のコードは、画像分類用の畳み込みニューラル ネットワーク (CNN) のアーキテクチャを定義します。
numClasses = numel(classNames);
layers = [
imageInputLayer(imageSize,Normalization="none")
convolution2dLayer(7,64,Padding=0)
batchNormalizationLayer()
reluLayer()
dropoutLayer(0.5)
averagePooling2dLayer(2,Stride=2)
convolution2dLayer(7,128,Padding=0)
batchNormalizationLayer()
reluLayer()
dropoutLayer(0.5)
averagePooling2dLayer(2,Stride=2)
fullyConnectedLayer(numClasses)
softmaxLayer];
最適なハイパーパラメーターの検出は複雑になりがちですが、実験マネージャーアプリを利用すれば、スイープやベイズ最適化を通じてさまざまな値を検討することができます (図 4)。利用可能なハードウェアを活用して、複数の学習構成を同時にテストすることで、プロセスの効率化が可能になります。
モデル学習と初期検証
学習段階は、実験マネージャーアプリで実験を実行するところから始まり、期待される精度 (検証用データで最大 96%) の初期モデルを獲得します。しかし、この初期モデルは、堅牢性など事前定義された要件をすべて満たしているわけではありません。W 字サイクルは反復的であるため、さらなる改良が求められます。
このトピックについてさらに詳しく
- AI の検証と妥当性確認: 要件からロバストモデリングへ - ブログ
- 敵対的サンプルに対してロバストな画像分類ネットワークの学習 - 例
- MATLAB または Simulink での要件の作成 - ドキュメンテーション
モデル性能のテストと理解
このモデルは、敵対的サンプルに対する堅牢性を高める FGSM (Fast Gradient Sign Method) の敵対的学習を用いて、学習を行いました。その結果、90% を超える精度を達成し、事前に定めた要件とベンチマークを上回りました。モデルの性能をさらに理解するために、混同行列を用いてエラーのパターンを解析する一方で、Grad-CAM (図 6) などの説明可能性技術を活用してモデルの判断根拠を可視化することで、解釈性や信頼性の向上を図りました。
敵対的サンプル
敵対的サンプルとは、入力に感知できないほどわずかな変化を加えることで、ニューラル ネットワークに誤分類を引き起こします。これは医用画像のようなセーフティクリティカルなタスクにおいて、モデルの堅牢性に対する懸念を生じさせます (図 7)。
L- 無限大ノルム
L- 無限大ノルムは、敵対的摂動を理解し、定量化するために使用されます (図 8)。ピクセル値を変更できる範囲を定義します。その結果、テストすべき組み合わせが無数に増えて、すべてのシナリオを評価するのが困難になります。
堅牢性の形式的検証
形式的検証手法は、ニューラルネットワークがさまざまな敵対的サンプルに対して堅牢であるかどうかを体系的かつ数学的に評価・保証する方法を提供します。Deep Learning Toolbox™ Verification Library には、抽象解釈などの形式的検証手法が含まれています。評価データから画像を 1 枚選び、その画像に対して多数の摂動画像を定義する摂動範囲を選択できます (図 9)。
各画像には、次の 3 つの結果が想定されます。
- 検証済み — 出力ラベルが一貫している場合
- 違反 — 出力ラベルが変化した場合
- 未検証 ― さらなる検証やモデルの改善が必要な場合
分布外検出
信頼性の高い AI システムは、既知のコンテキストにおいて正確な予測を生成する必要があります。さらに、モデルにとって未知の例を識別し、それを拒否するか、安全に処理するために人間の専門家に委ねられるようにする必要もあります。Deep Learning Toolbox Verification Library を使用すると、分布外 (OOD) データ ディスクリミネーターを作成し、各観測に対して分布信頼度スコアを計算することで、ネットワーク予測に信頼度を割り当てることができます (図 10)。また、ディスクリミネーターは分布内データと OOD データを区別するしきい値も提供します。
このトピックについてさらに詳しく
- AI の検証と妥当性確認: 学習プロセスの検証 - ブログ
- ディープ ニューラル ネットワークの分布外検出 - 例
- Deep Learning Toolbox Verification Library - サポートパッケージ
学習プロセスが検証されると、焦点は AI モデルを実際のアプリケーションに適応させることに移ります。W 字型開発プロセスの最終段階では、展開用にモデルを準備し、運用条件を満たしていることを確認します。
モデル実装とコード生成
W 字型開発ワークフローでは、学習プロセスの検証からモデル実装へと移行するタイミングで、AI モデルは調整段階から実際の応用段階へと移行します。MATLAB と Simulink® を使用したコード生成は、学習済みモデルを展開できるコード (例: C/C++ または CUDA®) へ変換する作業を自動化します (図 11 を参照)。これにより、手作業によるコーディングを削減し、エラーを最小限に抑えることができます。
MATLAB の analyzeNetworkForCodegen 関数を使用して、ディープラーニング モデルのコード生成準備が整っているかどうかを確認できます。これにより、ターゲットライブラリとの互換性が確保でき、セーフティクリティカルな用途でも、サードパーティに依存せずコードを生成できます。自動コード生成は、認証を簡略化し、移植性を向上し、多様なプラットフォーム間の信頼性の高い展開を可能にします。
analyzeNetworkForCodegen(net) Supported _________ none "Yes" arm-compute "Yes" mkldnn "Yes" cudnn "Yes" tensorrt "Yes"
展開においてメモリ最適化、固定小数点演算、または計算効率が求められる場合、Deep Learning Toolbox Model Quantization Library は非常に有効です。量子化や枝刈りといった手法により、モデルのサイズと計算負荷を大幅に削減できます。たとえば、ディープネットワーク量子化器アプリを使用して浮動小数点から int8 に変換した場合、精度をわずか 0.7% 低下させるだけでモデルを 4 倍圧縮できます (図 12)。
MATLAB Coder™ と GPU Coder™ を使用すると、速度と低レイテンシが重要なリアルタイムシステムに AI モデルを展開するための C++ コードと CUDA コードを生成できます。これには、ターゲット言語の設定や、GPU による高速化のための cuDNN の使用といったディープラーニング設定の構成が含まれます。
cfg = coder.gpuConfig("mex"); cfg.TargetLang = "C++"; cfg.GpuConfig.ComputeCapability = "6.1"; cfg.DeepLearningConfig = coder.DeepLearningConfig("cudnn"); cfg.DeepLearningConfig.AutoTuning = true; cfg.DeepLearningConfig.CalibrationResultFile = "quantObj.mat"; cfg.DeepLearningConfig.DataType = "int8"; input = ones(inputSize,"int8"); codegen -config cfg -args input predictCodegen -report
推論モデルの検証と統合
推論モデルの検証と統合の段階では、肺炎検出などに利用される AI モデルが、新規の未知のデータに対して確実に機能し、さらに大規模な医療システムに適切に統合されるようにします。
モデルを C++ や CUDA に変換した後、この段階ではその精度を検証し、ランタイム モニタリング、データ取得、可視化のためのコンポーネントとともに包括的なシステムに組み込みます。Simulink でシステムをシミュレーションすることで、モデルがリアルタイムで効果的に動作し、より広範なシステム内で性能を維持していることを確認できます (図 13)。
ランタイムモニターは、既知の入力と未知の入力の区別に役立ちます (図 14)。データが学習分布と一致する場合、信頼度の高い予測を緑色で示し、OOD ケースの潜在的な異常に赤色のフラグを立てます。この機能により、AI システムの予測精度が高まるだけでなく、未知のデータを識別して適切に処理することで、安全性と信頼性が向上します。
この段階では、包括的なテスト戦略の実施が極めて重要です。MATLAB Test™ や Simulink Test™ を使用すると、AI モデルの精度、性能、システム全体への統合を徹底的に検証する自動テストを作成できます。
独立したデータと学習の検証
独立したデータと学習の検証段階では、学習、検証、評価の各データセットが適切に管理されて、十分な量と質が確保されており、実際の利用場面で想定される入力データの特徴やバリエーションが反映されていることを確認します。ターゲット プラットフォームで推論モデルを検証した後には、独立したレビューが必要です。この段階では、カバレッジ解析を含む学習の検証が適切に完了していることも確認します。
要件の検証
要件の検証段階では、すべての要件が完全に実装・テストされていることを確認することで、W 字型開発プロセスを完了します。Requirements Toolbox™ を使用することで、機能とテストが対応する要件に紐付けられ、開発ループを終了します。要件エディターからこれらのテストを実行することで、すべての要件が正常に満たされていることを確認できます (図 15)。
このトピックについてさらに詳しく
- AI の検証と妥当性確認: モデルの実装から要件の妥当性確認まで - ブログ
- ディープ ニューラル ネットワークのメモリフットプリントの削減 - ドキュメンテーション
- Simulink で back-to-back テストを実行する方法 (2:14) - ビデオ
要件の検証後、W 字型開発プロセスは完了します。この医療機器の例では、プロセスの徹底的かつ綿密な手順により、肺炎検出用 AI モデルの精度と堅牢性が確保され、展開の準備が整いました。要件を特定の機能とテストに紐付けることで、明確なトレーサビリティを確立し、各要件を体系的に検証することで、モデルが医療用途向けの厳格な基準を満たしていることを確認できます。そして、信頼性の高いツールを展開し、患者ケアの質を高めることができるのです。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)