説明可能なAIとは | Googleの「Explainable AI」に触れながら解説

このエントリーをはてなブックマークに追加


AIが注目されている理由のひとつであるディープラーニングには、モデルがブラックボックスになるという問題がある。そこで、医療業界や金融業界を筆頭に、「説明可能なAI」への注目が集まっている。今回は、そもそも説明可能なAIとは何か?という部分から、最近Googleが発表した説明可能なAIを実現するためのツールの長短まで、株式会社HACARUSのデータサイエンティストである宇佐見一平氏に解説してもらった。

こんにちは、HACARUSデータサイエンティストの宇佐見です。

「説明可能なAI」という言葉はご存知でしょうか。

説明可能なAIとは、米国のDARPAの研究が発端の概念で、モデルの予測が人間に理解可能であり、十分信頼に足る技術、またはそれに関する研究のことを指します。

たとえば医療業界のように、診断の理由を患者さんに説明しなけらばならない場合には、説明可能で解釈性の高いモデルが必要です。このような業界にもAIの導入が進み始めている近年、説明可能なAIの必要性も増してきています。

そんななか、2019年11月21日にGoogleも「Explainable AI(外部サイト)」というツールを発表しました。そこで、本稿ではそもそも説明可能なAIとは何なのかを概観した後、GoogleのExplainable AIに触れながら、Googleがどのように説明可能なAIを実現しようとしているのか見ていきたいと思います。

説明可能なAIとは

近年AIが注目されるようになった要因の一ひとつとして、ディープラーニングの隆盛が挙げられます。

ただし、ディープラーニングは非常に強力な一方、モデルがブラックボックスになってしまうという問題点があります。つまり、AIの予測結果がどのような計算過程を経て得られたものなのかわからないため、精度が高かったとしても、その予測の根拠がわからなくなってしまうのです。

Photo by LinkedIn Sales Navigator on Unsplash

とくにモデルのブラックボックス化が問題視される例としては、医療業界や金融業界などが挙げられます。医療業界では「なぜAIがそのような診断を下したのか」を患者さんに説明できなければ、診断にAIを採用することは困難です。また、AIが間違った判定を下した場合に、なぜ間違ったのかを検証することができません。

このような背景があり、説明可能なAIに注目が集まっています。実際、権威あるデータマイニングの学会として有名なKDDの昨年度の発表のひとつに、説明可能なAIをテーマにしたものがありました。また、GoogleのExplainable AIのみならず、富士通や日立も説明可能なAIに関するサービスを発表しています。

説明可能なAIを実現するための手法もさまざまなものが開発されています。たとえば入力の属性に注目した「LIME」「SHAP」「Integrated Gradient」、モデルが注目する概念をテストするような「TCAV」、個々の学習データの有無や、その摂動がモデルとその予測結果にどのように影響を与えるかを計るための「Influence Functions」などが挙げられます。

GoogleのExplainable AIでは「Feature Attribution」という値に注目して説明可能なAIを実現しようとしています。Feature Attributionsの詳細については後述します。

Googleが発表したツール「Explainable AI」

2019年11月21日にGoogleが発表したExplainable AI。これはGoogleが提供している「AutoML Tables」と「Cloud AI Platform」上の機械学習モデルに対して利用できるものです。

Googleの「Explainable AI」。サイトより編集部キャプチャ

Googleによれば、Explainable AIを用いると、どの特徴がモデルの予測結果にどれだけ貢献しているかを知ることができます。

使用する前には「Google Cloud Platform」のプロジェクトの作成とAPIの有効化、学習済みモデルを保存する「Google Cloud Strage」の準備が必要ですが、一度準備ができれば基本的にはどのようなモデルに対しても予測結果を評価することができるようになります。また、使用すること自体に特別な料金は発生しません。ただし、Cloud AI Platformの使用時間が増加することに伴って全体の使用料金が増加することはあります。

また、予測結果を評価することで、以下のように役立てることができます。

  • モデルのデバッグ
    モデルが明らかに異常な挙動をしているとき、たとえば不自然に精度が高すぎる場合を考えましょう。Explainable AIを用いてモデルが注目している部分を可視化すると、テスト対象がアノテーションされたような画像に対して予測していたので精度が高かった、というようなミスを発見することができます。

  • モデルの最適化
    モデルがどの特徴量を重視しているかを特定して、重要視されていない特徴を除くことで、予測精度を挙げられる可能性があります。

次章以降で、実際にGoogleのExplainable AIでモデルの予測結果評価に用いられているFeature Attributionについて説明していきたいと思います。

