logo logo

February 16, 2019 02:52

論文要約:“Why Should I Trust You?” Explaining the Predictions of Any Classifier

動機

  • 本論文で扱っているLIMEは、あらゆる機械学習モデルで説明性モデルを構築するためのアルゴリズムとして注目されている
  • モデルに説明性を付与する話ではさらに最近のSHAP論文が注目されている。LIMEはこの論文中で取り上げられているAdditive Feature Attributionsのインスタンスであることがわかり、さらに統一的な検知からこの種のモデルが議論されている。
  • 実装も使いやすいので、詳細に議論をおってみたいと思った。

要約

  • LIMEはディープラーニングやその他任意の線形・非線形アルゴリズムを含めた任意の分類器に対し、ある特定のデータサンプルの分類結果に対し、どの特徴量が有効だったかを出力する。
  • 基本アイデアはサンプル$x$の近傍点でランダムサンプリングを行い、元のモデルの出力結果を頼りに局所的な線形分類器を構築するというもの。論文中より抜き出した以下の図が概略をよく捉えている。

LIME イメージ図

本論&主要結果

アルゴリズムの主要な流れは次の通り

1. 説明可能表現の定義

このステップでは元のモデルの入力空間 $x \in \mathbb{R}^{d} \equiv X$ とは別に、人間が理解しやすい説明可能表現空間$X^{'}$を考える。これは課題依存なので、アルゴリズムの設計者が場合によっては考える必要がある。論文中にもあるように典型的にはバイナリーベクトル空間($x{'} \in \{0, 1\}^{d^{'}}$)とするなどが考えられる。 この$X^{'}$は、元のデータ空間$X$に対して、モデル$f$が行った分類に対して、その根拠がどこにあるかを可視化できるような空間として設計者が適宜考える。また、入力サンプル$x$を固定する毎に、$X^{'}$の空間の任意の元は、$X$空間の元に移す写像$h_{x}(x^{'})$を定義できることを前提としている。実例を踏まえるとわかりやすい。

  • テキスト分類:元のモデルはテキストを分類するための特徴量$X$を、文章中の各単語の出現頻度(a.k.a. term frequency)で定義していたとする。モデルを分析するデータサイエンティストは単語の出現頻度よりも、どの単語に注目したのかさえ分かれば良いし、その方が説明性として所望のものに近いと思ったとする。そこである単語の有無のみをベクターとしたbag of wordsを説明表現空間$X^{'}$として採用することが考えられる。この時にあるサンプル$x$に応じて、$X^{'}$と$X$を対応づける写像$h_{x}(x^{'}):X^{'} \rightarrow X$(ルール)が必要で、これが局所性を計算する際に重要になる。この場合であればbag of wordsで成分が1の場合は元の出現頻度を回復させ、0の場合はそのまま(つまり情報を圧縮)とするような写像を定義すれば良い。

  • 画像分類:元のモデル縦横と3色3チャンネルの画像データをCNNで分類しているようなケース。この場合は説明表現空間として、連続した部分パッチ部分が1で、それ以外が0となっているようなバイナリーベクトル空間が考えられる。説明表現空間の1成分は元の画像の対応ピクセルの情報を回復し、0の場合は適当な背景色を定めて落とすような写像が$h _{x}(x^{'})$として適切であろう。(論文中でも挙げられている例)

2. サンプリングと局所的な線形回帰

LIMEでは説明表現空間で、元の空間の1サンプル$x$に対応する$x^{'}$を求めた後で、その近傍でランダムサンプリングを行う。サンプリングの方法は如何様にもできそうだが、論文のアルゴリズムでは$x^{'}$の1成分をランダムに潰した$N$個のサンプルを線形回帰のためのサンプルとして抽出している。

次に、線形回帰の際に目的とする損失関数をデザインする。この際、説明したいサンプル$x$の局所的な情報を重視しないと、$x$近傍の線形回帰の忠実性が損なわれてしまう。また線形回帰のパラメータが多過ぎれば、あっちもこっちも注目すべきとなってしまい、あまり役立たない。そこで損失関数にこれらの目的を反映させる。

  • まずは局所性の高いサンプルを重視するため、カーネル関数$\pi _{x}(z^{'})$を定義しておく。論文中の例としては、距離を$D(x, z^{'})$で測るとした際、$\pi _{x}(z^{'}) = \exp{(-D(x, z^{'})^{2}/\sigma^{2})}$などと、exponential kernelを採用するとある。1.で定義した$h _{x}$によって、説明表現空間の元が、元の空間に翻訳されることで距離計算が可能になっている。
  • また線形回帰のパラーメータに制限を加え、線形回帰関数の要約度を制御する。通常のL2正則化を採用しても良いが、本論の目的から、L1正則化を採用している。線形モデルを$g$の複雑度$\Omega(g)$を0以外のパラメータの個数とすることが提案されている。
  • 最終的な損失関数:$\mathcal{L}(f, g, \pi _{x}) = \sum _{z, z^{'} \in \mathcal{Z}}\pi _{x}(z)(f(z) - g(z^{'}))^{2} + \Omega(g)$

こうして、損失関数を最適化する線形モデル$g(z^{'}) = w \cdot z^{'}$が定まったならば、ベクトル$w$の各成分が対応する成分の重要度としてそのまま解釈できる。

まとめ

  • 任意のモデルに対して、あるサンプルに対する局所的線形モデルを構築することで、あるサンプルの判断根拠としてどのパラメータが効いているかを見積もることができる
  • 結局のところ説明性というのは人間の都合に合わせた解釈可能性であり、この結果を信用するかどうかも人間次第(後述のカーネル幅に応じた解釈スケールの任意性という問題もある)
  • 本論文では実際にAmazon Mechanical Turkで人間の被験者を集めて、説明性の蓋然性を評価している。
  • 画像分類のケースなどでは、Fig.11にあるようにモデル改善の一助として有効性が高そう。誤った箇所が判ればどのように過学習しているのか、ひいてはどんなデータを集めれば良いかなどの示唆が得られるかもしれない。

関連情報

christophm.github.io

Defining a meaningful neighborhood around a point is difficult. LIME currently uses an exponential smoothing kernel to define the neighborhood. A smoothing kernel is a function that takes two data instances and returns a proximity measure. The kernel width determines how large the neighborhood is: A small kernel width means that an instance must be very close to influence the local model, a larger kernel width means that instances that are farther away also influence the model. If you look at LIME's Python implementation (file lime/lime_tabular.py) you will see that it uses an exponential smoothing kernel (on the normalized data) and the kernel width is 0.75 times the square root of the number of columns of the training data. It looks like an innocent line of code, but it is like an elephant sitting in your living room next to the good porcelain you got from your grandparents. The big problem is that we do not have a good way to find the best kernel or width. And where does the 0.75 even come from?

あるサンプルの局所領域近傍のモデル関数が複雑に入り組んでいた場合、それを拡大してみるのか縮小してみるのかによって、重要なパラメータは一気に変わってくる可能性がある。適切なパラメータを決めるための方策も存在しないので、あくまで利用者が納得できるかどうかなどで、こうしたパラメータを調整しないと意味のない結果を吐く可能性がある。

  • github : pipでインストールできるし簡単に使用できるが、上のような設定パラメータに注意しながら使わないといけない。