ホームページ  >  記事  >  テクノロジー周辺機器  >  説明可能な AI のための 10 の Python ライブラリ

説明可能な AI のための 10 の Python ライブラリ

WBOY
WBOY転載
2023-04-13 16:46:061383ブラウズ

XAI の目標は、モデルの動作と決定について意味のある説明を提供することです。この記事では、説明可能な AI で現在利用可能な 10 個の Python ライブラリをまとめています

XAI とは何ですか?

XAI、Explainable AI とは、人工知能 (AI) の意思決定プロセスと予測に対して明確でわかりやすい説明を提供できるシステムまたは戦略を指します。 XAI の目標は、モデルの意思決定における信頼性の向上、説明責任、透明性の提供に役立つ、ユーザーの行動と意思決定について有意義な説明を提供することです。 XAI は解釈に限定されず、ユーザーが推論を抽出して解釈しやすくする方法で ML 実験も行います。

実際には、XAI は、特徴の重要度の測定、視覚化技術の使用、または決定木や線形回帰モデルなどの本質的に解釈可能なモデルの構築など、さまざまな方法を通じて実現できます。どの方法を選択するかは、解決する問題の種類と必要な解釈可能性のレベルによって異なります。

AI システムは、ヘルスケア、金融、刑事司法など、ますます多くのアプリケーションで使用されており、人々の生活に対する AI の潜在的な影響が大きく、特定の理由を理解した上で意思決定が行われる場合に使用されています。これらの分野での誤った決定の代償は大きい(リスクが高い)ため、AI によって行われた決定であっても、妥当性と説明可能性を慎重にチェックする必要があるため、XAI の重要性がますます高まっています。

説明可能な AI のための 10 の Python ライブラリ

説明可能性実践のステップ

データ準備: この段階にはデータの収集と処理が含まれます。データは高品質でバランスが取れており、解決されている現実世界の問題を表している必要があります。バランスの取れた代表的なクリーンなデータがあれば、AI の説明可能性を維持するための今後の取り組みが軽減されます。

モデル トレーニング: モデルは、従来の機械学習モデルまたは深層学習ニューラル ネットワークのいずれかの準備されたデータでトレーニングされます。モデルの選択は、解決する問題と必要な解釈可能性のレベルによって異なります。モデルが単純であればあるほど、結果の解釈は容易になりますが、単純なモデルのパフォーマンスはあまり高くありません。

モデルの評価: モデルの解釈可能性を維持するには、適切な評価方法とパフォーマンス指標を選択する必要があります。この段階でモデルの解釈可能性を評価して、予測に対して有意義な説明を提供できることを確認することも重要です。

説明の生成: これは、特徴の重要度の測定、視覚化技術などのさまざまな技術を使用して、または本質的に説明可能なモデルを構築することによって実行できます。

説明の検証: モデルによって生成された説明の正確性と完全性を検証します。これは、説明が信頼できるものであることを確認するのに役立ちます。

展開と監視: XAI の作業は、モデルの作成と検証だけでは終わりません。導入後も継続的な説明作業が必要です。実際の環境で監視する場合は、システムのパフォーマンスと解釈可能性を定期的に評価することが重要です。

1. SHAP (SHapley Additive exPlanations)

SHAP は、あらゆる機械学習モデルの出力を説明するために使用できるゲーム理論の手法です。ゲーム理論の古典的な Shapley 値とその関連拡張を使用して、最適なクレジット割り当てをローカルな解釈に関連付けます。

説明可能な AI のための 10 の Python ライブラリ

2. LIME (ローカルで解釈可能なモデルに依存しない説明)

LIME は、特定の予測をローカルで近似するモデル非依存の手法です。モデルの動作を次のように囲みます。と連携。 LIME は、機械学習モデルが何をしているのかを説明しようとします。 LIME は、テキスト分類子、表形式データの分類子、または画像の個々の予測の解釈をサポートします。

説明可能な AI のための 10 の Python ライブラリ

3. Eli5