モデルの予測結果を評価する「Feature Attribution」

GoogleのExplainable AIでは、Feature Attributionという値によってモデルの予測結果を評価します。

Feature Attributionの計算方法には「Integrated Gradients」と「Sampled Shapley」があります。Feature AttributionはSharpley値という値を上記の手法を用いて計算したものになります。Shapley値とは、ある特徴量がどれだけモデルの予測に貢献したかを示す値になります。

Integarated Gradientsはbaseline(画像であれば画素値がすべて0の画像、テキストであればすべて0のembeddingなど)から入力までの勾配を積分することで得られます。なので、ニューラルネットのような微分可能なモデルや巨大な特徴量空間を持ったモデルに対して使用することが推奨されています。

Sampled Shapleyは真のShapley値の近似値になります。Sampled Shapleyは、アンサンブルツリーのような微分できないモデルに使用することが推奨されています。GoogleのExplainable AIの機能を用いることで、これらの値を計算することができます。

それでは、実際にExplainable AIのチュートリアルを実行してFeature Attributionを見ていきましょう。

Explainable AIの実行例

GoogleのExplainable AIにはチュートリアルが用意されており、Collaboratoryの形式で配布されているので、簡単に実行することができます。チュートリアルにはテーブルデータと画像データ用があります。

まず、テーブルデータ用のチュートリアルを実行します。データセットとして、ロンドンのレンタサイクルに関するデータとアメリカ海洋大気庁の気象データが用意されており、そのうちいくつかの変数を用いて、どれくらいの時間自転車が使用されたかを予測するモデルを作成することがこのチュートリアルの目的になります。その過程で、Feature Attributionを計算します。

下図がFeature Attributionを計算した結果になります。値の正負、大小によって、ある変数がモデルの予測に寄与しているか、していないかを評価することができます。

テーブルデータに対するFeatureAttributionの計算例

続いて、画像データに対するチュートリアルを実行してみます。用意されたデータセットは5種類の花の画像で、チュートリアル内容は花の画像の分類問題になります。予測モデルを作成したのち、画像に対してFeature Attributionを計算すると、予測対象の画像にモデルの予測にもっとも貢献した画素のトップ60%を表示することができます。

下の画像がFeature Attributionを画像に重ね合わせたもので、緑色に塗られた部分がこの画像をあるクラスと分類するのに貢献したトップ60%の画素ということになります。

画像に対するFeatureAttibutionの例

Explainable AIのメリット・デメリット

ここまででチュートリアルを実行し、Feature Attributionがどのように表現されるかを見てきました。そこで、簡単に私が感じたExplainable AIの主要な長短についてまとめたいと思います。

メリット:重要な特徴量を一見して評価することができる

ここまでチュートリアルで見てきたように、モデルの予測にどの特徴量が大きく寄与しているのかを可視化できるため、直感的にどの特徴量が重要なのかを一見して判断することができます。

テーブルデータであればどの特徴量がモデルの予測に寄与するかを見ることで特徴量選択に使えるかもしれませんし、画像データであればモデルが重要視した部分を見ることで、そのモデルが本当に意味のある部分に注目しているかどうかも確認できるかもしれません。

デメリット:Feature Attributionは必ずしもモデルの計算結果を反映するものではない

Integrated GradientsもSampled Shapleyもどちらもモデルの計算結果を近似して得られるものです。

なので、基本的にブラックボックスであるDNNなどを用いると、Feature Attributionはモデルの計算結果を反映しているとは限らず、またモデルがどのようにして計算しているかまではわかりません。

つまり、たとえば画像に対してFeature Attributionを用いてモデルが重要視した部分はわかりますが、なぜそこを重要視したのか、どのような計算をして重要視したのかまではわかりません。つまり、モデルは未だブラックボックスのままであるということです。

最後に

ここまでGoogleのExplainable AIについて述べてきました。

メリット・デメリットの項において書いたように、基本的にモデルにブラックボックスであるものを用いると、計算過程は未だブラックボックスであったり、Googleがドキュメントで“Limitations of AI Explanation”として述べているようにFeature Attributionはある特徴が予測結果にどれだけ影響を及ぼすかを表すのみで、モデルのふるまいを表すものでは無かったりといった問題はあります。

それでも、簡単に計算結果を近似値で評価できるのは非常に使い勝手がいいと思います。上記の点は「問題」であるとみなすよりも、そのような「特徴」を持った機能であるとして、GoogleのExplainable AIをうまく使っていければいいのではないでしょうか。

(執筆・宇佐見一平、編集・高島圭介)