AI

モデル解釈性とは?説明可能性との違いとSHAP・LIMEの選び方を実装目線で解説

モデル解釈性とは、機械学習モデルが出した予測について「何がどう効いてその値になったのか」を人が追える度合いを指します。要件定義には「説明できること」とだけ書かれ、誰に何をどの粒度で見せるかが決まらないまま実装へ進む案件が目立ちます。粒度が決まらなければ手法も決まりません。

この記事では、解釈可能性と説明可能性の呼び分け、大域的説明と局所的説明の使い分け、SHAP・LIME・部分依存プロットの計算コストと適用条件、そして説明を本番の推論基盤へ組み込むときの保存設計までを実装の視点で整理します。特徴量そのものの作り方と、列を削る判断に使う重要度の測り方は特徴量とは?機械学習での意味と作り方・重要度の見方を実装目線で解説で扱っているため、本記事は予測の説明側に絞りました。

まとめ:モデル解釈性の定義と、手法選定・運用組み込みの判断順

解釈性は「モデルの構造と挙動を人が追える度合い」、説明可能性は「個々の出力になぜその値かを答えられること」。2つを分けて要件化すると、手法の選定はほぼ一意に決まります。問いが「全体として何が効いているか」なら大域的説明、「この1件がなぜ否決か」なら局所的説明です。

判断の順番は、見せる相手と粒度を先に固定し、次に本質的に解釈できるモデルで足りるかを試し、足りないときだけ事後説明を足す形が扱いやすいでしょう。逆順で勾配ブースティングにSHAPを後から被せると、保存と再現性の設計が後追いになり、監査で「その説明はどの版のモデルか」に答えられなくなります。

手法ごとの守備範囲は次のとおり。制約欄がそのまま採用可否の分かれ目になります。

手法 説明の範囲 計算コスト 主な制約
TreeSHAP 大域と局所の両方 木モデルなら軽い 木系モデルに限定
KernelSHAP 局所(1件ずつ) 件数と列数に比例 数万件で待ち時間
LIME 局所(1件ずつ) 軽い 近傍生成で結果が揺れる
部分依存プロット 大域(平均の傾向) 中程度 相関列があると誤読
パーミュテーション 大域(列の寄与) 再学習不要で軽い 1件の説明はできない

解釈性と説明可能性の呼び分けと、大域的・局所的の2軸による整理

定義が曖昧なまま議論すると、要件は「なんとなく説明できるモデル」に落ち着きます。2組の言葉を切り分けます。

モデルの挙動を人が追える度合いとして解釈性を定義する実務基準

解釈性は、入力をどう動かすと出力がどう動くかを人が追跡できる程度を指します。与信の二値分類なら「年収を50万円上げたときに承認確率がどちら向きに動くか」を、モデルの構造から言えるかどうかが判定基準です。

実務ではこの度合いを主観で語らず、答えられる問いへ落とします。承認・否決の理由を上位3件の特徴量で示せるか。同じ入力で同じ説明が出るか。モデルを差し替えても説明の様式が変わらないか。この3問に「はい」と言える状態を実装上のゴールに置くと、設計がぶれません。

解釈可能性と説明可能性を呼び分ける境界と、混同が生む要件のずれ

解釈可能性(interpretability)は、モデルが予測を返す仕組みそのものを人が理解できることです。線形回帰の係数や決定木の分岐条件は、それ自体が仕組みの記述にあたります。対して説明可能性(explainability)は、仕組みを直接読めないモデルに対し、個別の出力の理由を後から与えることを指します。

境界が曖昧だと、要件のずれが工数に跳ね返ります。「説明可能なモデルを使ってほしい」の中身が「否決理由を顧客へ文書で返したい」だけなら、既存の勾配ブースティングにSHAP値の出力を足せば足ります。逆に「規制当局へ設計思想を示したい」なら、事後説明を積んでも要件は満たせません。要望を聞いた段階で、仕組みの説明か出力の説明かを確認してください。

大域的説明と局所的説明で答えられる問いの違いと、要件からの選択順

