Azure Machine Learning service におけるモデルの解釈可能性Model interpretability in Azure Machine Learning service

適用先: 有効Basic エディション 有効Enterprise エディション                    (Enterprise エディションにアップグレード)APPLIES TO: yesBasic edition yesEnterprise edition                    (Upgrade to Enterprise edition)

モデルの解釈可能性の概要Overview of model interpretability

データ サイエンティストやビジネスの意思決定者にとって、解釈可能性は会社のポリシー、業界標準、政府の規制に準拠する上で、次のように重要です。Interpretability is critical for data scientists and business decision makers alike to ensure compliance with company policies, industry standards, and government regulations:

  • データ サイエンティストはモデルの結果が生み出す価値と正確性を理解するため、経営陣や利害関係者に説明する必要があるData scientists need the ability to explain their models to executives and stakeholders, so they can understand the value and accuracy of their findings
  • ビジネスの意思決定者は、エンド ユーザーからの信頼を獲得し、維持するための透過性を提供できるという安心感を求めているBusiness decision makers need peace-of-mind of the ability to provide transparency for end users to gain and maintain their trust

モデル開発における次の 2 つの主なフェーズでは、機械学習モデルを説明できるようにすることが重要です。Enabling the capability of explaining a machine learning model is important during two main phases of model development:

  • 機械学習モデルにおける開発サイクルのトレーニング フェーズ。During the training phase of the machine learning model development cycle. モデルデ ザイナーと評価者はモデルの解釈可能性出力を使用して仮説を検証し、利害関係者との信頼を構築できます。Model designers and evaluators can use interpretability output of a model to verify hypotheses and build trust with stakeholders. また、モデルへの洞察をデバッグに使用したり、モデルの動作が目標に一致しているか検証したり、偏りや重要度の低い機能がないか検査したりできます。They also use the insights into the model for debugging, validating model behavior matches their objectives, and to check for bias or insignificant features.
  • 推論フェーズでは、透過性があるモデルをデプロイすることで、経営者は、モデルがどのように動作しているか、およびその意思決定が実際のユーザーにどのように作用し、どのように影響を与えているかを把握することができます。During the inferencing phase, as having transparency around deployed models empowers executives to understand “when deployed” how the model is working and how its decisions are treating and impacting people in real life.

Azure Machine Learning での解釈可能性Interpretability with Azure Machine Learning

この記事では、モデルの解釈可能性の概念を SDK で実装する方法について説明します。In this article, you learn how model interpretability concepts are implemented in the SDK.

SDK のクラスとメソッドを使用して、次のことを得ることができます。Using the classes and methods in the SDK, you can get:

  • 未加工の特徴とエンジニアリングされた両方の特徴の重要度の値Feature importance values for both raw and engineered features
  • トレーニングおよび推論中の実際の大規模データセットに関する解釈可能性。Interpretability on real-world datasets at scale, during training and inference.
  • トレーニング時にデータと説明のパターンの検出を支援するための対話型の視覚化Interactive visualizations to aid you in the discovery of patterns in data and explanations at training time

機械学習では、特徴は、ターゲット データ ポイントの予測に使用されるデータ フィールドです。In machine learning, features are the data fields used to predict a target data point. たとえば、信用リスクを予測するために、年齢、アカウント サイズ、およびアカウントの有効期間のデータ フィールドが使用されるとします。For example, to predict credit risk, data fields for age, account size, and account age might be used. この場合、年齢、アカウント サイズ、およびアカウントの有効期間が特徴です。In this case, age, account size, and account age are features. 特徴の重要度から、各データ フィールドがモデルの予測にどのような影響を与えたかがわかります。Feature importance tells you how each data field affected the model's predictions. たとえば、年齢は予測で頻繁に使用されるが、アカウントのサイズと有効期間は予測精度に大きな影響を与えない場合があります。For example, age may be heavily used in the prediction while account size and age don't affect the prediction accuracy significantly. このプロセスにより、データ サイエンティストは結果の予測を説明でき、利害関係者はモデルで最も重要なデータ ポイントを認識できます。This process allows data scientists to explain resulting predictions, so that stakeholders have visibility into what data points are most important in the model.

これらのツールを使用すると、使いやすくてスケーラブルな最先端のテクノロジを利用して、すべてのデータについてグローバルに、または特定のデータ ポイントについてローカルに、機械学習モデルを説明できます。Using these tools, you can explain machine learning models globally on all data, or locally on a specific data point using the state-of-art technologies in an easy-to-use and scalable fashion.

