Deep Percept

OFFICIAL BLOG

機械学習モデルの予測根拠を説明する方法

はじめに

こんにちは。開発チームの細川です。
近年、AIで出来ることが増え、AIが利用されるシーンはますます広がっています。それに伴い、予測結果の判断根拠の説明が必要になるケースも増えています。例えば、医療診断など予測結果が重大な影響を及ぼす場合や不正取引の金融庁報告など報告内容に判断根拠を記載する場合などです。

しかし、現在主流となっているDeep Learning等の手法は判断根拠を説明することが難しいという欠点があります。この欠点を克服するために様々な手法が提案されています。

KDD2020という機械学習やデータマイニング関連の国際学術会議でも解釈性と説明性のセッション(http://xai.kaist.ac.kr/Tutorial/2020/)があり、注目されています。
セッションで紹介されている以下の図はExplainable AIの全体像を把握するのに有用です。Explainable AI とはAIの判断根拠を説明する手法を研究する学術分野です。


出典:XAIC http://xai.kaist.ac.kr/Tutorial/2020/

本記事ではクライアントから「AIの“予測結果の説明”をしてほしい」というオーダーが来た場合を想定し、既存の機械学習モデルに対して“予測結果の説明”を出力する機能を追加する方法を紹介します。

「AIの“予測結果の説明”をしてほしい」というオーダーへの対応の流れ

以下、6つのステップで対応します。

Step1. 予測モデルの精度を確認する

予測根拠を出力する機能を追加する前に、十分な精度のモデルがあることを確認しましょう。モデルの精度が十分でなければそのモデルは使われることが無く、“予測結果の説明”も不要なはずです。

Step2. “予測結果の説明”の定義を明確にする

例えば、医療診断であればX線画像を元に予測をした場合、「似ている過去の症例画像」「X線画像のうち病巣が写っている部分をハイライトした画像」などが考えられます。どのような説明があれば納得感が得られるかを明確にしましょう。

Step3. “予測結果の説明”以外の方法で要望を満たすことも考える

クライアントが「AIの“予測結果の説明”をしてほしい」というオーダーを出した理由・背景を深掘りすると、業務を少し変えると“予測結果の説明”が不要になるということもあります。
“予測結果の説明”は高コストであり、論文として発表されている手法を適用しても納得感のある説明が得られないリスクがあります。“予測結果の説明”をしなくて良い方法を検討しましょう。

Step4. “予測結果の説明”方法を検討する

大きく分けて以下二つの説明方法があります。

  • 予測に至るために用いるプロセスを人間が簡単に理解できるモデル、つまり解釈性の高いモデルに置き換える。
  • “予測結果の説明”を機械学習モデルから抽出する。

Step5. “予測結果の説明”のデメリット・リスクを確認する

“予測結果の説明”機能のデメリット・リスクとして以下が考えられます。これらのデメリット・リスクが許容できるか確認が必要です。

  • “予測結果の説明”を出力する機能を開発するためにコスト・期間がかかる。
  • “予測結果の説明”を出力する処理を追加する場合、サーバ費用増加や予測結果出力までの時間が長くなるなどの影響がありうる。
  • 既存の「十分な精度のモデル」を解釈性の高いモデルに置き換える場合、精度が下がる可能性がある。
  • データに微少なノイズを加えると説明が全く異なるものになる事例が報告されている。この性質を利用した攻撃を受けるリスクがある。

Step6. “予測結果の説明”を示せるかを確認する

現在の技術で可能な「説明」はクライアントが求める「説明」と異なるかも知れません。
現在の技術で可能な「説明」は大きく以下に分類されます。

  • 局所的な説明
    特定の入力に対する“予測結果の説明”を提示することで説明とする方法。
  • 大局的な説明
    複雑な予測モデルに似た予測結果を出力する解釈性の高いモデルを作成し、それをもって説明とする方法。

これらの「説明」がクライアントの期待を満たしているかをヒアリングしましょう。クライアントの期待を満たす説明方法が見付かったら、それを実現するアルゴリズムを探し、モデルに適用します。

“予測結果の説明”を実現するためのアルゴリズムの紹介

説明方法のアプローチとして以下の2つがあります。

  1. 入力値が予測結果に対して正負どちらの方向に、どの程度影響したかを提示する。
  2. 重要な学習データを根拠として提示する。

上記、説明方法を実現するためのアルゴリズムを紹介します。

1.入力値が予測結果に対して正負どちらの方向に、どの程度影響したかを提示する。

ビジネスユースケース

  • 住宅ローン審査モデルが「融資不可」と判定した場合に融資できない理由を顧客に説明したい。
  • 医療画像診断モデルが「病気」と判定した画像に対して判断根拠となった部分をハイライトして医師が確認しやすくしたい。

アルゴリズム

  • LIME
    • 複雑なモデルを局所的に(つまり、説明したいデータとその周辺のみに適用できる)線形モデル/ルールモデルで近似する方法。
    • 非常に有名な手法で解説記事等の情報が多い。
    • 著者実装が公開されている。(https://github.com/marcotcr/lime)
  • SHAP
    • ゲーム理論のShapley値を求める手法を使って各特徴量の寄与度を計算する手法。
    • 非常に有名な手法で解説記事等の情報が多い。
    • 著者実装が公開されている。(https://github.com/slundberg/shap)
    • 著者実装で綺麗に可視化されるため見栄えが良い。
  • GuildedBackprop
    • ある特徴量の値を微小変化させた時の変化量が大きいほど重要度が高いと見なす、勾配ベースハイライト法の一種。勾配ベースの手法はノイズが多いので、ノイズを減らすためにBack propagation時に正の勾配だけ伝搬させる。
    • citation数が多い。(2020/09/09時点でgoogle scholarでのcitation数が2323)
  • Epsilon-LRP
    • 勾配ベースハイライト法の一種。Back propagation時に各層の勾配の総和を一定に保つよう伝搬させる。
    • citation数が多い。(2020/09/09時点でgoogle scholarでのcitation数が1134)

2.重要な学習データを根拠として提示する。

ビジネスユースケース

以下はInfluenceの論文に記載されている利用例です。

  • モデルの振る舞いを理解したい。
  • モデルのデバッグをしたい。
  • 学習データの誤りを発見したい。
  • Adversarial Exampleを生成したい。

アルゴリズム

  • Influence
    • ある学習データが無かった場合の予測結果の変化を求める。変化が大きいものほど重要な学習データと見なす。ある学習データを除いた場合の影響は影響関数を使って近似的に計算可能。
    • ICML2017ベストペーパー。
    • 著者実装が公開されている。(https://github.com/kohpangwei/influence-release)

まとめ

機械学習モデルの“予測結果の説明”機能を追加するに当たってはまず十分な精度を持つモデルがあることが前提となります。
また、“予測結果の説明”機能の追加にはデメリットやリスクがありますので本当に追加するべきか慎重な判断が求められます。
通常のシステム開発同様、どのような説明があればよいのかクライアントにヒアリングし、具体的に決めることが重要です。
求められている「説明」が決まったら、説明機能追加以外の方法でクライアントの要望を満たせるかを検討しましょう。
“予測結果の説明”手法の研究は近年ますます増えており様々な手法がありますが代表的なものを紹介しました。
今後AIが世の中により広がっていくために説明性が求められるケースは確実に増えます。ユーザに予測結果を信頼して頂けるよう納得感のある説明機能を提供することが大事だと思います。
最近の論文では時系列予測モデルの“予測結果の説明”手法が提案されています。以下はその一例です。

N-BEATS: Neural basis expansion analysis for interpretable time series forecasting

今後も“予測結果の説明”手法は発展していくことが予想されるため引き続き調査していきます。

今回の記事はここまでですが、現在Deep Perceptでは一緒に働く人を募集中です。
興味を持たれた方はこちらまで。
https://www.deep-percept.co.jp/recruit/
最後まで読んでいただき、ありがとうございました。

この記事をシェアする

この記事の投稿者

細川 暢(ほそかわ とおる)

AIエンジニアです。
AIで今までにないプロダクトを作るため日々努力しています。
本ブログでは読者の課題解決に役立つことを目標に記事を書いていきます。

PAGE TOP