

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker Clarify を使用した公平性、モデルの説明可能性、バイアス検出
<a name="clarify-configure-processing-jobs"></a>

Amazon SageMaker Clarify を使用すると、公平性とモデルの説明可能性を把握し、モデル内のバイアスを説明したり検出したりできます。バイアスのメトリクスと Feature Attribution を計算し、モデルの説明可能性に関するレポートを生成するように、SageMaker Clarify 処理ジョブを設定できます。SageMaker Clarify 処理ジョブは専用の SageMaker Clarify コンテナイメージを使用して実装されます。次のページでは、SageMaker Clarify の仕組みと分析の開始方法について説明します。

## 機械学習予測の公平性とモデルの説明可能性とは
<a name="clarify-fairness-and-explainability"></a>

機械学習 (ML) モデルは、金融サービス、ヘルスケア、教育、人事などの分野で意思決定を支援しています。政治家、規制当局、支持者の間では、ML とデータ駆動型システムがもたらす倫理的およびポリシー上の課題についての認識が高まっています。Amazon SageMaker Clarify を使用すると、ML モデルが特定の予測を行った理由と、このようなバイアスがトレーニング中または推論中にこの予測に影響を及ぼすかを把握できます。SageMaker Clarify は、バイアスが少なく、理解しやすい機械学習モデルの構築に役立つツールも提供しています。SageMaker Clarify を使用すると、リスクおよびコンプライアンスチームや外部規制当局に提供できるモデルガバナンスレポートを生成することもできます。SageMaker Clarify を使用すると、以下を行うことができます。
+ モデル予測のバイアスを検出し、説明するうえで役立ちます。
+ 事前トレーニングデータのバイアスのタイプを特定できます。
+ トレーニング中またはモデルの本番稼働中に発生する可能性のある、トレーニング済みデータにおけるバイアスのタイプを特定できます。

SageMaker Clarify は、Feature Attribution を使用してモデルが予測を行う方法を説明するうえで役立ちます。本番稼働中の推論モデルをモニタリングして、バイアスと Feature Attribution ドリフトの両方を検出することもできます。このような情報は以下の確認に役立ちます。
+ **規制** – 政治家やその他の規制当局は、ML モデルからの出力を使用する決定の差別的な影響についての懸念を抱く可能性があります。例えば、ML モデルがバイアスをエンコードして、自動化された意思決定に影響を及ぼす可能性があります。
+ **ビジネス** – 規制対象ドメインでは、ML モデルによる予測方法について信頼性の高い説明が必要になる場合があります。モデルの説明可能性は、信頼性、安全性、コンプライアンスに依存する業界では、とりわけ重要になります。これには、金融サービス、人事、医療、自動輸送などの業界があります。例えば、融資アプリケーションでは、ML モデルが特定の予測をどのように行ったかについて、ローン担当者、予測担当者、顧客に説明することが必要になる場合があります。
+ **データサイエンス** – モデルがノイズの多い特徴量や関連性のない特徴量に基づいて推論を行っていないかどうかを判断できる場合、データサイエンティストや ML エンジニアは ML モデルをデバッグして改善できます。モデルの制限や、モデルで発生する可能性のある障害モードを把握することもできます。

SageMaker Clarify を SageMaker AI パイプラインに統合する不正自動車クレームの完全な機械学習モデルを設計および構築する方法を示すブログ投稿については、「Architect」を参照し、 SageMaker 「エンドツーエンドの Amazon SageMaker AI デモ」を使用して完全な機械学習ライフサイクルを構築してください。 [AWS end-to-end Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/) このブログ記事では、トレーニング前とトレーニング後のバイアスを評価して軽減する方法と、特徴量がモデル予測に及ぼす影響について説明しています。このブログ記事には、ML ライフサイクルの各タスクのサンプルコードへのリンクが提供されています。

### ML ライフサイクルにおける公平性と説明可能性を評価するためのベストプラクティス
<a name="clarify-fairness-and-explainability-best-practices"></a>

**プロセスとしての公平性** - バイアスと公平性の概念は、利用方法により、異なります。バイアスの測定とバイアスメトリクスの選択は、社会的、法的、その他の非技術的考慮事項に左右される場合があります。公平性を考慮した ML アプローチの導入を成功に導くには、主要なステークホルダー間でコンセンサスを構築し、コラボレーションを実現する必要があります。これには、製品チーム、ポリシーチーム、法務チーム、エンジニアリングチーム、AI/ML チーム、エンドユーザー、コミュニティなどが関連します。