大域的説明はモデル全体の傾向を示し、局所的説明は1件の予測を分解します。答えられる問いが別なので、片方が他方の代わりにはなりません。

  • 大域的説明:全体として何を見ているか、想定外の列に依存していないか
  • 局所的説明:この申込はなぜ否決か、異議申立てにどう回答するか

選択順は要件から逆算してください。個別の結果を第三者へ通知する工程があるなら局所的説明が必須で、大域的説明は開発中のレビュー用で足ります。通知工程がなく妥当性をレビュー会議で確かめるだけなら、大域的説明だけで回るでしょう。両方を最初から作り込むと、使われない画面が1つ増えます。

本質的に解釈できるモデルと事後説明を足す構成の、精度と説明責任での使い分け

説明を得る道は2本あります。最初から読めるモデルを使うか、読めないモデルへ後付けするか。順に検討すると無駄な工数を避けられます。

線形回帰・決定木・一般化加法モデルを先に試すべき案件の条件と精度差

表形式で列数が数十、行数が数万規模の案件では、まず線形モデルと決定木でベースラインを取ります。ロジスティック回帰の係数はオッズ比に変換すれば「この列が1単位増えると承認確率がどう動くか」をそのまま言葉にできますし、深さ4程度に制限した決定木なら分岐条件を業務担当者が読めるでしょう。木構造の作り方と剪定の考え方は決定木分析とは?分類木・回帰木の仕組みと過学習を防ぐ剪定・アンサンブルに整理しています。

ここで見るのは精度差の絶対値です。勾配ブースティングとの差がAUCで0.01前後に収まるなら、解釈可能なモデルを本番へ出したほうが運用は軽くなります。0.05以上開くなら事後説明を足す構成へ進む判断でよいでしょう。差を測らずに「精度が要る」と決め打ちすると、説明の作り込み工数を自分で買うことになります。

Explainable Boosting Machineが埋める精度と解釈性の中間帯

一般化加法モデルの系譜にあるExplainable Boosting Machineは、各特徴量の寄与を関数の形で保持し、その形状をグラフとして描けます。ブースティングで学習するため精度は木のアンサンブルに近く、寄与の形も読めます。Microsoft Researchが公開するInterpretMLに実装があり、PyPI上の名称は interpret、2026年8月時点は0.7.8系です。

採用の目安は、列数が100を大きく超えず、交互作用が数個に収まる見込みの案件。列数が数千に達する疎なデータや、画像・音声のような非構造データには向きません。この中間帯を先に検討すると、事後説明の実装そのものを回避できる場面があります。

事後説明が近似にとどまる理由と、説明を鵜呑みにしない検証手順

SHAPもLIMEも、元のモデルの挙動を別の単純なモデルで近似した結果です。出てきた寄与度は内部を直接読み取った値ではなく、取り違えると説明の数字を業務ルールのように扱ってしまいます。

検証は2つで足ります。第一に、説明が上位に挙げた列を外して再学習し、性能が説明どおりに落ちるかを見る。第二に、同じ1件へTreeSHAPとパーミュテーション重要度を当て、上位の顔ぶれが食い違わないかを確かめる。食い違うなら相関の強い列で寄与が分散しているので、列をまとめてから測り直します。

SHAP・LIME・部分依存プロットの計算コストと、規模から決まる適用条件

手法の選定は思想ではなく、計算量と対象モデルで決まります。待てない計算は載りません。

TreeSHAPとKernelSHAPで分かれる計算量と、実務で待てる規模の目安

SHAPは協力ゲーム理論のシャープレイ値を予測の寄与配分に当てた手法で、PyPI上のパッケージは2026年8月時点で0.52.0系です。実装は対象モデルによって別物になります。TreeSHAPは木構造をたどって厳密値を多項式時間で求めるため、勾配ブースティングやランダムフォレストなら数万件の一括計算も現実的な時間で終わります。

モデルを問わないKernelSHAPは、背景データの各行と説明対象の組み合わせを大量にサンプリングして回帰を解く方式です。計算時間は説明対象の件数・列数・背景データの行数の積で効くため、数千行の背景データのまま数万件を説明しようとすると、バッチが数時間から数日に膨らみます。逃げ道は縮約で、shapの要約関数でクラスタ中心を50から100行へ落とすと桁で短縮できます。木系なら、まずTreeSHAPが使える形へ寄せるほうが早いです。

