説明可能なAIと解釈手法の紹介

こんにちは。株式会社エイアイ・フィールドのK.Tと申します。
現在、機械学習やディープラーニングを用いたレコメンドエンジンの開発に携わっています。
今回は「説明可能なAI」という機械学習・ディープラーニングにおける概念について紹介したいと思います。

目次

  • 説明可能なAIとは
  • 解釈の手法
    • Partial Dependence Plot (PDP)
    • Permutation Importance
    • LIME
    • Anchor
    • SHAP
  • モデルの解釈性に関する機能を提供するサービス
    • Amazon SageMaker Clarify
    • Explainable AI
  • まとめ

説明可能なAIとは

説明可能なAIとは、機械学習・ディープラーニングのモデルから、予測結果について「なぜその結果を出したのか」を人間が解釈可能な情報として抽出する技術の総称です。Explainable AI、XAI と呼ばれることもあります。

近年、機械学習やディープラーニングモデルの実社会での活用が進んできていますが、これらを活用するにあたって、モデルがなぜそのような予測をしたのか知りたい場合があります。例えば医療診断を行うモデルを導入した場合、予測結果だけでなくそのように判断した根拠がないと、モデルの使用者は結果を信頼できません。

このような結果だけでなく判断の根拠が必要になるケースでは、予測時に重要視されたデータの特徴量などの予測結果以外の追加情報をモデルから抽出し、結果の解釈を行う必要があります。そういったケースで 説明可能なAI の技術を用いることで欲しい情報を抽出し、意思決定に利用することができます。

総務省が取りまとめているAI利活用ガイドラインにも「公平性の原則」「透明性の原則」「アカウンタビリティの原則」といったAIの信頼や責任に関する項目があり、近年重要視されてきています。

モデルの解釈手法

モデルを解釈するための方法は主に2つあります。

1つは解釈可能な構造を持つモデルを用いる方法です。
線形回帰や決定木など解釈可能な構造を持つモデルを使用すれば、内容の解釈ができます。例えば決定木ならツリーの構造を可視化することでモデルの判断ロジックを確認できます。ディープラーニングなど中身がブラックボックスとなっているモデルは使用できません。

2つめはモデル構造に依存しない手法を用いる方法です。
使用したモデルの構造を問わずに使える手法を用いることで、モデルの解釈を行います。近年様々な手法が提案されています。

以下では、モデル構造に依存しない手法について、Pythonから使用できるライブラリが存在している手法をいくつか紹介したいと思います。

Partial Dependence Plot (PDP)

ある1つの特徴量が変化したときに、データセット内の予測結果の平均がどの程度変化するかを計算します。予測結果の変化が大きければ、その特徴はモデルの予測に重要な特徴であると考えられます。

注意点としては、各特徴量が互いに独立であると仮定しているため、特徴同士に相関関係がある場合はうまく効果が予測できない場合があります。Pythonではscikit-learnの実装が存在しており、こちらから簡単に使用することができます。

Permutation Importance

データセット内のある特徴をランダムに並び替えた場合と並び替えない場合とを比較し、どの程度予測誤差が発生するかを計測する手法です。モデルの予測に重要な特徴であるほど、並び替えない場合より精度が低下し、予測誤差が大きくなると考えられるというアイデアに基づいています。
こちらもscikit-learneli5といったライブラリによる実装が存在しており、手軽に試すことができます。 注意点としては学習データかテストデータのどちらを使用して誤差を評価すればいいのか不明確な点、結果が並べ替えに依存するためランダム性が発生するという点などが挙げられます。

LIME

2016年にこちらの論文で提案された手法です。ディープラーニング等のブラックボックスモデルの予測値をよく近似する解釈可能なモデル(サロゲートモデル)を作成します。サロゲートモデルを解釈したいデータ点周辺のデータで学習させ、重要視された特徴を見ることでブラックボックスモデルの説明を試みる手法となっています。

テーブルデータ以外にもテキストや画像といった入力データにも対応できます。論文の著者による実装が存在し、可視化も可能です。

Anchor

LIMEの論文と同じ著者により2018年に発表された手法です。サロゲートモデルの代わりにアンカーと呼ばれるIF-THENルールで解釈したいデータ点の周辺を表現します。

LIME同様にテーブルデータ、画像、テキストいずれにも対応可能で、LIMEより安定した説明を生成しやすいとされていますが、設定するパラメータが増えており適切に調整する必要があります。Pythonではalibiというライブラリから使用可能です。

SHAP

2017年に提案された手法で、ゲーム理論におけるShapley値の理論をモデルの解釈に応用したものとなっています。LIME同様にサロゲートモデルを構築し、モデルが使用した各特徴量が、それぞれどの程度予測結果に寄与しているかがわかります。

論文著者による実装が存在し、可視化機能が充実しています。ネット上の日本語の情報も充実しており、業務にも比較的導入しやすそうだと感じました。

説明可能なAIに関する機能を提供するサービス

AWSやGCPといったクラウドサービスにおいても説明可能なAIと関連する機能が提供されているので紹介します。

Amazon SageMaker Clarify

AWSが提供するサービス機械学習サービスAmazon Sagemaker の機能の1つとして提供されています。データやモデルの予測結果に関するバイアスの確認、Shapley値によるモデルの解釈が可能です。すでにSagemakerを使用してモデルを構築している場合は便利な選択肢になりそうです。
Amazon SageMaker Clarify

Explainable AI

こちらはGCPが提供する機械学習モデルの解釈を行うサービスです。Shapley値や勾配情報を利用したモデルの予測結果の解釈や、モデルの可視化を行うWhat-If Toolといった機能を使用できます。
Explainable AI

まとめ

説明可能なAIについては聞いたことがある程度で詳しく知らなかったので、今回調べてみて勉強になりました。AIの解釈手法については、確実に正しいと言える手法はまだ存在しないようなので、上記で紹介した手法に全幅の信頼を置くのではなく、意思決定の評価軸の1つとして考えるのが良さそうです。また、AIの用途によっては説明が必要ない場合もあるので、そもそも結果に対する説明は必要か、必要ならどのような説明があればいいのか、という検討することも大切だと感じました。
今後AIの発展に伴い実社会での機械学習モデルの応用が増えるなか、モデルの予測結果の解釈や説明がますます重要になってくると思うので、注視していきたいと思います。

今回の記事を書くにあたって以下のページを参考にさせていただきました。より詳細な情報を知りたい方はぜひご覧ください。

また、手を動かして学びたいという方には以下のkaggleコースもおすすめです。

Learn Machine Learning Explainability Tutorials

Extract human-understandable insights from any model.

投稿者: K.T