説明可能性の指標

Pythonで学ぶExplainable AI

Fouad Trad

Machine Learning Engineer

一貫性(Consistency)

  • 異なるサブセットで学習しても説明が安定かを評価
  • 一貫性が低い → 説明は頑健でない

データセットを subset 1 と subset 2 に分割した図。

Pythonで学ぶExplainable AI

一貫性(Consistency)

  • 異なるサブセットで学習しても説明が安定かを評価
  • 一貫性が低い → 説明は頑健でない

各サブセットでモデルを学習する。

Pythonで学ぶExplainable AI

一貫性(Consistency)

  • 異なるサブセットで学習しても説明が安定かを評価
  • 一貫性が低い → 説明は頑健でない

各サブセットで学習するたびに特徴重要度を算出し、コサイン類似度を計算。

Pythonで学ぶExplainable AI

コサイン類似度で一貫性を測定

 

 

 

一貫性の主要な値と意味:1 は説明が高い一貫性。

Pythonで学ぶExplainable AI

コサイン類似度で一貫性を測定

 

 

 

一貫性の主要な値と意味:1 は説明が高い一貫性、0 は一貫性なし。

Pythonで学ぶExplainable AI

コサイン類似度で一貫性を測定

 

 

 

一貫性の主要な値と意味を示す画像:1 は説明が高い一貫性、0 は一貫性なし、-1 は逆の説明。

Pythonで学ぶExplainable AI

入学審査データセット

GRE スコア TOEFL スコア 大学評価 SOP LOR CGPA 合格確率
337 118 4 4.5 4.5 9.65 0.92
324 107 4 4 4.5 8.87 0.76
316 104 3 3 3.5 8 0.72
322 110 3 3.5 2.5 8.67 0.8
314 103 2 2 3 8.21 0.45

 

  • X1, y1: データセットの前半
  • X2, y2: データセットの後半
  • model1, model2: ランダムフォレスト回帰器
Pythonで学ぶExplainable AI

一貫性の計算

from sklearn.metrics.pairwise import cosine_similarity

explainer1 = shap.TreeExplainer(model1) explainer2 = shap.TreeExplainer(model2)
shap_values1 = explainer1.shap_values(X1) shap_values2 = explainer2.shap_values(X2)
feature_importance1 = np.mean(np.abs(shap_values1), axis=0) feature_importance2 = np.mean(np.abs(shap_values2), axis=0)
consistency = cosine_similarity([feature_importance1], [feature_importance2]) print("Consistency between SHAP values:", consistency)
Consistency between SHAP values: [[0.99706516]]
Pythonで学ぶExplainable AI

忠実度(Faithfulness)

  • 重要特徴が予測に影響するかを評価
  • 忠実度が低い → モデルの論理への信頼を損なう
  • センシティブ領域で有用

入力サンプルに対するモデルの元の予測を示す画像。

Pythonで学ぶExplainable AI

忠実度(Faithfulness)

  • 重要特徴が予測に影響するかを評価
  • 忠実度が低い → モデルの論理への信頼を損なう
  • センシティブ領域で有用

SHAP または LIME で元の予測を局所的に説明。

Pythonで学ぶExplainable AI

忠実度(Faithfulness)

  • 重要特徴が予測に影響するかを評価
  • 忠実度が低い → モデルの論理への信頼を損なう
  • センシティブ領域で有用

変更したサンプルを入力して新しい予測を生成。

Pythonで学ぶExplainable AI

忠実度(Faithfulness)

  • 重要特徴が予測に影響するかを評価
  • 忠実度が低い → モデルの論理への信頼を損なう
  • センシティブ領域で有用

新しい予測と元の予測の差の絶対値として忠実度を算出する式の画像。

Pythonで学ぶExplainable AI

忠実度の計算

X_instance = X_test.iloc[[0]]

original_prediction = model.predict_proba(X_instance)[0, 1] print(f"Original prediction: {original_prediction}")
Original prediction: 0.43

選択したサンプルに対する LIME の特徴重要度の説明を示す画像。

Pythonで学ぶExplainable AI

忠実度の計算

X_instance['GRE Score'] = 310  


new_prediction = model.predict_proba(X_instance)[0, 1] print(f"Prediction after perturbing {important_feature}: {new_prediction}")
faithfulness_score = np.abs(original_prediction - new_prediction) print(f"Local Faithfulness Score: {faithfulness_score}")
Prediction after perturbing GRE Score: 0.77

Local Faithfulness Score: 0.34
Pythonで学ぶExplainable AI

Let's practice!

Pythonで学ぶExplainable AI

Preparing Video For Download...