LIMEの局所近似が不安定になる条件と、開発停滞を踏まえた選定判断

LIMEは、説明したい1件の周辺に摂動を加えたサンプルを生成し、その近傍だけを線形モデルで近似します。軽さが利点である反面、近傍の生成が乱数に依存するため、同じ入力でも実行のたびに寄与度の順位が入れ替わることがあります。近傍の広さを決めるカーネル幅の既定値がデータのスケールに合っていなければ、説明はさらに動くでしょう。

ここは判断を言い切ります。新規案件でLIMEを第一候補に置く理由は、2026年8月時点でほぼありません。PyPI上の lime は0.2.0.1が最新で、最終リリースは2020年6月26日のまま更新が止まっています。木系ならTreeSHAP、それ以外ならKernelSHAPを背景データ縮約付きで使う構成を既定にしてください。既存システムがLIMEで動いているなら、乱数シードを固定し、同一入力での説明の再現性を回帰テストへ入れる運用で当面は保てます。

部分依存プロットとICEで交互作用の見落としを防ぐ読み方と注意点

部分依存プロットは、ある列の値を動かしたときの予測の平均的な変化を描く手法です。scikit-learn 1.9系なら sklearn.inspection の partial_dependence で値を取得でき、付属の描画クラスを使えば対象の列を2つ指定した交互作用の等高線も出せます。

平均を取る手法なので、個体ごとに向きが逆の効果があると打ち消し合い、平らな線に見えます。年齢が上がると承認確率が上がる層と下がる層が半々に混在していれば、平均は横ばいです。避けるには、個体ごとの曲線を重ねて描くICE(Individual Conditional Expectation)を併用します。線束が上下に割れていれば、その列に交互作用があると判断してよいでしょう。もう1点、部分依存プロットは列が独立である前提で値を差し替えるため、身長と体重のような強い相関がある組では、現実に存在しない入力での予測を平均へ含めます。相関の強い列は片方に絞ってください。

特徴量単位の重要度との役割分担と、1件ごとの説明が要る場面の線引き

パーミュテーション重要度は、対象の列だけをシャッフルして性能の劣化量を測る方式で、モデルを問わず使えます。用途は列の取捨、つまり「この列を残すか削るか」の意思決定です。1件の予測がなぜその値かには答えられません。

線引きは運用フローで決まります。開発中に列を絞る目的ならパーミュテーション重要度で足りるでしょう。否決理由の通知、異議申立てへの回答、医師や与信担当者への根拠提示のように、個別の結果を人へ返す工程があるならSHAP値を1件ごとに保存する構成が要ります。列の取捨に使う重要度の測り方と、不純度ベースの偏りは特徴量の重要度を測る3手法の使い分けで扱っています。

説明を本番運用へ組み込むときの保存設計・レイテンシ・再現性の実装論点

説明はノートブックで出して終わりではありません。運用へ載せる時点で、保存と再現の設計が要ります。

推論と同時に説明値を返すか、非同期で保存するかを分ける判断条件

同期構成は、APIの応答へ説明値を含める形です。TreeSHAPなら1件の計算はミリ秒台で、オンライン与信のように理由を即座に画面へ出す要件でも成立します。KernelSHAPを同期に置くのは避けてください。1件で数秒かかる実装を応答時間へ足すと、タイムアウトの設計が壊れます。

非同期構成は、推論時には入力と出力だけを記録し、説明値はバッチで後から計算してテーブルへ書き込む形です。異議申立てへの回答が数営業日以内でよい業務なら、こちらのほうが安く済みます。猶予が分単位なら同期、時間単位以上なら非同期。両方を作る必要はありません。

説明の再現性を守るためにモデル版・背景データ・ライブラリ版を紐付ける設計

半年後に「この否決の説明を再現してほしい」と言われる場面を想定してください。同じ説明を出すには、当時のモデル本体、当時の入力、KernelSHAPなら当時の背景データ、そしてshapのバージョンが要ります。背景データが差し替わっていれば寄与度は変わりますし、ライブラリの既定値が変われば結果も動きます。

