26. 【SSII2020 チュートリアル】 原聡
重要特徴の提示
【欲しい追加情報】
• 予測においてモデルが注目した特徴
代表的研究
n Why Should I Trust You?: Explaining the Predictions of
Any Classifier, KDD'16 [Python実装 LIME; R実装 LIME]
n A Unified Approach to Interpreting Model Predictions,
NIPS'17 [Python実装 SHAP]
n Anchors: High-Precision Model-Agnostic Explanations,
AAAI'18 [Python実装 Anchor]
26
第二部:代表的研究
27. 【SSII2020 チュートリアル】 原聡
LIMEによる説明
n Why Should I Trust You?: Explaining the Predictions of
Any Classifier, KDD'16 [Python実装 LIME; R実装 LIME]
• どの特徴が予測に重要だったかを提示する。
• モデルを説明対象データの周辺で線形モデルで近似する。
- 線形モデルの係数の大小で、各特徴の重要度合いを測る。
27
第二部:代表的研究
Why Should I Trust You?: Explaining the Predictions of Any Classifierより引用
30. 【SSII2020 チュートリアル】 原聡
LIMEの基本アイディア
n データの機械表現!に対応する可読表現を!′とする。
• LIMEでは可読表現!′はバイナリ特徴!# ∈ {0, 1}*とする。 +番
目の可読特徴!,
#
は、ある+番目のパターン(単語や画像の
パッチ)の有無を表現。
n モデル-(!)の複雑な識別境界を、説明対象データ!0の
周辺で線形関数で近似する。
• - ! ≈ 2 !# ≔ 40 + 46!# for !# ∈ NeighborOf(!0
#
)
• 4の要素4,の大小でもって、各可読特徴の予測への関連の
大きさを測る。
30
第二部:代表的研究
Why Should I Trust You?: Explaining the
Predictions of Any Classifierより引用
31. 【SSII2020 チュートリアル】 原聡
LIMEの計算方法
n モデル!(#)の複雑な識別境界を、説明対象データ#%の
周辺で線形関数で近似する。
• ! # ≈ ' #( ≔ *% + *,#( for #( ∈ NeighborOf(#%
(
)
n 係数*の推定
• min
:
∑ <,<> ∈? @AB
C ! C − ' C( E
s.t. * % ≤ G
- * %: 係数の非零要素の個数
- @AB
C : 点#%から見た重み
- H: データ点#%に微小ノイズをのせたデータの集合
31
第二部:代表的研究
32. 【SSII2020 チュートリアル】 原聡
LIMEの応用例
n 画像認識の説明
n モデルのデバッグ
• 狼 vs ハスキーの分類
• 狼画像として、雪背景
のもののみを使用。
→ LIMEにより、モデルが
雪を根拠に狼を認識
していることがわかる。
32
第二部:代表的研究
Why Should I Trust You?: Explaining the Predictions of Any Classifier より引用
33. 【SSII2020 チュートリアル】 原聡
画像における重要特徴の提示
【欲しい追加情報】
• 予測においてモデルが注目した特徴(画像領域)
n 代表的研究 [Python+Tensorflow実装 saliency; DeepExplain]
• Striving for Simplicity: The All Convolutional Net
(GuidedBackprop)
• On Pixel-Wise Explanations for Non-Linear Classifier
Decisions by Layer-Wise Relevance Propagation (Epsilon-
LRP)
• Axiomatic Attribution for Deep Networks (IntegratedGrad)
• SmoothGrad: Removing Noise by Adding Noise
(SmoothGrad)
• Learning Important Features Through Propagating Activation
Differences (DeepLIFT)
33
第二部:代表的研究
45. 【SSII2020 チュートリアル】 原聡
Influenceの応用
n Data Poisoning
• 指定したテストデータへの影響の強い学習データに敵対的ノ
イズをのせた、“敵対的”学習データを作る。
• “敵対的”学習データで学習したモデルは、指定したテスト
データで間違えるようになる。
45
第二部:代表的研究
Understanding Black-box Predictions via Influence Functions Explanations より引用
46. 【SSII2020 チュートリアル】 原聡
ProtoPNet: パッチを“埋め込んだ”モデル
n This Looks Like That: Deep Learning for Interpretable
Image Recognition, NeurIPS’19 [PyTorch実装 ProtoPNet]
n ProtoPNetによる説明
46
画像中の各部位が、既知の
学習データと類似しているの
で、この画像を「カケス」と認
識した。
This Looks Like That: Deep Learning for Interpretable Image Recognition より
第二部:代表的研究
60. 【SSII2020 チュートリアル】 原聡
近年の展開 – 説明の信頼性
n 説明への攻撃
• Interpretation of Neural Networks is
Fragile, AAAI’19
• Explanations can be manipulated and
geometry is to blame, NeurIPS’19
n 説明法の見直し
• Sanity Checks for Saliency Maps,
NeurIPS’18
n 説明の悪用
• Fairwashing: the risk of rationalization,
ICML’19 [Python実装 LaundryML] [発表資料]
60
第三部:近年の展開
説明そのものの
信頼性への疑問
説明の悪用の
可能性
[実装 InterpretationFragility]
61. 【SSII2020 チュートリアル】 原聡
説明への敵対的攻撃
n Saliency Map(画像の勾配ハイライト)による説明は、敵対
的攻撃に脆弱であることを指摘。
• Interpretation of Neural Networks is Fragile, AAAI’19
61
Interpretation of Neural Networks Is Fragile Explanations より引用
画像に微小ノイズをのせることで、分類結果を変えることなく、
“説明”のハイライト箇所を変えることができる。
第三部:近年の展開
[実装 InterpretationFragility]
62. 【SSII2020 チュートリアル】 原聡
説明への敵対的攻撃
n Saliency Mapの脆弱性はReLU由来であることを指摘。
softplusへと活性化関数を置き換えることで頑健化できる。
• Explanations can be manipulated and geometry is to blame,
NeurIPS’19
62Explanations can be manipulated and geometry is to blame より引用
ReLUを使うと識別境界面がガタガタ
になる。勾配もガタガタで、入力が少
し変わるだけで勾配が大きく変わる。
ReLUをsoftplusに置き換えると識別境
界面が滑らかになる。入力の微小変
化に対して勾配が頑健になる。
第三部:近年の展開
63. 【SSII2020 チュートリアル】 原聡
近年の展開 – 説明の信頼性
n 説明への攻撃
• Interpretation of Neural Networks is
Fragile, AAAI’19
• Explanations can be manipulated and
geometry is to blame, NeurIPS’19
n 説明法の見直し
• Sanity Checks for Saliency Maps,
NeurIPS’18
n 説明の悪用
• Fairwashing: the risk of rationalization,
ICML’19 [Python実装 LaundryML] [発表資料]
63
第三部:近年の展開
説明そのものの
信頼性への疑問
説明の悪用の
可能性
[実装 InterpretationFragility]
64. 【SSII2020 チュートリアル】 原聡
説明法の見直し
n 画像認識モデルの注目領域を抽出する「ハイライト法」
の良し悪しの評価方法を提案。
• Sanity Checks for Saliency Maps, NeurIPS’18
n 疑問: どのハイライト法を使うのが良いのか?
64
「注目領域」がハイラ
イト法の数だけある。
どれが正しい?
みんな正しい?
第三部:近年の展開
65. 【SSII2020 チュートリアル】 原聡
評価法: Model Parameter Randomization Test
n アイディア
• モデルのパラメータの一部をランダム値に置き換えた
“ダメなモデル”を作る。
• “ダメなモデル”からは“ダメなハイライト”しか出ないはず。
n 方法
• 元のモデルと“ダメなモデル”とで、ハイライト結果を比較する。
- 「変化大のハイライト法」は、良い/ダメなモデルの差に敏感
→ モデルの情報をきちんと読み取れる“良い手法”
- 「変化小のハイライト法」は、良い/ダメなモデルの差がわからない
→ モデルの情報を読み取れない“悪い手法”
65
第三部:近年の展開
66. 【SSII2020 チュートリアル】 原聡
Model Parameter Randomization Testの例
n 出力側から一個ずつ順番に重みをランダム化していく。
• Guided Backprop、Guided GradCAMはランダム化された
“ダメなモデル”でもハイライトに変化がない。
→ これらはモデルを見ていない悪い手法。
66
Sanity Checks for Saliency Maps より引用
第三部:近年の展開
68. 【SSII2020 チュートリアル】 原聡
近年の展開 – 説明の信頼性
n 説明への攻撃
• Interpretation of Neural Networks is
Fragile, AAAI’19
• Explanations can be manipulated and
geometry is to blame, NeurIPS’19
n 説明法の見直し
• Sanity Checks for Saliency Maps,
NeurIPS’18
n 説明の悪用
• Fairwashing: the risk of rationalization,
ICML’19 [Python実装 LaundryML] [発表資料]
68
第三部:近年の展開
説明そのものの
信頼性への疑問
説明の悪用の
可能性
[実装 InterpretationFragility]
78. 【SSII2020 チュートリアル】 原聡
結果例
n Adultデータでの結果
• 説明における各特徴の重要度をFairMLツールにより計測
78
正直な説明 偽りの説明
gender
gender
第三部:近年の展開
If
else if
else if
else if
else if
else low-income
then high-income
then low-income
then low-income
then low-income
then high-income
capital gain > 7056
marital = single
education = HS-grad
occupation = other
occupation = white-colloar
偽りの説明
【補足】
この実験での「欲しい追加情報」は
「モデルの(近似的な)判断ルール」。
【SSII2020 チュートリアル】 原聡