ELI5 は、機械学習分類器のデバッグとその予測の解釈に役立つ Python パッケージです。次の機械学習フレームワークとパッケージのサポートを提供します。

  • scikit-learn: ELI5 は、scikit-learn の線形分類器と回帰子の重みと予測を解釈でき、決定木はテキストまたはテキストとして出力できます。特徴の重要性を示し、デシジョン ツリーとツリー アンサンブルからの予測を説明する SVG。 ELI5 は、scikit-learn のテキスト ハンドラーも理解し、それに応じてテキスト データを強調表示します。
  • Keras - Grad-CAM を介した画像分類子予測の視覚的解釈。
  • XGBoost - 機能の重要性を示し、XGBClassifier、XGBRegressor、および XGBoost .boost の予測について説明します。
  • LightGBM - 機能の重要性を示し、LGBMClassifier と LGBMRegressor の予測について説明します。
  • CatBoost: CatBoostClassifier と CatBoostRegressor の機能の重要性を表示します。
  • lightning - ライトニング分類器とリグレッサーの重みと予測を解釈します。
  • sklearn-crfsuite。 ELI5 では、sklearn_crfsuite.CRF モデルの重みを確認できます。

基本的な使用法:

Show_weights() はモデルのすべての重みを表示します。Show_prediction() はモデルの個々の予測を確認するために使用できます

説明可能な AI のための 10 の Python ライブラリ

ELI5 は、ブラック ボックス モデルをチェックするためのいくつかのアルゴリズムも実装しています。

TextExplainer は、LIME アルゴリズムを使用して、テキスト分類子の予測を説明します。順列重要度法は、ブラックボックス推定器の特徴重要度を計算するために使用できます。

説明可能な AI のための 10 の Python ライブラリ

4. Shapash

Shapash は、モデルを理解しやすくするために、いくつかのタイプの視覚化を提供します。この概要を使用して、モデルによって提案された決定を理解します。このプロジェクトは MAIF データサイエンティストによって開発されました。 Shapash は主に一連の優れたビジュアライゼーションを通じてモデルを説明します。

Shapash は Web アプリケーション メカニズムを通じて動作し、Jupyter/ipython と完全に統合できます。

from shapash import SmartExplainer
 
 xpl = SmartExplainer(
 model=regressor,
 preprocessing=encoder, # Optional: compile step can use inverse_transform method
 features_dict=house_dict# Optional parameter, dict specifies label for features name
 )
 
 xpl.compile(x=Xtest,
y_pred=y_pred,
y_target=ytest, # Optional: allows to display True Values vs Predicted Values
)
 
 xpl.plot.contribution_plot("OverallQual")

説明可能な AI のための 10 の Python ライブラリ

5. アンカー

アンカーは、局所的な「十分な」予測条件を表すアンカー ポイントと呼ばれる高精度のルールを使用して、複雑なモデルの動作を説明します。このアルゴリズムは、高い確率を保証して、あらゆるブラックボックス モデルの説明を効率的に計算できます。

アンカーは、LIME のいくつかの制限 (データの目に見えないインスタンスにモデルを適合できないなど) が修正された LIME v2 と考えることができます。アンカーは個々の視点ではなく、ローカルなエリアを使用します。 SHAP よりも計算が軽量であるため、高次元または大規模なデータ セットで使用できます。ただし、ラベルは整数のみであるという制限もあります。

説明可能な AI のための 10 の Python ライブラリ

6. BreakDown

BreakDown は、線形モデルの予測を説明するために使用できるツールです。これは、モデルの出力を各入力特徴の寄与に分解することによって機能します。このパッケージには 2 つの主なメソッドがあります。 Explainer() と Preparation()

model = tree.DecisionTreeRegressor()
 model = model.fit(train_data,y=train_labels)
 
 #necessary imports
 from pyBreakDown.explainer import Explainer
 from pyBreakDown.explanation import Explanation
 
 #make explainer object
 exp = Explainer(clf=model, data=train_data, colnames=feature_names)
 
 #What do you want to be explained from the data (select an observation)
 explanation = exp.explain(observation=data[302,:],direction="up")

