ブラックボックスなMLモデルの判断根拠を可視化、SHAPとLIME。 AI倫理にも直結。
深層学習って『なんでそう判定したのか』が分からないよね?
そう、ブラックボックス問題。 これに対処するのが説明可能AI(XAI)。 代表手法がSHAPとLIME。
SHAP=SHapley Additive exPlanations。 ゲーム理論のシャープレイ値を使い、各特徴量が予測にどれだけ寄与したかを定量化する。
シャープレイ値?
協力ゲーム理論で『各プレイヤーの貢献度を公平に配分する』ための計算方法。 これをML予測に応用したのがSHAPなの。
LIMEは?
LIME=Local Interpretable Model-agnostic Explanations。 着目する1つの予測のまわりだけ、シンプルな線形モデルで近似することで局所的に説明する。
違いは『SHAPは厳密な貢献度配分』『LIMEは局所近似による解釈』。 SHAPの方が理論的に厳密だが計算が重い、LIMEは速いが理論的根拠は弱め。
実務ではどっちを使うんですかぁ?
今の実務では{kw('SHAP')}が主流ね。 線形回帰・決定木・GBDTなど幅広く使えて、{kw('SHAP値')}による特徴量重要度はモデル解釈に欠かせないのよ。
なんでXAIってそんなに大事なの?
説明責任を果たすためよ。 医療・採用・金融みたいな重要な判断で『AIがそう言ったから』では通らないでしょ。 EU AI Actや国内ガイドラインでも、高リスクAIには説明可能性が求められるの。
DS検定★では『SHAP/LIMEは説明可能AI』『SHAP=シャープレイ値』『LIME=局所近似』を押さえておきましょう。
import shap from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier().fit(X_train, y_train) # SHAP値の計算 explainer = shap.TreeExplainer(model) shap_values = explainer.shap_values(X_test) # 全体の特徴量重要度をプロット shap.summary_plot(shap_values, X_test) # 個別予測の解釈 (1サンプル目) shap.force_plot(explainer.expected_value, shap_values[0], X_test.iloc[0])
確認クイズ
機械学習モデルの判断根拠を、ゲーム理論のシャープレイ値を用いて各特徴量の寄与度として可視化する手法はどれか。
- Grad-CAM
- SHAP
- LIME
- PCA
こたえを見る
正解: 2. SHAP
SHAP(SHapley Additive exPlanations)。 シャープレイ値を使うのがSHAPの特徴です。 LIMEは局所近似、Grad-CAMは画像CNNの可視化、PCAは次元削減で別物です。