AI が信頼を獲得するにはモデルの堅牢性と安定性が重要
AI の謙虚さは、実用化されたモデルの信頼性を不確かな予測から守るためのものですが、このような弱点を事前に特定し、それを最小限に抑えるようにモデリング手法を調整することが、堅牢で安定したモデルのパフォーマンスを支える主要コンセプトです。
AI システムの堅牢性と安定性とは
この質問に対する答えは、もう 1 つの質問「このモデルはデータの変化にどう対応するか」と密接に関係しています。モデルをテストすれば、これらの質問について詳しく知ることができます。
モデルの安定性とは、一般に、動作に関連するデータ中の変化がわずかな場合に当てはまる概念です。データのわずかな変化に対しては、モデルが一貫して安定した動作を示すことが理想的です。動作が変化しなければならないような、明確なしきい値が存在しない限り、通常は、入力変数に小さな変動があっても、予測結果はわずかしか変化しないはずです。
モデルの堅牢性については、これまでにないほどの大きな変化や異常値を考慮することがより適切です。よくあるのは以下の 3 つのシナリオです。
- プロセスが変化して、新しい値が発生するようになった
- 欠損値が発生するようになった
- 新しい値が、極端に非現実的で間違った入力値と関連している
外れ値などに対する保護の強化は、AI の謙虚さの一環として実施可能にすべきですが、モデルの予測がこうしたデータの乱れによってどう変わるかを把握することは重要です。予測が破綻し、非常に大きな値になるでしょうか。漸近的に横ばい状態になったり、ゼロに近づいたりするでしょうか。
データをモデルに送信してスコアリングする前に、このようなデータ処理時の問題を予想できる場合もあります。たとえば、これまで経験したことのない値がモデルに入力された場合を考えてください。保険料率の設定モデルで、自動車のメーカーとモデルを入力しているとします。トレーニングデータはクリーニング済みで、“Lexus” という文字列はすべて先頭が正しく大文字になっています。ところが、電話中の営業担当者が、このモデルを使って見積もりを出す際に “lexus” と入力してしまいました。理想的には、モデルはこれを未体験の値として処理するのではなく、大文字小文字を区別せず、期待通りの動作をするように前処理を行います。
再現性は、データの乱れの特殊なケースであり、まったく乱れがない状態です。同じ入力値から一貫して同じ予測値を返すモデルでなければ、監査可能で信頼できるモデルとは言えません。
モデルの動作の安定性、堅牢性、再現性を確保する方法
このようなトピックは、細かく見れば機械学習に特有のものかもしれませんが、ソフトウェア開発のベストプラクティスを参考にすれば、最終製品の堅牢性と安定性の確保に役立つ手順がわかります。
単体テストは、アプリケーションを、固有の機能を実現する完全に個別の最小モジュールにまで分解するプロセスから始まります。その後、それらのモジュールについて、想定外の入力値に直面したときの動作を保護する自動テストを作成します。このような入力値の例として、タイプミスなどによるデータ型の誤りや、0 ~ 10 のスコアに対する負の入力値などの禁止値があります。
その後、結合テストで、それら個々のソフトウェアモジュールが結合された状態でも意図した通りに動作、および相互にやり取りできるかどうかを調べます。これらの概念は、機械学習モデルの実用化に直接適用でき、モデルは広範なエコシステムの他のアプリケーションと同じ基準を満たすことができます。
堅牢性と安定性はパズルの 1 ピースにすぎません
堅牢性と安定性は、生成される予測モデルの信頼性に直接寄与しますが、モデルパフォーマンスに必要な要素の 1 つにすぎません。その他の要素には次のようなものがあります。