説明可能な AI のための 10 の Python ライブラリ

7、Interpret-Text

Interpret-Text は、NLP モデルのコミュニティ開発を組み合わせたものです。結果を表示するための手法と視覚化パネル。実験は複数の最先端のインタープリターで実行され、比較分析できます。このツールキットは、機械学習モデルを各タグ上でグローバルに解釈することも、各ドキュメント上でローカルに解釈することもできます。

以下は、このパッケージで利用可能なインタプリタのリストです:

  • Classical Text Explainer - (デフォルト: ロジスティック回帰用のワードバッグ)
  • Unified Information Explainer
  • 内省的根拠の説明

説明可能な AI のための 10 の Python ライブラリ

## その利点は、CUDA、RNN、BERT などのモデルをサポートしていることです。また、ドキュメント内の機能の重要性に関するパネルを生成できます

from interpret_text.widget import ExplanationDashboard
 from interpret_text.explanation.explanation import _create_local_explanation
 
 # create local explanation
 local_explanantion = _create_local_explanation(
 classification=True,
 text_explanation=True,
 local_importance_values=feature_importance_values,
 method=name_of_model,
 model_task="classification",
 features=parsed_sentence_list,
 classes=list_of_classes,
 )
 # Dash it
 ExplanationDashboard(local_explanantion)

説明可能な AI のための 10 の Python ライブラリ

8、aix360 (AI Explainability 360)

AI Explainability 360 ツールキットはオープン ソース ライブラリであり、このパッケージは IBM によって開発され、同社のプラットフォームで広く使用されています。 AI Explainability 360 には、エージェントの説明可能性メトリクスだけでなく、説明のさまざまな側面をカバーする包括的なアルゴリズムのセットが含まれています。

説明可能な AI のための 10 の Python ライブラリ

このツールキットは、次の論文のアルゴリズムとインジケーターを組み合わせています。
  • Towards Robust Interpretability with Self-Explaining Neural Networks, 2018. ref
  • Boolean Decision Rules via Column Generation, 2018. ref
  • Explanations Based on the Missing: Towards Contrastive Explanations with Pertinent Negatives, 2018. ref
  • Improving Simple Models with Confidence Profiles, , 2018. ref
  • Efficient Data Representation by Selecting Prototypes with Importance Weights, 2019. ref
  • TED: Teaching AI to Explain Its Decisions, 2019. ref
  • Variational Inference of Disentangled Latent Concepts from Unlabeled Data, 2018. ref
  • Generating Contrastive Explanations with Monotonic Attribute Functions, 2019. ref
  • Generalized Linear Rule Models, 2019. ref

9、OmniXAI

OmniXAI (Omni explable AI的缩写),解决了在实践中解释机器学习模型产生的判断的几个问题。

它是一个用于可解释AI (XAI)的Python机器学习库,提供全方位的可解释AI和可解释机器学习功能,并能够解决实践中解释机器学习模型所做决策的许多痛点。OmniXAI旨在成为一站式综合库,为数据科学家、ML研究人员和从业者提供可解释的AI。

from omnixai.visualization.dashboard import Dashboard
 # Launch a dashboard for visualization
 dashboard = Dashboard(
instances=test_instances,# The instances to explain
local_explanations=local_explanations, # Set the local explanations
global_explanations=global_explanations, # Set the global explanations
prediction_explanations=prediction_explanations, # Set the prediction metrics
class_names=class_names, # Set class names
explainer=explainer# The created TabularExplainer for what if analysis
 )
 dashboard.show()

説明可能な AI のための 10 の Python ライブラリ

10、XAI (eXplainable AI)

XAI 库由 The Institute for Ethical AI & ML 维护,它是根据 Responsible Machine Learning 的 8 条原则开发的。它仍处于 alpha 阶段因此请不要将其用于生产工作流程。

以上が説明可能な AI のための 10 の Python ライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。