ひとことで言うと
モデルの近似解釈は、複雑なモデル全体を読み切らず、ある入力の予測を単純な説明モデルで近似する考え方です。LIMEは入力の周辺を摂動し、元モデルの出力に合う線形モデルを局所的に学習します。SHAPは特徴量を協力ゲームの参加者とみなし、Shapley値で一つの予測への寄与を配分します。
巨大な地図を全部読む代わりに、現在地の周囲だけを拡大した案内図を作るのがLIMEです。SHAPは、同行者が目的地への到達にどれだけ効いたかを、参加順の偏りが出ないよう分担計算する方法です。どちらも地図全体ではなく、特定地点の読み解きです。
なぜ必要か
精度の高いモデルほど、予測の根拠を人が直接追いにくくなります。「この入力のどの特徴が、どちら向きに予測へ効いたか」を取り出せると、予測の採用、モデル比較、信頼できない理由の調査を判断しやすくなります。LIMEの論文は、分類器を限定せず個別予測を説明することと、説明を使った信頼判断・モデル選択などを扱っています。
| 読みたい対象 | 近似解釈で得るもの | 読み過ぎになるもの |
|---|---|---|
| 一つの予測 | その入力の周辺で効いた特徴 | モデル全体の規則 |
| 手法の比較 | 個別予測を比べる寄与 | 因果効果の証明 |
示すのは元モデルの局所的な振る舞いです。LIMEの線形モデルは近傍の選び方や摂動結果に依存し、別の近傍では説明が変わり得ます。説明が安定しないときは、モデル全体の因果関係や普遍的な重要度と読み替えません。SHAPも個別予測の値なので、対象入力と寄与を測る基準を固定して比較します。
仕組み
入力を 、元の予測器を 、説明点を とします。LIMEでは の近くの入力 を作り、近いほど重い を付けます。線形モデル を元モデルの出力に合わせて学習します。
は解釈可能なモデルの集合、 は複雑な説明を抑える項です。係数 の符号と大きさを、その予測での特徴量の局所的な影響として読みます。元モデルを線形に置き換えたのではなく、周辺だけを近似した点が要点です。
SHAPは予測を基準値と各特徴の寄与の和に分けます。特徴量集合を 、集合 を使ったモデル出力を とすると、特徴 のShapley値は次です。
は集合 の出力、 は特徴量 の寄与です。全特徴の寄与は、基準値から対象予測までの差になります。論文は、望ましい性質を持つ加法的特徴量重要度のクラスを整理し、そのクラスで一意な解としてSHAPを位置づけ、既存手法との統一を示しています。
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| LIMEの説明手順 | 入力を摂動し、予測点の近傍で線形モデルを学習 | モデル全体を一度だけ線形回帰する |
| SHAPの考え方 | 協力ゲームのShapley値で個別予測の寄与を配分 | 勾配だけで重要度を決める |
| 説明の範囲 | 元モデルの局所的な近似・個別予測の説明 | 全入力域の規則や因果効果と断定する |
| 手法の比較 | LIMEは近傍摂動、SHAPは寄与配分の枠組み | どちらも同じ線形回帰とする |
実装で確かめる
二つの特徴を持つ非線形な予測器の周囲を摂動し、重み付き線形回帰を当てます。続いて、二特徴の参加順を平均するShapley値を計算します。LIMEの係数は近傍への近似係数、SHAPの値は基準値からの寄与分解で、同じ量ではありません。
import numpy as np
rng = np.random.default_rng(0)
x0 = np.array([0.7, -0.2])
f = lambda x: np.sin(x[:, 0]) + x[:, 1] ** 2
z = x0 + rng.normal(0, 0.15, size=(200, 2))
y = f(z)
w = np.exp(-np.sum((z - x0) ** 2, axis=1) / 0.15 ** 2)
X = np.c_[np.ones(len(z)), z]
beta = np.linalg.solve(X.T @ (w[:, None] * X), X.T @ (w * y))
v0, v1, v2, v12 = f(np.array([[0., 0.]]))[0], f(np.array([[x0[0], 0]]))[0], f(np.array([[0, x0[1]]]))[0], f(x0[None, :])[0]
phi = np.array([(v1 - v0 + v12 - v2) / 2, (v2 - v0 + v12 - v1) / 2])
print("LIME係数:", beta[1:], "SHAP:", phi, "整合:", phi.sum(), v12 - v0)
取り違えやすいもの
| 手法・概念 | モデルの近似解釈との切り分け |
|---|---|
| LIME | 摂動した近傍に重みを付け、個別予測を局所モデルで説明する |
| SHAP | Shapley値を使い、基準値からの個別寄与を加法的に分解する |
| 大域的な重要度 | データ全体や多数の予測の要約で、特定入力の説明とは対象が違う |
| 感度分析 | 入力変化による出力変化を見る分析で、寄与配分とは定義が違う |
想起チェック
LIMEは何を摂動し、何を学習するか
説明対象の入力の周辺を摂動し、元モデルの出力に合う重み付き線形モデルを局所的に学習します。
SHAPの寄与は何に基づいて配分されるか
特徴量を協力ゲームの参加者とみなし、各参加順での限界的な寄与を平均するShapley値に基づきます。
近似解釈の説明が安定しないとき、何を断定してはいけないか
近傍や基準の変更で説明が変わる可能性があるため、局所的な説明をモデル全体の規則や因果効果として断定しません。