現場で使える機械学習活用 ~その④説明性があるAI (XAI) とその活用~
はじめに
このブログは、「現場で使える機械学習活用」をテーマにした4部作のうち4作目です。これらの4部作では「いかにして機械学習を使って現実世界の問題を解決するか」を軸に、陥りやすいポイントやコツを解説していきます。
第4回目は説明性があるAI ( Explanable AI : XAI) とその活用を見ていきます。
説明性があるAI (XAI) とその活用 ←イマココ
なぜ説明性が求められるのか?
まず、なぜAIに説明性が求められるのかを考えてみましょう。「機械学習(特に深層学習)はブラックボックスだから…」「中身がよくわからない…」ということをよく耳にします。つまり「中身が分からないものを分からないまま使いたくない」という動機があり、それを少しでも緩和しようということで、AIに対する説明性に需要があるのです。
この「説明性がない」という問題は、現実世界で機械学習を活用していく上で、大きなハードルになり得ます。AIは神ではないですし、AI狂信者でもない限りAIの「御信託」を無批判に受け入れるには無理があります。現実に、AIはざまざまな間違いを起こします。それが間違いかどうかを人間が判断する補助となるのが説明性です。
説明性のある AI (Explainable AI) とは?
説明性があるAIとは、AIが人間が理解できる言葉でAIの判断根拠を説明するものではありません。言葉で説明する代わりに直感的理解を助ける「追加情報を出力するAI」です (原., 2020) 。
よって、どのような追加情報を使うかは人間が決める必要があります。例えば、画像が異常であることを示すために、深層学習モデルの中間層情報をそのまま追加情報として示されても、直感的理解を助けることはできません。また、基本的に追加情報を別途計算させる必要があるため、計算コストの問題も発生します。そのことを考慮に入れた上で、何を追加情報として算出させるかを考えなければなりません。理解を助ける追加情報としては、判断根拠の追加情報、不確実性の追加情報などがあり、以降の節でそれを説明します。
局所的説明性と大局的説明性
XAIの代表例である判断根拠の説明性 (を出力する手法) として、「局所的説明性」と「大局的説明性」があります。局所的説明性は各々のデータを判断した根拠を可視化する手法です。大局的説明性はモデルの挙動、つまり学習データ全体に対するモデルの解釈を可視化する手法です (Molnar., 2023) 。
局所的説明性
局所的な判断根拠の説明性では、各々のデータに対する判断根拠を可視化します。深層学習系では、Grad-CAM (Selvaraju et al., 2016) 等ヒートマップを使ったものが良く使われます。
Grad-CAM は、あるカテゴリに対する特徴量マップの貢献度の重み付き平均をとる手法です。各特徴量マップはそれに付随するフィルターに反応した箇所をヒートマップで表示したものなので、位置情報をもっています。各特徴量マップの変化によってあるカテゴリの確信度がどれくらい敏感に変動するかを、あるカテゴリの確信度に対する特徴量マップの微分値で表現し、この微分値の重み付き平均をとったものが、そのカテゴリの判断根拠になるという仕組みです(下図左)。下図右では、犬と猫両方が写った画像にGrad-CAMを適用した例で、左が猫カテゴリへの貢献部分、右が犬カテゴリへの貢献部分で、上手く判断根拠を可視化できています。
他にも SHAP (SHapley Additive exPlanations) というゲーム理論に由来する概念であるShapley値に基づいた可視化方法もあります。簡単に説明すると、ゲーム理論に基づいてモデルの予測結果を再現する「ゲーム」の、各特徴量(プレーヤー) の貢献度を定量化する手法です。下図は、SHAPを用いて癌リスクモデルの判断根拠を、2つのデータに対して可視化した例です。癌リスクが高い (higher) と低い (lower) の二値分類結果の判断根拠を、各説明変数の貢献度として定量化しています。例えば図の下は、癌リスク高(higher)へ貢献した説明変数(赤色)が多く、中でも喫煙年数(smoke years)と年齢(age)は、癌リスク高へ分類した大きな根拠となっています。
大局的説明性
大域的な判断根拠の説明性は、モデル全体の挙動を可視化するもので、例えば学習した機械学習モデル自体が何の特徴量を重視して判断しているかを可視化します。一番簡単な例としては、下記式のような線形モデルの各特徴量の係数を大域的な判断根拠として解釈できます。
このモデルを、3つの特徴量 X1(値段)、X2(味)、X3(天気)から、パンの売り上げ個数Yを予測する線形モデルだとしましょう。3つの特徴量X1(値段)、X2(味)、X3(天気)の順に、売り上げ数予測値(Y)への影響が大きくなっているのがわかります。
決定木でも特徴量重要度という数値を算出することができ、これも大域的説明性の一種です。特徴量重要度は「その特徴量で分類すると、どれだけ上手く分類できるか」と解釈できるジニ不純度という指標をもとに計算します。この手法でも特徴量ごとの重要度を算出することができます(下図)。Kaggleで上位入賞者がよく使うGBDT系ライブラリのLightGBMでも、特徴量重要度として大域的説明性を出すことが可能です。
また、前節で紹介したSHAPでも、データセット全体で局所的説明性の貢献度をみることで、大域的説明性である特徴量重要度を算出できます。
これらの特徴量をつかった大局的説明性は、テーブルデータのように各データで明確に特徴量がある場合にしか使えないことに注意してください。例えば、画像データで同じようなことを実施すると、各データごとに保持する意味情報やその位置がバラバラであるため直接適用できません。
不確実性の可視化
予測がどの程度自信があるのかというのは重要な情報ですが、多くの機械学習手法では不確実性を表すことはできません。例えば線形回帰モデルだと何らか値を出力してくれますが、それがどの程度正しそうなのかという不確実性の情報は算出してくれません。
まず、不確実性は認識的(epistemic)不確実性と偶発的(aleatoric)不確実性の2種類あることに注意します(下図)。前者は学習データセットには含まれないデータ分布による不確実性で、後者は学習データ分布内のデータ不足やばらつきによる不確実性です (Moloud et al., 2020) 。前者は学習データをそのデータ分布内でいくらデータを増やしても不確実性は減りませんが、後者は学習データ分布内に含まれているので、学習データを分布そのままに数増やしていくことで不確実性を下げることができます。
実応用上、最も簡単で単純な不確実性の表し方は、複数のモデルを使ったアンサンブル予測です。複数モデル出力のばらつきを不確実性だと解釈し、それを統合することで不確実性付きの予測とします。深層学習だと、確率的に使用しないニューロンや結合を確率的に生成するドロップアウトを用いて、1つのモデルだけでアンサンブル推論を実現できます (モンテカルロドロップアウト, Gal et al., 2015)。
説明性の活用
モデルやデータセットに内在する偏見を可視化する
説明性の活用例として、モデルやデータセットに存在する偏見を可視化してみます。
大規模な自然言語モデルGPT-3 (Brown et al., 2020) では、著者らがどのような偏見が含まれているかを、共起表現や、同じ文章で調べたい単語を入れ替えるなどの方法で調査しており、宗教、人種、性的な偏見が含まれていることを確認しています(下表)。これらの手法は、モデルの挙動を可視化しているため、上で説明した大域的説明性の1種といえます。
画像データセットでも偏見を調べることが可能です (Wang et al., 2020)。画像のラベルや物体との距離を組み合わせて、性別や地域などでどのような偏りがあるかを調べることができます。下にオルガンが映った画像に潜在している性差を可視化した例を示します。
モデルの能力を確認する
第2回の記事で見たように、局所的説明性や大域的説明性を使って、モデルが獲得した能力を確認し、「何を予測できていて、何を予測できていないのか」を可視化することができます。モデルの学習が意図通りになっている結果 (下図左) ばかりだと良いのですが、変な箇所に着目していたりするデータ (下図右) もあるかもしれません。
このような場合は、仮に予測が正しくても短絡学習 (shortcut learning) があったり、正しい予測が難しい高難度サンプルであるかもしれません。可視化をすることで、モデルが解釈できている部分・できていない部分を知ることができ、新たな改善につながります。
説明性を運用の手助けにする
実運用への導入判断で、モデルの性能を示す以外に判断根拠を示すことで、導入への意思決定を促せるかもしれません。モデルの精度だけ示されても不安ですが、判断根拠の可視化でモデルが必要な部分に注目できていることを示したり、極端なケースで不確実性が大きくなることを示せれば、モデルがどのような時に正常に動作するのかを示すこともできます。(下図)
また、実運用中にも判断根拠の可視化が役にたつ場合があります。例えば、第3回の記事の仮想プロジェクトでおこなったように、「過去の売り上げ重視し予測をした」という判断根拠の情報があり、モデルが注目していない項目で大きな影響がある事象が起こると知っていれば、それを考慮した最終判断を下すことが可能です。また、不確実性(変動範囲)も同時に示してあげることで値の修正幅の目安になります (下図)。
注意:相関と因果関係は異なる
よくある間違いで「特徴量重要度が高いから、その特徴量と目的変数と必ず因果関係がある」という勘違いをする方がたまにいます。例えば「“値段”特徴量の重要度が高いから、客は値段の高低が購入の動機になっている」という解釈です。確かにこの場合だと因果関係がありそうな気がしますが、常に特徴量重要度と因果関係が紐づけられるわけではありません。
例えば、「アイスクリームの売上」を特徴量にして、その日の気温を予測するモデルを作ると考えたとします。この場合、高い確率で「アイスクリームの売上」特徴量が大きな重要度をもつでしょう。では、「アイスクリームの売上」が高いから「気温が高く」なるのでしょうか。そんなわけはなく明らかに間違っています。このように特徴量重要度が高いからといって因果関係があるとは限りません。特徴量重要度は目的変数との一種の相関関係を示しているだけで、因果関係は別に考慮しなくてはなりません(下図)。
終わりに
第4回目では、XAIについて説明しました。XAIは「AIはブラックボックスだから…」という批判に対抗するための強力な手段です。しかし、見てきたように何を「説明」するかは人間が決めなければならず、モデルの挙動全てを説明できるような万能な手段はまだ開発されていません。強力で巨大なモデルほど全ての挙動を網羅することは難しいため、ここで紹介した技術を活用しながら上手く付き合っていく方法を模索する必要がありそうです。
この4部作のブログでは、「現場で使える機械学習活用」をテーマにプロジェクトの進め方、プロジェクトで頻出する問題とその対策、XAIとその活用を見ていきました。機械学習はこれからの産業で必須の技術であり、関わる機会も多くなっていくことと思います。これらの記事が少しでも役にたつならば幸いです。
このブログのように、「いかにして機械学習を使って現実世界の問題を解決するか」を解説した本を書いています。ここで書いたことより詳しく書いていますので、気になった方はぜひ手に取ってみてください。
記事を書くために、多くの調査や論文の読み込みを行っております。情報発信を継続していくためにも、サポートをいただけると非常に嬉しいです。