**ML ライフサイクルにおける公平性と説明可能性** – ML ライフサイクルの各段階で公平性と説明可能性を考慮します。このようなステージには、問題の形成、データセットの構築、アルゴリズムの選択、モデルトレーニングプロセス、テストプロセス、デプロイ、モニタリング、フィードバックなどがあります。この分析を行うには適切なツールを用意することが重要です。ML ライフサイクル中は、以下の問いを検討することをお勧めします。
+ このモデルは、公平でない結果が増大するフィードバックループを促進しているか
+ この問題について、アルゴリズムが倫理的ソリューションとなるか
+ トレーニングデータはさまざまなグループを代表しているか
+ ラベルや特徴量にバイアスはあるか
+ バイアスを軽減するためにデータを変更する必要があるか
+ 公平性の制約を目標関数に含める必要があるか
+ モデルは関連する公平性メトリクスを使用して評価されているか
+ ユーザー間に不平等な影響はあるか
+ モデルは、トレーニングまたは評価されていない母集団にデプロイされているか

![公平性とモデルの説明可能性を評価するプロセスのベストプラクティス。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/clarify-best-practices-image.png)


### SageMaker の説明ガイドとバイアスドキュメント
<a name="clarify-fairness-and-explainability-toc"></a>

バイアスは、モデルのトレーニング前とトレーニング後の両方のデータ内で発生する可能性があり、測定できます。SageMaker Clarify は、トレーニング後のモデル予測と本番環境にデプロイされたモデルの説明を提供できます。SageMaker Clarify は、本番環境のモデルをモニタリングしてベースラインの説明の Attribution ドリフトを検出し、必要に応じてベースインを計算することもできます。SageMaker Clarify を使用したバイアスの説明と検出に関するドキュメントの構成は、以下のとおりです。
+ バイアスと説明可能性のための処理ジョブの設定の詳細については、「[SageMaker Clarify 処理ジョブを設定する](clarify-processing-job-configure-parameters.md)」を参照してください。
+ モデルトレーニングに使用する前の前処理データでバイアスを検出する方法の詳細については、「[トレーニング前データのバイアス](clarify-detect-data-bias.md)」を参照してください。
+ トレーニング後のデータとモデルのバイアスを検出する方法の詳細については、「[トレーニング済みデータとモデルバイアス](clarify-detect-post-training-bias.md)」を参照してください。
+ トレーニング後のモデル予測を説明するモデルに依存しない Feature Attribution に関するアプローチの詳細については、「[モデルの説明可能性](clarify-model-explainability.md)」を参照してください。
+ モデルトレーニング中に確立されたベースラインからの特徴量貢献度のドリフトをモニタリングする方法については、「[本番稼働用モデルの Feature Attribution ドリフト](clarify-model-monitor-feature-attribution-drift.md)」を参照してください。
+ 実稼働中のモデルをベースラインドリフトについてモニタリングする方法の詳細については、「[本番稼働用モデルのバイアスドリフト](clarify-model-monitor-bias-drift.md)」を参照してください。
+ SageMaker AI エンドポイントからリアルタイムで説明を取得する方法については、「[SageMaker Clarify によるオンライン説明可能性](clarify-online-explainability.md)」を参照してください。

## SageMaker Clarify 処理ジョブの仕組み
<a name="clarify-processing-job-configure-how-it-works"></a>

SageMaker Clarify を使用すると、データセットやモデルを分析して説明可能性やバイアスを調べることができます。SageMaker Clarify 処理ジョブは、SageMaker Clarify 処理コンテナを使用して、入力データセットを含む Amazon S3 バケットとやり取りします。SageMaker Clarify を使用して、SageMaker AI 推論エンドポイントにデプロイされた顧客モデルを分析することもできます。

以下の図は、SageMaker Clarify 処理ジョブが入力データやオプションで顧客モデルとやり取りする方法を示しています。このやり取りは、実行される分析の種類によって異なります。SageMaker Clarify 処理コンテナは、S3 バケットから分析用の入力データセットと設定を取得します。特徴量分析を含む特定の解析タイプでは、SageMaker Clarify 処理コンテナはモデルコンテナにリクエストを送信する必要があります。次に、モデルコンテナが送信する応答からモデル予測を取得します。その後、SageMaker Clarify 処理コンテナは分析結果を計算して S3 バケットに保存します。