最小構成は、説明値のレコードにモデルの版ID・背景データの版ID・ライブラリのバージョン文字列を持たせることです。背景データはモデルと同じ場所に成果物として保存し、モデル版と1対1で紐付けます。この3項目が欠ければ、説明の再計算は「たぶん同じはず」の域を出ません。成果物の版管理を担う基盤の選び方はMLOpsツール比較|実験管理・パイプライン・監視の主要スタックと選定基準にまとめています。

説明が壊れたことを検知するモニタリング側の監視項目と接続の設計

入力の分布が変わると、精度が落ちる前に説明の中身が先に変わります。与信モデルで上位だった列がある月から別の列へ入れ替わっていれば、データ供給側で何かが起きた合図です。精度指標だけでは、正解ラベルが揃うまで気づけません。

監視項目は2つで始められます。第一に、大域的な寄与度の上位5列の顔ぶれと順位を日次または週次で記録し、入れ替わりを検知する。第二に、説明値の絶対値の合計が急に増減していないかを見る。どちらも既存の監視基盤へ数値として流せば足ります。ドリフトの指標としきい値の決め方はモデルモニタリングとは?ドリフト検知の指標としきい値設計を実装目線で解説で扱っているため、説明の監視はその枠組みへ項目を1つ足す形が手戻りなく済みます。

EU AI Actの延期を含む規制と社内要件から逆算する、説明の粒度と保存期間

説明の粒度を決める外的な制約は、規制と社内規程です。2026年に適用時期が動いたため、現況から要件へ落とします。

2026年8月時点で適用中の義務と、2027年12月へ延期された高リスク義務

EU AI Actは、いわゆるDigital Omnibusによる改正で高リスクAIの義務適用が後ろ倒しになりました。附属書III(Annex III)の単独型、つまり採用選考・与信スコアリング・生体識別などに使うシステムの義務は2027年12月2日から、規制対象製品へ組み込まれる附属書I(Annex I)型は2028年8月2日からの適用です。欧州議会が2026年6月16日に採択し、同月末に理事会が最終承認しました。

一方で2026年8月2日から動いている義務もあります。第50条の透明性義務、すなわちAIとの対話であることの明示や生成コンテンツの表示は延期の対象外で、すでに適用中です。含意は単純で、EU域内向けの採用・与信システムなら説明機能の実装期限に約1年半の猶予が生まれ、生成AIを顧客接点へ置く機能は今の時点で対応が要ります。空いた期間は、本質的に解釈できるモデルの検討へ回すほうが後の作り込みは軽くなります。

与信・採用・医療で必要になる説明の粒度と、社内で合意を取る順序

業務によって説明の受け手と粒度が変わります。与信では申込者本人へ返す理由の文言まで、採用では候補者と労務部門が読める粒度まで、医療の診断支援では医師が判断を上書きできる根拠まで。どれも「上位3件の寄与列とその向き」を自然文へ変換する層が要ります。

社内合意は、法務・業務部門・開発の3者で次の順に進めると手戻りが減ります。

  1. 説明を受け取る相手と、返す媒体(画面・書面・口頭)を業務部門が確定する
  2. 返してよい情報の範囲と、保存期間・開示請求への対応方針を法務が確定する
  3. その粒度を満たす手法と保存構成を開発が選び、計算コストを見積もって差し戻す

3から始めると、SHAPの実装後に「その数値は顧客へ出せない」と覆ります。保存期間は説明値のストレージ量を直接決めるので、1と2の段階で数字を取ってください。

解釈性に工数を投じる案件と、精度を優先して見送ってよい案件の切り分け

解釈性は常に必要な要件ではありません。投じる価値がある条件と見送ってよい条件を分けます。

解釈性を要件へ明記すべき条件と、投資が回収できる案件の見分け方

要件へ明記すべきなのは、次のいずれかに当たる案件です。予測の結果が個人の不利益(否決・不採用・保険料の上昇)に直結する。業務担当者がモデルの出力を上書きする運用がある。規制または社内規程で根拠の記録が定められている。