解釈可能性クラスは、複数の SDK パッケージを介して利用可能になります。The interpretability classes are made available through multiple SDK packages. Azure Machine Learning 用の SDK パッケージをインストールする方法を確認してください。Learn how to install SDK packages for Azure Machine Learning.

  • azureml.interpret。Microsoft でサポートされている機能を含むメイン パッケージ。azureml.interpret, the main package, containing functionalities supported by Microsoft.

  • azureml.contrib.interpret。試すことができるプレビュー機能と実験的機能。azureml.contrib.interpret, preview, and experimental functionalities that you can try.

  • azureml.train.automl.automlexplainer。自動化された機械学習モデルを解釈するためのパッケージ。azureml.train.automl.automlexplainer package for interpreting automated machine learning models.

重要

contrib 名前空間のコンテンツは完全にはサポートされていません。Content in the contrib namespace is not fully supported. 実験的な機能が成熟すると、メインの名前空間に徐々に移動されます。As the experimental functionalities become mature, they will gradually be moved to the main namespace.

モデルを解釈する方法How to interpret your model

解釈可能性クラスとメソッドを適用して、モデルのグローバルな動作または特定の予測を理解することができます。You can apply the interpretability classes and methods to understand the model’s global behavior or specific predictions. 前者はグローバル説明と呼ばれ、後者はローカル説明と呼ばれます。The former is called global explanation and the latter is called local explanation.

メソッドは、メソッドがモデルに依存しないか、またはモデルに固有かに基づいても分類できます。The methods can be also categorized based on whether the method is model agnostic or model specific. 一部のメソッドは、特定の種類のモデルを対象にします。Some methods target certain type of models. たとえば、SHAP の tree explainer は、ツリー ベースのモデルにのみ適用されます。For example, SHAP’s tree explainer only applies to tree-based models. mimic explainer や SHAP の kernel explainer などの一部のメソッドでは、モデルはブラック ボックスとして処理されます。Some methods treat the model as a black box, such as mimic explainer or SHAP’s kernel explainer. interpret パッケージでは、データ セット、モデルの種類、およびユース ケースに基づいて、これらのさまざまなアプローチが使用されます。The interpret package leverages these different approaches based on data sets, model types, and use cases.

出力は、特定のモデルが予測を行うときの方法に関する情報セットであり、例えば次のものがあります。The output is a set of information on how a given model makes its prediction, such as:

  • グローバル/ローカルな特徴の相対的重要度Global/local relative feature importance
  • グローバル/ローカルな特徴と予測の関係Global/local feature and prediction relationship

ExplainerExplainers

