モデルの解釈可能性
この記事では、Azure Machine Learning におけるモデルの解釈可能性に使用できるメソッドについて説明します。
重要
モデルの解釈可能性を含む、責任ある AI ダッシュボードのリリースに伴い、古い SDK v1 プレビュー モデルの解釈可能性ダッシュボードは積極的にはメンテナンスされなくなるため、新しいエクスペリエンスに移行することをお勧めします。
モデルのデバッグにモデルの解釈可能性が重要である理由
人々の生活に影響を与えるようなやり方で機械学習モデルが使われている場合、何がモデルの動作に影響を与えるかを理解することが非常に重要です。 解釈可能性は、次のようなシナリオで質問に答えるのに役立ちます。
- モデルのデバッグ: モデルで誤りが発生したのはなぜですか? どのようにモデルを改善できますか?
- 人間と AI のコラボレーション: モデルの決定を理解し、信頼するにはどうすればよいですか?
- 規制コンプライアンス: モデルは法的要件を満たしていますか?
責任ある AI ダッシュボードの解釈可能性コンポーネントは、機械学習モデルの予測に関して人間が理解できる説明を生成することで、モデル ライフサイクル ワークフローの「診断」ステージに貢献します。 これによって、モデルの動作に複数の認識が与えられます。
- グローバルな説明: たとえば、ローン配賦モデルの全体的な動作に影響する特徴量は何ですか?
- ローカルな説明: たとえば、顧客のローン申請が承認または却下されたのはなぜですか?
また、データ ポイントのサブグループとして、選択したコーホートのモデルの説明を観察することもできます。 このアプローチは、たとえば、特定の人口統計グループの個人に対するモデル予測の公平性を評価するときに役に立ちます。 このコンポーネントの [ローカル説明] タブには、全般的なデータの把握と、各コーホートの正しい予測と正しくない予測の違いの調査に役立つ、完全なデータ可視化も表示されます。
このコンポーネントの機能は、モデルの説明を生成する InterpretML パッケージに基づいています。
次のことが必要なときは、解釈可能性を使用します。
- 予測に最も重要な特徴を理解することで、AI システムの予測がどの程度信頼できるかを判断します。
- 最初にモデルを理解し、モデルで正常な特徴量が使われているか、それとも単に誤った相関関係が使われているかを特定することで、モデルのデバッグにアプローチします。
- モデルで、機密性の高い特徴量やそれらとの関連性が高い特徴量に基づいて予測が行われているどうかを理解することで、不公平性の可能性のある原因を明らかにします。
- 結果を示すローカルな説明を生成することで、モデルの決定をユーザーが信頼できるようにします。
- AI システムの規制監査を行ってモデルを検証し、モデルの決定が人間に与える影響を監視します。
モデルを解釈する方法
機械学習では、特徴量は、ターゲット データ ポイントの予測に使用するデータ フィールドです。 たとえば、信用リスクを予測するために、年齢、アカウント サイズ、アカウントの有効期間のデータ フィールドが使用されるとします。 ここでは、年齢、アカウント サイズ、アカウントの有効期間が特徴量です。 特徴量の重要度から、各データ フィールドがモデルの予測にどのような影響を与えたかがわかります。 たとえば、年齢は予測で頻繁に使用される可能性がありますが、アカウント サイズとアカウントの有効期間は予測値に大きな影響を与えない場合があります。 このプロセスを通じて、データ サイエンティストは、利害関係者がモデルの最も重要な特徴量を視覚的に把握できるように、結果の予測について説明できます。
責任ある AI ダッシュボードのクラスとメソッドを使用し、SDK v2 と CLI v2 を使用すると、次のことができます。
- モデル全体 (グローバルな説明) や個々のデータ ポイント (ローカルな説明) の特徴量の重要度の値を生成し、モデルの予測を説明する。
- 実際の大規模なデータセットに関するモデルの解釈可能性を実現する。
- 対話型の視覚化ダッシュボードを使用して、トレーニング時のデータと説明のパターンを検出する。
SDK v1 のクラスとメソッドを使うと、次のことができます。
- モデル全体や個々のデータポイントの特徴量の重要度の値を生成し、モデルの予測を説明する。
- トレーニングおよび推論中の実際の大規模データセットに関するモデルの解釈可能性を実現する。
- 対話型の視覚化ダッシュボードを使用して、トレーニング時のデータと説明のパターンを検出する。
Note
モデルの解釈可能性クラスは、SDK v1 パッケージを介して利用可能になります。 詳細については、Azure Machine Learning 用の SDK パッケージと azureml.interpret のインストールに関するページを参照してください。
サポートされているモデルの解釈可能性の手法
責任ある AI ダッシュボードと azureml-interpret
では、解釈可能なモデルをトレーニングし、不透明な箱の AI システムを説明するために役立つオープン ソースの Python パッケージである Interpret-Community で開発された解釈可能性の手法を使用しています。 不透明な箱のモデルは、内部の動作に関する情報がないモデルです。
Interpret-Community は、以下のサポートされている Explainer のホストとして機能し、現在は次のセクションで説明する解釈可能性の手法をサポートしています。
Python SDK v2 と CLI v2 の責任ある AI ダッシュボードでサポートされているもの
解釈可能性の手法 | 説明 | 種類 |
---|---|---|
Mimic Explainer (グローバル サロゲート) + SHAP ツリー | Mimic Explainer は、グローバル サロゲート モデルをトレーニングして不透明な箱モデルを模倣するアイデアに基づいています。 グローバル サロゲート モデルは、任意の不透明な箱モデルの予測をできる限り正確に近似するためにトレーニングされた本質的に解釈可能なモデルです。 データ サイエンティストは、サロゲート モデルを解釈して不透明な箱モデルについての結論を導き出すことができます。 責任ある AI ダッシュボードでは、LightGBM (LGBMExplainableModel) と SHAP (SHapley Additive exPlanations) の Tree Explainer との組み合わせが使われます。これは、ツリーとツリーのアンサンブルに固有の Explainer です。 LightGBM と SHAP ツリーの組み合わせにより、機械学習モデルのモデルに依存しないグローバルおよびローカルな説明が提供されます。 |
モデル非依存 |
Python SDK v1 でサポートされているもの
解釈可能性の手法 | 説明 | Type |
---|---|---|
SHAP Tree Explainer | SHAP の Tree Explainer は、ツリーとツリーのアンサンブルに固有の多項式時間高速 SHAP 値推定アルゴリズムに注目します。 | モデル固有 |
SHAP Deep Explainer | SHAP による説明に基づくと、Deep Explainer は "SHAP NIPS の論文で説明されている DeepLIFT との接続上に構築されているディープ ラーニング モデルでの SHAP 値に対する高速近似アルゴリズムです。 TensorFlow モデルと、TensorFlow バックエンドを使用する Keras モデルがサポートされています (PyTorch の暫定サポートもあります)。" | モデル固有 |
SHAP Linear Explainer | SHAP の Linear Explainer では、線形モデルの SHAP 値を計算し、必要に応じて機能間の相関関係を考慮します。 | モデル固有 |
SHAP Kernel Explainer | SHAP の Kernel Explainer では、特別に重み付けされたローカル線形回帰を使用して、任意のモデルの SHAP 値を推定します。 | モデル非依存 |
Mimic Explainer (グローバル サロゲート) | Mimic Explainer は、グローバル サロゲート モデルをトレーニングして不透明な箱モデルを模倣するアイデアに基づいています。 グローバル サロゲート モデルは、任意の不透明な箱モデルの予測をできる限り正確に近似するためにトレーニングされた本質的に解釈可能なモデルです。 データ サイエンティストは、サロゲート モデルを解釈して不透明な箱モデルについての結論を導き出すことができます。 サロゲート モデルとして、次のいずれかの解釈可能なモデルを使用できます。LightGBM (LGBMExplainableModel)、線形回帰 (LinearExplainableModel)、確率勾配降下説明可能モデル (SGDExplainableModel)、またはデシジョン ツリー (DecisionTreeExplainableModel)。 | モデル非依存 |
Permutation Feature Importance Explainer | Permutation Feature Importance (PFI) は、Breiman のランダム フォレスト論文 (セクション 10 を参照してください) から着想を得た、分類と回帰モデルの説明に使用される手法です。 概要を説明すると、データセット全体に対して一度に 1 つの特徴のデータをランダムにシャッフルし、対象のパフォーマンス メトリックがどのくらい変化するかを計算するしくみです。 変化が大きいほど、その特徴の重要度は高くなります。 PFI では、基になる任意のモデルの全体的な動作を説明できますが、個々の予測については説明しません。 | モデル非依存 |
前述の解釈可能性の手法に加えて、Tabular Explainer と呼ばれる別の SHAP ベースの Explainer がサポートされています。 モデルによっては、Tabular Explainer ではサポートされている SHAP の Explainer のいずれかが使用されます。
- すべてのツリー ベースのモデル向けの Tree Explainer
- ディープ ニューラル ネットワーク (DNN) モデルの Deep Explainer
- 線形モデル向けの Linear Explainer
- その他のすべてのモデル向けの Kernel Explainer
Tabular Explainer ではまた、Direct SHAP Explainer より大きな機能とパフォーマンスの強化も行われています。
- 初期化データセットの概要作成: 説明の速度が最も重要な場合、初期化データセットの概要を作成し、代表的なサンプルの小さなセットを生成します。 このアプローチにより、全体的な特徴量と個々の特徴量の重要度の値の生成が高速化されます。
- 評価データ セットのサンプリング: ユーザーが評価サンプルの大きなセットを渡しても、実際にはそれらのすべてを評価する必要がない場合は、サンプリング パラメーターを
true
に設定し、全体的なモデルの説明の計算を高速化できます。
次の図は、サポートされている Explainer の現在の構造を示しています。
サポートされている機械学習モデル
SDK の azureml.interpret
パッケージでは、次のデータセット形式でトレーニングされたモデルがサポートされています。
numpy.array
pandas.DataFrame
iml.datatypes.DenseData
scipy.sparse.csr_matrix
説明関数では、モデルとパイプラインの両方が入力として受け付けられます。 モデルを提供する場合、Scikit 規則に準拠する予測関数 predict
または predict_proba
が実装されている必要があります。 モデルでこれがサポートされていない場合は、Scikit で predict
または predict_proba
と同じ結果を生成する関数でそれをラップし、選択した Explainer でそのラッパー関数を使用できます。
パイプラインを提供する場合、説明関数では、パイプライン スクリプトの実行から予測が返るものと想定します。 このラップ技法を使用すると、azureml.interpret
は、PyTorch、TensorFlow、Keras ディープ ラーニング フレームワークや従来の機械学習モデルによってトレーニングされたモデルをサポートできます。
ローカルとリモートのコンピューティング先
azureml.interpret
パッケージは、ローカルおよびリモート両方のコンピューティング先で動作するように設計されています。 パッケージをローカルで実行した場合、SDK 関数はどの Azure サービスにもアクセスしません。
Azure Machine Learning コンピューティング上で説明をリモートで実行し、説明情報を Azure Machine Learning 実行履歴サービスに記録できます。 この情報が記録されると、説明からのレポートと視覚化が、分析のために Azure Machine Learning スタジオですぐに使用できます。
次の手順
- CLI v2 と SDK v2 または Azure Machine Learning スタジオ UI を使用して責任ある AI ダッシュボードを生成する方法について学習します。
- 責任ある AI ダッシュボードで「サポートされている解釈可能性の視覚化」を確認します。
- 責任ある AI ダッシュボードで観察された分析情報に基づいて責任ある AI スコアカードを生成する方法について説明します。
- 自動機械学習モデルの解釈可能性を有効にする方法について確認します。