どれかに当たるなら、説明機能は後付けではなく初期設計へ入れてください。回収の見込みも立つでしょう。上書き運用がある現場では根拠が見えるモデルのほうが担当者の受け入れが進み、そもそも使われないという失敗を避けられます。データ整備から本番運用までを一貫して設計する体制が社内に足りないなら、機械学習モデル開発のように説明機能の実装と運用設計まで引き受ける外部の体制と組む選択肢もあります。

説明ダッシュボードを作らないと判断してよい条件と、失敗の典型

逆に、次の条件が揃うなら説明用のダッシュボードは作りません。予測の結果が人へ直接返らない(需要予測や機器の故障予兆など)。出力を人が上書きせず自動で後続処理へ渡す。規制上の記録義務がない。この場合に要るのは説明ではなく、精度の監視と異常時のロールバック手順です。

典型的な失敗は、要件に「説明可能であること」と書かれたのを受けて、誰も見ないSHAPの一覧画面を作り込むパターンです。開発工数が数十人日単位で消え、運用開始後は月に1回も開かれません。分かれ目は「その画面を見て、誰が、どの意思決定を、いつ変えるのか」に答えられるかどうか。答えが出ないなら、大域的な寄与度をノートブックで出すだけに留めてください。

よくある質問

モデル解釈性をめぐって、要件定義と実装の現場で繰り返し出る質問を整理します。

モデル解釈性と説明可能AI(XAI)は同じものですか?

指す領域はほぼ重なりますが、力点が違います。解釈性はモデルの構造や挙動を人が追える度合いという性質の話で、説明可能AIはブラックボックスなモデルの出力に理由を与える技術群の総称です。実務では厳密な区別より、答えるべき問いが「モデル全体の仕組み」なのか「個々の出力の理由」なのかを確かめるほうが役に立つでしょう。要件書に両語が混在しているなら、受け手と粒度を聞き直してから手法を選んでください。

SHAPとLIMEはどちらを先に試すべきですか?

木系モデルならSHAP、正確にはTreeSHAPから試します。厳密なシャープレイ値を高速に得られ、同じ入力へ同じ結果が返るため、監査や回帰テストへ載せやすくなります。LIMEは軽さが利点ですが、近傍サンプリングの乱数で結果が揺れるうえ、PyPI上の最終リリースは2020年6月のままです。新規案件の第一候補には置かず、既存資産がある場合のみ乱数シードの固定と再現性テストを添えて使う判断が現実的です。

深層学習モデルでも解釈性は確保できますか?

画像・テキストでは、勾配情報を使う手法が実用域にあります。画像分類ならGrad-CAMで判断に効いた領域をヒートマップとして重ね、テキストならIntegrated Gradientsでトークンごとの寄与を出す構成が一般的で、PyTorch向けにはCaptumのようなライブラリが揃っています。ただし得られるのは「どこを見たか」であって「なぜそう判断したか」ではありません。根拠の質が問われる医療画像の読影支援などでは、ヒートマップを最終根拠とせず医師が確認する運用と組み合わせてください。

SHAP値の計算が終わらないときは何を削ればよいですか?

削る順番は3つあります。第一は背景データで、shapの要約関数でクラスタ中心を50から100行へ落とすと計算量が桁で下がるでしょう。第二は説明対象の件数で、異議申立てが来た分だけを都度計算する非同期構成へ切り替えます。第三はモデル側で、木系へ寄せてTreeSHAPが使えれば、KernelSHAPを回す前提そのものが消えます。列数を減らす手は精度に直結するため最後に検討してください。

解釈性を高めると精度は必ず下がりますか?

下がらない場面が相当あります。表形式で列数が数十規模のデータでは、ロジスティック回帰や浅い決定木と勾配ブースティングの差がAUCで0.01前後に収まることが珍しくありません。Explainable Boosting Machineのように、加法構造を保ったままブースティングで精度を詰める手法もあります。まずベースラインを取り、差を数字で確認してから判断してください。差を測らずに「精度が要るからブラックボックスで行く」と決めると、不要な説明実装の工数を後から払うことになります。

関連記事

資料請求

RELATED POSTS 関連記事