このパッケージでは、解釈可能なモデルをトレーニングし、ブラックボックス化した AI システムを説明するオープンソースの python パッケージである Interpret-Community で開発された解釈能力の手法を使用します。This package uses the interpretability techniques developed in Interpret-Community, an open source python package for training interpretable models and helping to explain blackbox AI systems. Interpret-Community は、この SDK でサポートされている Explainer のホストとして機能し、現在、次の解釈可能性の手法をサポートしています。Interpret-Community serves as the host for this SDK's supported explainers, and currently supports the following interpretability techniques:

  • SHAP Tree Explainer:SHAP の Tree Explainer は、ツリーおよびツリーのアンサンブルに固有の多項式時間高速 SHAP 値推定アルゴリズムに注目します。SHAP Tree Explainer: SHAP’s tree explainer, which focuses on polynomial time fast SHAP value estimation algorithm specific to trees and ensembles of trees.

  • SHAP Deep Explainer:SHAP による説明に基づくと、Deep Explainer は "SHAP NIPS の論文で説明されている DeepLIFT との接続上に構築されているディープ ラーニング モデルでの SHAP 値に対する高速近似アルゴリズムです。SHAP Deep Explainer: Based on the explanation from SHAP, Deep Explainer "is a high-speed approximation algorithm for SHAP values in deep learning models that builds on a connection with DeepLIFT described in the SHAP NIPS paper. TensorFlow モデルおよび TensorFlow バックエンドを使用する Keras モデルがサポートされています (PyTorch の暫定サポートもあります)"。TensorFlow models and Keras models using the TensorFlow backend are supported (there is also preliminary support for PyTorch)".

  • SHAP Linear Explainer:SHAP の Linear Explainer は、線形モデルの SHAP 値を計算し、必要に応じて機能間の相関関係を考慮します。SHAP Linear Explainer: SHAP's Linear explainer computes SHAP values for a linear model, optionally accounting for inter-feature correlations.

  • SHAP Kernel Explainer:SHAP の Kernel Explainer は、特別に重み付けされたローカル線形回帰を使用して任意のモデルの SHAP 値を推定します。SHAP Kernel Explainer: SHAP's Kernel explainer uses a specially weighted local linear regression to estimate SHAP values for any model.

  • Mimic Explainer: Mimic Explainer は、グローバル サロゲート モデルをトレーニングしてブラックボックス モデルを模倣するアイデアに基づいています。Mimic Explainer: Mimic explainer is based on the idea of training global surrogate models to mimic blackbox models. グローバル サロゲート モデルは、ブラック ボックス モデルの予測をできる限り正確に近似するためにトレーニングされた本質的に解釈可能なモデルです。A global surrogate model is an intrinsically interpretable model that is trained to approximate the predictions of a black box model as accurately as possible. データ サイエンティストは、サロゲート モデルを解釈してブラック ボックス モデルについての結論を導き出すことができます。Data scientist can interpret the surrogate model to draw conclusions about the black box model. サロゲート モデルとして、次のいずれかの解釈可能なモデルを使用できます。LightGBM (LGBMExplainableModel)、線形回帰 (LinearExplainableModel)、確率勾配降下説明可能モデル (SGDExplainableModel)、およびデシジョン ツリー (DecisionTreeExplainableModel)。You can use one of the following interpretable models as your surrogate model: LightGBM (LGBMExplainableModel), Linear Regression (LinearExplainableModel), Stochastic Gradient Descent explainable model (SGDExplainableModel), and Decision Tree (DecisionTreeExplainableModel).

  • Permutation Feature Importance Explainer:Permutation Feature Importance は、Breiman のランダム フォレスト論文 (セクション 10 を参照してください) から着想を得た、分類および回帰モデルの説明に使用される手法です。Permutation Feature Importance Explainer: Permutation Feature Importance is a technique used to explain classification and regression models that is inspired by Breiman's Random Forests paper (see section 10). 概要を説明すると、データセット全体に対して一度に 1 つの特徴のデータをランダムにシャッフルし、対象のパフォーマンス メトリックがどのくらい変化するかを計算するしくみです。At a high level, the way it works is by randomly shuffling data one feature at a time for the entire dataset and calculating how much the performance metric of interest changes. 変化が大きいほど、その特徴の重要度は高くなります。The larger the change, the more important that feature is.

  • LIME Explainer (contrib):LIME に基づく LIME Explainer は、最新の LIME (Local interpretable model-agnostic explanations) アルゴリズムを使用して、ローカル サロゲート モデルを作成します。LIME Explainer (contrib): Based on LIME, LIME Explainer uses the state-of-the-art Local interpretable model-agnostic explanations (LIME) algorithm to create local surrogate models. グローバル サロゲート モデルとは異なり、LIME はローカル サロゲート モデルをトレーニングして個別の予測を説明することに着目します。Unlike the global surrogate models, LIME focuses on training local surrogate models to explain individual predictions.

  • HAN Text Explainer (contrib):HAN Text Explainer は、特定のブラック ボックス テキスト モデルに対するテキスト データからモデルの説明を取得するために Hierarchical Attention Network を使用します。HAN Text Explainer (contrib): HAN Text Explainer uses a Hierarchical Attention Network for getting model explanations from text data for a given black box text model. 特定のブラック ボックス モデルの予測された出力で HAN サロゲート モデルをトレーニングします。It trains the HAN surrogate model on a given black box model's predicted outputs. テキスト コーパス全体でグローバルにトレーニングした後、説明の正確性を向上させるため、特定のドキュメントに対する微調整ステップを追加します。After training globally across the text corpus, it adds a fine-tune step for a specific document in order to improve the accuracy of the explanations. HAN は、文と単語のアテンションに対する 2 つのアテンション レイヤーで双方向 RNN を使用します。HAN uses a bidirectional RNN with two attention layers, for sentence and word attention. DNN がブラック ボックス モデルでトレーニングされて、特定のドキュメントで微調整された後、ユーザーはアテンション レイヤーから単語の重要性を抽出できます。Once the DNN is trained on the black box model and fine-tuned on a specific document, user can extract the word importances from the attention layers. テキスト データについては HAN は LIME や SHAP より正確であることが分かっていますが、トレーニング時間に関してはいっそうコストがかかります。HAN is shown to be more accurate than LIME or SHAP for text data but more costly in terms of training time as well. トレーニング時間を短縮するため、ユーザーは GloVe 単語埋め込みを使用してネットワークを初期化するオプションを使用できるようになりました。Improvements have been made to give user the option to initialize the network with GloVe word embeddings to reduce the training time. HAN をリモート Azure GPU VM で実行することで、トレーニング時間を大幅に改善できます。The training time can be improved significantly by running HAN on a remote Azure GPU VM. HAN の実装については、「Hierarchical Attention Networks for Document Classification (ドキュメントの分類に対する階層型アテンション ネットワーク)」 (Yang 他、2016) で説明されています。The implementation of HAN is described in 'Hierarchical Attention Networks for Document Classification (Yang et al., 2016)'.

  • Tabular Explainer: TabularExplainer では次のロジックを使用して Direct SHAP Explainer が呼び出されています。Tabular Explainer: TabularExplainer employs the following logic to invoke the Direct SHAP Explainers:

    1. ツリー ベースのモデルの場合は、SHAP TreeExplainer を適用し、それ以外の場合は、If it is a tree-based model, apply SHAP TreeExplainer, else
    2. DNN モデルの場合は、SHAP DeepExplainer を適用し、それ以外の場合は、If it is a DNN model, apply SHAP DeepExplainer, else
    3. 線形モデルの場合は、SHAP LinearExplainer を適用し、それ以外の場合は、If it is a linear model, apply SHAP LinearExplainer, else
    4. ブラックボックス モデルとして扱い、SHAP KernelExplainer を適用しますTreat it as a black-box model and apply SHAP KernelExplainer