![SageMaker Clarify を使用すると顧客モデルを分析して説明可能性やバイアスを調べることができます。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/clarify/clarify-processing-job.png)


SageMaker Clarify 処理ジョブは、機械学習ワークフローのライフサイクルの複数の段階で実行できます。SageMaker Clarify は、以下の分析タイプの計算に役立ちます。
+ トレーニング前のバイアスメトリクス トレーニング前のバイアスメトリクスは、データ内のバイアスを把握して対処し、より公平なデータセットでモデルをトレーニングできるようにするうえで役立ちます。トレーニング前のバイアスメトリクスの詳細については、「[トレーニング前のバイアスメトリクス](clarify-measure-data-bias.md)」を参照してください。トレーニング前のバイアスメトリクスを分析するジョブを実行するには、データセットと JSON 分析設定ファイルを [分析設定ファイル](clarify-processing-job-configure-analysis.md) に提供する必要があります。
+ トレーニング後のバイアスメトリクス トレーニング後のバイアスメトリクスは、アルゴリズム、選択したハイパーパラメータ、またはフローの初期段階では明らかではなかったバイアスを把握するうえで役立ちます。トレーニング後のバイアスメトリクスの詳細については、「[トレーニング済みデータのメトリクスとモデルのバイアスのメトリクス](clarify-measure-post-training-bias.md)」を参照してください。SageMaker Clarify では、データやラベルに加えてモデル予測も使用してバイアスを見つけ出します。トレーニング後のバイアスメトリクスを分析するジョブを実行するには、データセットと JSON 分析設定ファイルを提供する必要があります。設定にはモデル名またはエンドポイント名を含める必要があります。
+ Shapley 値は、特徴量がモデルの予測にどのような影響を及ぼすかを理解するうえで役立ちます。Shapley 値の詳細については、「[Shapley 値を使用する特徴属性](clarify-shapley-values.md)」を参照してください。この特徴量にはトレーニング済みのモデルが必要です。
+ Partial Dependence Plot (PDP) は、単一の特徴量の値を変化させた場合に、予測されるターゲット変数がどの程度変化するかを理解するうえで役立ちます。PDP の詳細については、「[部分依存プロット (PDP) 分析](clarify-processing-job-analysis-results.md#clarify-processing-job-analysis-results-pdp)」を参照してください。PDP 機能を使用するには、トレーニング済みのモデルが必要です。

SageMaker Clarify では、トレーニング後のバイアスメトリクスと特徴量属性を計算するためのモデル予測が必要です。エンドポイントを指定するか、SageMaker Clarify がモデル名を使用してエフェメラルエンドポイント (別名シャドウエンドポイント) を作成します。**SageMaker Clarify コンテナは、計算終了後にシャドウエンドポイントを削除します。大まかに言うと、SageMaker Clarify コンテナは次の手順を実行します。

1. 入力とパラメータを検証します。

1. シャドウエンドポイントを作成します (モデル名が提供されている場合)。

1. 入力データセットをデータフレームに読み込みます。

1. 必要に応じて、エンドポイントからモデル予測を取得します。

1. バイアスメトリクスと特徴量属性を計算します。

1. シャドウエンドポイントを削除します。

1. 分析結果を生成します。

SageMaker Clarify 処理ジョブが完了すると、分析結果はジョブの処理出力パラメータで指定した出力場所に保存されます。この結果には、バイアスメトリクスとグローバル特徴量属性を含む JSON ファイル、ビジュアルレポート、ローカル特徴量属性の追加ファイルが含まれます。結果は出力場所からダウンロードして表示できます。

バイアスメトリクス、説明可能性、それらの解釈方法に関する追加情報については、「[Learn How Amazon SageMaker Clarify Helps Detect Bias](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias)」、「[Fairness Measures for Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf)」、「[Amazon AI Fairness and Explainability Whitepaper](https://pages.awscloud.com/rs/112-TZM-766/images/Amazon.AI.Fairness.and.Explainability.Whitepaper.pdf)」を参照してください。

## サンプルノートブック
<a name="clarify-fairness-and-explainability-sample-notebooks"></a>

次のセクションでは、SageMaker Clarify の使用を開始する際や、分散ジョブ内のタスクなどの特殊なタスクやコンピュータビジョンの使用に役立つノートブックが含まれています。

### 開始方法
<a name="clarify-fairness-and-explainability-sample-notebooks-getting-started"></a>

次のサンプルノートブックは、SageMaker Clarify を使用して説明可能性タスクとモデルバイアスタスクを開始する方法を説明しています。これらのタスクには、処理ジョブの作成、機械学習 (ML) モデルトレーニング、モデル予測のモニタリングなどがあります。
+ [Explainability and bias detection with Amazon SageMaker Clarify](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html) - SageMaker Clarify を使用して、バイアスの検出やモデル予測の説明を行う処理ジョブを作成します。
+ [バイアスドリフトと特徴属性ドリフトのモニタリング (Amazon SageMaker Clarify)](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_model_monitor/fairness_and_explainability/SageMaker-Model-Monitor-Fairness-and-Explainability.html) — Amazon SageMaker Model Monitor を使用して、バイアスドリフトと特徴属性ドリフトを経時的にモニタリングします。
+ [JSON 行形式のデータセットを SageMaker Clarify 処理ジョブに読み込む](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_jsonlines_format.html)方法
+ [Mitigate Bias, train another unbiased model, and put it in the model registry](https://github.com/aws/amazon-sagemaker-examples/blob/master/end_to_end/fraud_detection/3-mitigate-bias-train-model2-registry-e2e.ipynb) – [Synthetic Minority Over-sampling Technique (SMOTE)](https://arxiv.org/pdf/1106.1813.pdf) と SageMaker Clarify を使用してバイアスを軽減し、別のモデルをトレーニングしてから、新しいモデルをモデルレジストリに登録します。このサンプルノートブックでは、データ、コード、モデルメタデータなどの新しいモデルアーティファクトをモデルレジストリに配置する方法も説明されています。このノートブックは、「[AWSで機械学習ライフサイクル全体を設計して構築する: エンドツーエンドの Amazon SageMaker のデモ](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/)」ブログ記事で説明されているとおり、SageMaker Clarifyを SageMaker AI パイプラインに統合する方法を説明するシリーズの一部です。

### 特殊なケース
<a name="clarify-post-training-bias-model-explainability-sample-notebooks"></a>

以下のノートブックでは、独自のコンテナ内や自然言語処理タスクなどの特殊なケースで SageMaker Clarify を使用する方法について説明します。
+ [Fairness and Explainability with SageMaker Clarify (Bring Your Own Container)](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_byoc.ipynb) – SageMaker Clarify と統合してバイアスを測定し、説明可能性分析レポートを生成することができる独自のモデルとコンテナを構築します。このサンプルノートブックでは、主要な用語も紹介しており、SageMaker Studio Classic を介してレポートにアクセスする方法を説明しています。
+ [Fairness and Explainability with SageMaker Clarify Spark Distributed Processing](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_spark.ipynb) – 分散処理を使用して、データセットのトレーニング前バイアスとモデルトレーニング後バイアスを測定する SageMaker Clarify ジョブを実行します。このサンプルノートブックでは、モデル出力の入力機能の重要な説明を取得し、SageMaker Studio Classic を介して説明可能性分析レポートにアクセスする方法も説明しています。
+ [Explainability with SageMaker Clarify - Partial Dependence Plots (PDP)](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/explainability_with_pdp.html) – SageMaker Clarify を使用して PDP を生成し、モデルの説明可能性レポートにアクセスします。
+  [Explaining text sentiment analysis using SageMaker Clarify Natural language processing (NLP) explainability](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/text_explainability/text_explainability.html) – SageMaker Clarify をテキストセンチメント分析に使用します。
+ [画像分類](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.html)と[オブジェクト検出](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.html)にコンピュータビジョン (CV) の説明可能性を使用します。

上記のノートブックは Amazon SageMaker Studio で実行できることが検証済みです。Studio Classic でノートブックを開く方法の手順については、「[Amazon SageMaker Studio Classic ノートブックを作成する、または開く](notebooks-create-open.md)」を参照してください。カーネルの選択を求めるメッセージが表示されたら、**[Python 3 (Data Science)]** (Python 3 (データサイエンス)) を選択します。