はじめに
機械学習モデルでは、「予測精度が高いこと」が重要です。
しかし、精度が高いだけで本当に信頼できるとは限りません。
なぜなら、モデルが「正解している理由」が間違っている可能性があるからです。
例えば画像分類で、犬を分類しているように見えて、実際には背景の芝生や首輪だけを見て判断しているかもしれません。
医療データであれば、本来見るべき病状ではなく、データ収集時の偏りに依存して判断している可能性もあります。
今回読む論文は、次のような問題意識を持っています。
モデルが正しい予測をするだけでなく、正しい理由で予測できるように学習させたい。
この考え方を、論文では Right for the Right Reasons と呼んでいます。
対象論文:
- Andrew Slavin Ross, Michael C. Hughes, Finale Doshi-Velez
- Right for the Right Reasons: Training Differentiable Models by Constraining their Explanations
- IJCAI 2017
この論文の一言まとめ
この論文は、モデルの説明を学習時に制約することで、より妥当な判断根拠を持つモデルを作る方法を提案しています。
具体的には、ニューラルネットワークなどの微分可能なモデルに対して、入力勾配を説明として使います。
入力勾配とは、入力の各特徴量を少し変えたときに、モデルの出力がどれくらい変わるかを表すものです。
つまり、ある特徴量に対する勾配が大きいなら、モデルはその特徴量に強く依存していると考えられます。
この論文では、
- モデルが予測を当てるための通常の損失
- モデルが間違った特徴量に依存しないための説明制約
- 通常の重み正則化
を組み合わせて学習します。
背景:正解していても、理由が間違っていることがある
通常の教師あり学習では、モデルの出力が正解ラベルに近づくように学習します。
例えば、画像分類なら、
入力画像 → モデル → 予測ラベル
という流れで、予測ラベルが正解に近づくようにパラメータを更新します。
しかし、このときモデルが「どこを見て判断したか」は、基本的には直接制御されません。
そのため、学習データに偶然含まれる相関を使ってしまうことがあります。
例として、次のようなケースを考えます。
訓練データ:
犬の画像には芝生の背景が多い
猫の画像には室内の背景が多い
このとき、モデルは本来見るべき犬や猫の形ではなく、背景を使って分類してしまうかもしれません。
訓練データや似たようなテストデータでは高精度が出るかもしれません。
しかし、背景を変えると一気に性能が落ちる可能性があります。
これは「正解しているが、正しい理由ではない」状態です。
入力勾配による説明
この論文では、モデルの説明として 入力勾配 を使います。
入力勾配は、入力 $x$ に対して出力がどれくらい敏感に変化するかを表します。
例えば、ある画像の特定のピクセルを少し変えたときに出力が大きく変わるなら、そのピクセルはモデルの判断に強く影響していると考えられます。
直感的には次のようになります。
勾配が大きい特徴量
→ その特徴量を変えると予測が変わりやすい
→ モデルがその特徴量を重視している可能性が高い
この性質を使うことで、モデルがどの特徴に依存しているかを調べることができます。
LIMEのような説明手法では、入力を少しずつ変化させて、その変化に対する予測の違いから局所的な説明モデルを作ります。
一方、入力勾配は微分可能なモデルであれば直接計算できるため、より高速に説明を得られます。
提案手法:説明を損失関数に入れる
この論文の重要なアイデアは、説明を「確認するだけ」で終わらせないことです。
多くのXAI手法は、学習済みモデルに対して、
このモデルはここを見ています
と説明します。
しかし、もし説明を見て「そこを見てほしくない」と分かった場合、モデルをどう直すかが問題になります。
この論文では、モデルが見てはいけない特徴量に依存しないように、学習時の損失関数にペナルティを追加します。
大まかには、損失関数は次のような形になります。
全体の損失 = 予測誤差 + 説明に対するペナルティ + 通常の正則化
ここで説明に対するペナルティは、
人間が「使ってほしくない」と指定した特徴量に対して、
入力勾配が大きくならないようにする
というものです。
つまり、モデルがその特徴量に依存しようとすると損失が大きくなります。
アノテーション行列 A の意味
論文では、特徴量ごとに「この特徴量を使ってほしくない」という情報を表すために、アノテーション行列 $A$ を使います。
$A$ は、各データ点・各特徴量について、そこをモデルが使うべきでないかを表します。
例えば、画像分類で背景を使ってほしくないなら、背景領域に対応する部分を 1 にします。
A = 1:この特徴量は使ってほしくない
A = 0:特に制約しない
そして、$A = 1$ の場所で入力勾配が大きくならないようにペナルティをかけます。
重要なのは、特徴量を完全に削除するのではなく、あくまで「その特徴量に依存しにくくする」という点です。
これは、アノテーションが完全に正しいとは限らない場合にも扱いやすい方法です。
通常の特徴量削除との違い
一見すると、「使ってほしくない特徴量があるなら、最初から消せばいいのでは?」と思うかもしれません。
しかし、この論文の方法は特徴量を削除するのではなく、その特徴量への依存を抑える方法です。
この違いは重要です。
特徴量を削除してしまうと、その情報は完全に失われます。
一方、ペナルティとして扱えば、モデルは基本的にはその特徴量を使わない方向に学習しますが、必要な場合にはある程度使う余地が残ります。
つまり、ハードな制約ではなく、ソフトな制約として扱っていると言えます。
Find-Another-Explanation:別の説明を探す
この論文では、人間が「どの特徴を使ってはいけないか」を常に指定できるとは限らないことも考えています。
そこで提案されているのが、Find-Another-Explanation という方法です。
これは、ざっくり言うと次の流れです。
- 普通にモデルを学習する
- 入力勾配を見て、モデルが重視している特徴量を見つける
- 次のモデルでは、その特徴量を使いにくくする
- もう一度学習する
- これを繰り返す
この方法により、同じような精度を持ちながら、異なる理由で予測する複数のモデルを得ることができます。
これはかなり面白い考え方です。
普通の学習では、最初に見つかった高精度な解に落ち着いてしまいます。
しかし、その解が人間にとって妥当な理由に基づいているとは限りません。
Find-Another-Explanationを使うと、
このモデルはこの特徴を見ている
別のモデルは別の特徴を見ている
というように、複数の判断根拠を比較できます。
最終的には、人間がそれらの説明を見て、どのモデルが一番妥当かを判断することができます。
実験1:Toy Color Dataset
論文では、まず単純な人工データで実験しています。
5×5の小さなカラー画像を使い、分類に使えるルールを2つ用意します。
例えば、
- 四隅のピクセルが同じ色か
- 上部中央のピクセル列が特定の条件を満たすか
といったルールです。
このデータでは、どちらのルールを使っても分類できます。
普通に学習すると、モデルは一方のルールを使うようになります。
しかし、そのルールに対して説明ペナルティをかけると、もう一方のルールを使うモデルに誘導できます。
これは、説明を制約することで、モデルの判断根拠そのものを変えられることを示しています。
実験2:Decoy MNIST
個人的に分かりやすいのが、Decoy MNISTの実験です。
MNISTは手書き数字分類のデータセットです。
この論文では、画像の隅に小さな「偽の手がかり」を追加します。
訓練データでは、その偽の手がかりがラベルと相関するように作られています。
しかし、テストデータではその関係がランダムになります。
つまり、訓練データだけを見ると、モデルは数字の形ではなく、画像の隅にある偽の手がかりを使っても高精度を出せてしまいます。
しかし、テストではその手がかりが役に立たないため、性能が下がります。
この状況で、偽の手がかりの領域を「使ってほしくない」と指定し、入力勾配にペナルティをかけます。
すると、モデルは偽の手がかりではなく、数字本体を見るようになり、テスト性能が改善します。
これは、XAIを単なる可視化ではなく、モデル改善に使えることを示す重要な例だと思います。
実験3:20 Newsgroups と Iris-Cancer
論文では、テキストデータや表形式データでも実験しています。
20 Newsgroupsでは、LIMEと入力勾配による説明を比較しています。
入力勾配はLIMEと似たような重要特徴を示しつつ、より高速に計算できることが示されています。
Iris-Cancerという合成データでは、IrisデータセットとBreast Cancer Wisconsinデータセットを結合し、モデルが本来望ましくない特徴に依存してしまう状況を作っています。
この場合も、説明に対する制約を加えることで、モデルが誤った特徴への依存を減らし、より汎化しやすくなることが示されています。
この論文の貢献
この論文の貢献は、大きく3つあると思います。
1. 入力勾配を説明として使い、LIMEと比較したこと
入力勾配は、モデルの出力に対する入力の影響を見るシンプルな方法です。
LIMEのようなサンプリングベースの方法と比べると、微分可能なモデルでは高速に計算できます。
論文では、入力勾配による説明がLIMEと大きく矛盾しないことを確認しています。
2. 説明を学習に組み込んだこと
この論文の一番重要な点は、説明を後から見るだけでなく、学習時の制約として使ったことです。
これにより、
この特徴を使ってほしくない
という人間の知識を、モデルの学習に反映できます。
3. アノテーションなしでも別の判断根拠を探せること
Find-Another-Explanationにより、人間が正しい理由を事前に指定できない場合でも、複数の判断根拠を持つモデルを探索できます。
これは、モデルの振る舞いを調査するための方法としても有用です。
この論文の限界
もちろん、この方法にも限界があります。
まず、入力勾配が常に人間にとって分かりやすい説明になるとは限りません。
画像のピクセルやテキストの単語のように、入力特徴が人間に解釈しやすい場合は使いやすいです。
しかし、word2vecの各次元や、中間特徴量のようなものに対する勾配は、人間には解釈しづらいです。
また、入力勾配は局所的な一次近似です。
そのため、モデルの複雑な非線形な振る舞いを完全に説明できるわけではありません。
さらに、「どの特徴を使ってほしくないか」を指定するためには、ドメイン知識やアノテーションが必要になる場合があります。
自分の研究への活かし方
この論文は、XAIをモデル改善に使う研究テーマとかなり相性が良いと感じました。
一般的なXAIでは、
モデルがどこを見ているかを可視化する
ところで終わることが多いです。
しかし、この論文ではさらに一歩進んで、
説明を使ってモデルの学習を変える
ことをしています。
例えば、画像分類でGrad-CAMを使って、モデルが背景を見て誤分類していることが分かったとします。
そのとき、背景領域への依存を減らすような制約を加えれば、モデルがより対象物本体を見るように学習できる可能性があります。
この論文では入力勾配を使っていますが、考え方としては、
説明を評価する
→ 悪い説明を見つける
→ 悪い説明に依存しないように学習する
という流れです。
これは、XAIを単なる説明手法ではなく、モデル改善のためのフィードバックとして使う方向性だと言えます。
まとめ
この論文は、モデルの予測精度だけでなく、予測の理由にも注目した研究です。
従来の機械学習では、正解ラベルに合っているかどうかが主な評価対象でした。
しかし、実際の応用では、モデルがどの特徴を使って判断しているかも重要です。
この論文では、入力勾配を説明として使い、望ましくない特徴量への依存を損失関数で抑えることで、より妥当な判断根拠を持つモデルを学習させています。
特に重要なのは、XAIを「説明するための技術」としてだけでなく、「モデルを改善するための技術」として使っている点です。
XAIを研究テーマにする場合、この論文はかなり参考になると思います。
参考文献
Andrew Slavin Ross, Michael C. Hughes, Finale Doshi-Velez.
Right for the Right Reasons: Training Differentiable Models by Constraining their Explanations.
Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI 2017.