説明可能なAI入門

Pythonで学ぶExplainable AI

Fouad Trad

Machine Learning Engineer

自己紹介

fouadtrad.jpg

Fouad Trad
  • 機械学習エンジニア
  • 博士課程在籍
  • サイバーセキュリティ向けAIが専門
LinkedIn

mylinkedin.jpg

Pythonで学ぶExplainable AI

人工知能(AI)

  • AIは、人間のようなタスクを機械で実行可能にする

人間が機械とチェスをしている画像

Pythonで学ぶExplainable AI

説明可能性の必要性

 

入力を受け取り出力を生成する、閉じたブラックボックスの画像

 

  • ブラックボックスAI: 意思決定が理解できない
Pythonで学ぶExplainable AI

説明可能性の必要性

 

入力を受け取り出力を生成する、開いたボックスの画像

 

  • ブラックボックスAI: 意思決定が理解できない
  • 説明可能AI: モデルの内部動作を理解できる
Pythonで学ぶExplainable AI

説明可能性 vs. 精度

  • 基本モデルは:

    • より説明しやすい
    • 精度は低め
  • 複雑なモデルは:

    • 精度は高い
    • 説明しにくい

基本(ルールベース、線形、決定木、k-NN、SVM、ニューラルネット)から複雑なモデルまでのグラフ。基本は説明しやすいが精度は低め、複雑は精度が高いが解釈が難しいことを示す。

Pythonで学ぶExplainable AI

決定木 vs. ニューラルネットワーク

決定木

条件に基づく意思決定の経路を可視化

複数の条件で予測が行われる決定木の図

Pythonで学ぶExplainable AI

決定木 vs. ニューラルネットワーク

決定木

条件に基づく意思決定の経路を可視化

入学判定の例。学部学位がなければ不合格。ある場合は成績が8.5超で合格。

Pythonで学ぶExplainable AI

決定木 vs. ニューラルネットワーク

決定木

条件に基づく意思決定の経路を可視化

入学判定の例。学部学位がなければ不合格。ある場合は成績が8.5超で合格。

ニューラルネットワーク

本質的に透明ではない

複数の隠れ層と多数のニューロンから成るニューラルネットの構造図

Pythonで学ぶExplainable AI

決定木 vs. ニューラルネットワーク

決定木

条件に基づく意思決定の経路を可視化

入学判定の例。学部学位がなければ不合格。ある場合は成績が8.5超で合格。

ニューラルネットワーク

本質的に透明ではない

同じニューラルネットが学生の特徴を受け取り、合否を予測する図

Pythonで学ぶExplainable AI

学生の合否予測

GREスコア TOEFLスコア 大学評価 SOP LOR CGPA 合格
337 118 4 4.5 4.5 9.65 1
316 104 3 3 3.5 8.00 1
314 103 2 2 3 8.21 0

 

  • テストスコア: GRE, TOEFL
  • 大学評価
  • SOP: 志望理由書
  • LOR: 推薦状
  • CGPA: 累積GPA
Pythonで学ぶExplainable AI

学生の合否予測

決定木
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(max_depth=5)

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Decision Tree: {acc}")
Accuracy of Decision Tree: 0.82
ニューラルネットワーク
from sklearn.neural_network import MLPClassifier

model = MLPClassifier(hidden_layer_sizes=(1000,1000))

model.fit(X_train, y_train)
y_pred = model.predict(y_test)
acc = accuracy_score(y_test, y_pred) print(f"Accuracy of Neural Network: {acc}")
Accuracy of Neural Network: 0.9
Pythonで学ぶExplainable AI

決定木のルール

from sklearn.tree export_text

rules = export_text(model, feature_names=list(X_train.columns))

print(rules)
|--- CGPA <= 8.34
|   |--- GRE Score <= 320.50
|   |   |--- class: 0

| |--- GRE Score > 320.50 | | |--- class: 1
|--- CGPA > 8.34 | |--- GRE Score <= 319.50 | | |--- class: 1 ...
Pythonで学ぶExplainable AI

モデル固有 vs. モデル非依存手法

モデル固有

特定のモデルに適用

特定の錠に合わせた鍵の画像

Pythonで学ぶExplainable AI

モデル固有 vs. モデル非依存手法

モデル固有

特定のモデルに適用

特定の錠に合わせた鍵の画像

モデル非依存

あらゆるモデルに適用

複数の錠を開けられるマスターキーの画像

Pythonで学ぶExplainable AI

次は?

  • モデル固有・モデル非依存の手法
  • ローカル手法とグローバル手法
  • 発展トピック:
    • 説明可能性の指標
    • 教師なしでの説明可能性
    • 生成AIの説明可能性

SHAP、LIME、Scikit-learn のロゴ

Pythonで学ぶExplainable AI

練習しましょう!

Pythonで学ぶExplainable AI

Preparing Video For Download...