TabularExplainer ではまた、Direct SHAP Explainer より大きな機能とパフォーマンスの強化も行われています。TabularExplainer has also made significant feature and performance enhancements over the direct SHAP Explainers:

  • 初期化データセットの要約作成Summarization of the initialization dataset. 説明の速度が最も重要な場合、初期化データセットを要約し、代表的なサンプルの小さなセットを生成します。これにより、グローバルとローカル両方の説明が高速化されます。In cases where speed of explanation is most important, we summarize the initialization dataset and generate a small set of representative samples, which speeds up both global and local explanation.
  • 評価データ セットのサンプリングSampling the evaluation data set. ユーザーが評価サンプルの大きなセットを渡しても、実際にはそれらのすべてを評価する必要がない場合は、サンプリング パラメーターを true に設定し、グローバルな説明を高速化できます。If the user passes in a large set of evaluation samples but doesn't actually need all of them to be evaluated, the sampling parameter can be set to true to speed up the global explanation.

次の図は、Direct Explainer と Meta Explainer の現在の構造を示しています。The following diagram shows the current structure of direct and meta explainers.

機械学習解釈可能性のアーキテクチャMachine Learning Interpretability Architecture

サポートされているモデルModels supported

Python の numpy.arraypandas.DataFrameiml.datatypes.DenseData、または scipy.sparse.csr_matrix 形式のデータセットでトレーニングされたすべてのモデルが、SDK の解釈可能性 explain パッケージによってサポートされます。Any models that are trained on datasets in Python numpy.array, pandas.DataFrame, iml.datatypes.DenseData, or scipy.sparse.csr_matrix format are supported by the interpretability explain package of the SDK.

説明関数では、モデルとパイプラインの両方が入力として受け付けられます。The explanation functions accept both models and pipelines as input. モデルを提供する場合、モデルでは Scikit 規則に準拠する予測関数 predict または predict_proba が実装されている必要があります。If a model is provided, the model must implement the prediction function predict or predict_proba that conforms to the Scikit convention. パイプライン (パイプライン スクリプトの名前) が提供された場合、説明関数では、パイプライン スクリプトの実行から予測が返るものと想定します。If a pipeline (name of the pipeline script) is provided, the explanation function assumes that the running pipeline script returns a prediction. PyTorch、TensorFlow、Keras のディープ ラーニング フレームワークでトレーニングされたモデルをサポートしています。We support models trained via PyTorch, TensorFlow, and Keras deep learning frameworks.

ローカルとリモートのコンピューティング先Local and remote compute target

explain パッケージは、ローカルおよびリモート両方のコンピューティング先で動作するように設計されています。The explain package is designed to work with both local and remote compute targets. ローカルで実行した場合、SDK 関数はどの Azure サービスにも接続されません。If run locally, The SDK functions will not contact any Azure services. Azure Machine Learning コンピューティング上で説明をリモートで実行し、説明情報を Azure Machine Learning 実行履歴サービスに記録できます。You can run explanation remotely on Azure Machine Learning Compute and log the explanation info into Azure Machine Learning Run History Services. この情報が記録されると、ユーザーによる分析のため、説明からのレポートや視覚化を、Azure Machine Learning ワークスペース ポータルですぐに使用できます。Once this information is logged, reports and visualizations from the explanation are readily available on Azure Machine Learning Workspace portal for user analysis.

次の手順Next steps

ローカルと Azure Machine Learning リモート コンピューティング リソースの両方で解釈可能性を有効にし、モデルのトレーニングを行う方法を参照してください。See the how-to for enabling interpretability for models training both locally and on Azure Machine Learning remote compute resources. その他のシナリオについては、ノートブックのサンプルを参照してください。See the sample notebooks for additional scenarios.