人工智能学习

【李宏毅2020 ML/DL】P34 More about explainable AI | Attribution, Heatmap, explainable model

本文主要是介绍【李宏毅2020 ML/DL】P34 More about explainable AI | Attribution, Heatmap, explainable model,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes

本节内容综述
  1. 助教讲解,日期为4月6日,主讲人杨书文。
  2. 首先将背景,对之前内容复习。
  3. 第一部分,Attribution,首先是What and why attribution?
  4. 上节课老师讲过,Local gradient-based,存在一些局限性(如大象鼻子的例子)。在肉眼无法看出来的情况,加一些noise,会影响结果。因此引出SmoothGrad解决Noisy gradient,考虑到了增加噪音来训练。
  5. 接着,引出Global attribution来解决Saturation问题。介绍了Layer-wise relevance propagation(LRP)方法。
  6. 接着,进行Completeness的讨论。衡量变量变化的影响。考虑到了比如DeepLIFT和Integrated gradient方法。
  7. 进行了一个小结,见 Take-away message。现在做 attribution method 很多方法,可能画出来的图很好看,但是未必有意义。后来,有人提出 Sensitivity-n 来衡量你的方法好不好。还提及了 Occlusion-1 。
  8. 接下来进入 Probing 部分。先介绍了 BERT 的结构,作为背景知识。BERT的每一层做了不同的事;此外,研究者发现BERT可能有理解不到的东西。
  9. Heatmap部分。
  10. 最后的部分,讲解Create an explainable model。

 

文章目录

  • 本节内容综述
  • 小细节
      • What and why attribution?
      • SmoothGrad
      • Global attribution
      • Completeness
        • Flexible baseline: DeepLIFT
        • Flexible baseline: Integrated gradient
      • Take-away message
      • Sensitivity-n
        • Occlusion-1 / Leave one out
      • Probing
        • What does BERT might not learn?
          • Unsupervised constituency parsing
        • What is a good prob?
      • Heatmap
        • Activation map: CNN dissection
        • Attention map as explanation
      • Create an explainable model
        • Some difficulties in explaining CNN
        • Constraining activation map
        • Encoding prior
        • Adversarial training for encoding prior

 

小细节

What and why attribution?

What:

  • importance assignment for each input
  • How each INPUT influences OUTPUT in an end-to-end fashion

Why:

  • Know how model utilizes input to produce output
  • Useful for both customers and researchers

SmoothGrad

M ^ c ( x ) = 1 n ∑ 1 n M c ( x + N ( 0 , σ 2 ) ) \hat{M}_c(x) = \frac{1}{n}\sum_{1}^nM_c (x+\mathcal{N}(0, \sigma^2)) M^c​(x)=n1​1∑n​Mc​(x+N(0,σ2))


如上,在训练与计算时加一些噪声。

Global attribution


如上,对于一个局部的视野来讲, x 1 x_1 x1​的灵敏度是巨大的,为100, x 2 x_2 x2​则为10,引出其关注的是"Future Sensitivity";但是对于全局视野来讲,我计算的是每个变量起了多少作用,比如 x 1 x_1 x1​起了作用 100 × 1 100 \times 1 100×1,而 x 2 x_2 x2​起的作用是 10 × 20 = 200 10 \times 20 = 200 10×20=200,引出全局视野关注的是"Current Contribution"。


因此,Global attribution的精神就是:attributions sum up to output.

比如我们输入了五个像素,如上图,最后得到的输出对应300。那我们希望这五个像素乘上五个权重,其结果也是300。

如何做到?

Layer-wise relevance propagation(LRP)



如上:

  • 首先要Calculate contributions,将300“分下去”;
  • 接下来在往下分下去,Redistribute the output;
  • Backward propagation until reaching input。

Completeness


如上,每个点代表一张图片,其分数为这张图片对应的输出。

如上,有 baseline 与无baseline中,我们发现 x 1 x_1 x1​与 x 2 x_2 x2​二者贡献比例都很像。

Flexible baseline: DeepLIFT


如上,下面为输入了一张新图片,可以通过同类相减查看 baseline 。

Flexible baseline: Integrated gradient


如上,对于两张图(0, 0)与(2, 2),我们在其中间取几个路径上的点,然后得到其对应的输出。最后依公式算出 baseline 。

Take-away message

Sensitivity-n


如上,选一些输入 mask 掉,然后看分数差异。



如上,mask 掉不同数量的像素后,查看与原输出的大小比较。

发现很多例子中,都远远比不上 Occlusion-1 (红色虚线)。

Occlusion-1 / Leave one out


Occlusion-1 基本类似于 Sensitivity-1 。

Probing

我们知道,BERT先训练好知识存在自己的层种,之后于具体任务结合,会获得很好的结果。

但是 BERT 内究竟发生了什么?我们将尝试解决。


如上,这篇文章做了不少的 Probing tasks ,用了一个简单的 trick ,叫做 Edge probing technique 。

可以是把各层都拉出来,做词性标注的分类任务。此外,还做了 weight sum ,查看词性在那一层发生了作用。

还做了 Cumulative score ,比如先给你4层,看效果,再多一层,一共5层,看效果。


论文的图标如图。

What does BERT might not learn?


如上,人眼在看句子时,要进行句子切割。BERT有学习到么?

Unsupervised constituency parsing


如图,找哪两个相邻的单词最不像,然后“切一刀”,把两个句子分开。


但是如上,因为考虑到英文倾向于在右边切割,因此对每个单词,加上一个数值,进行“纠正”,越左边值越大。其分割效果可能会截然不同。


如图,无论有没有加这个 bias ,其结果都比不上专门进行分割的模型。因此,我们可以假设,BERT可能没有学到这个性质。

What is a good prob?

  • Linear classifier?
    • Not all information can be linear separable
  • Multi-layer perceptrons?
    • How may layers? 1, or 2 may be enough?
    • Maybe it is just probing model that learns the downstream task!

一个坏的 prob ,可能记忆能力很强,只不过是记下来了所有的映射,导致效果很好。

Heatmap

Activation map: CNN dissection

Does activation map reflect some semantic concepts?

Concepts: objects, parts, scenes, textures, materials, and colors.

Dataset: Broden(released)

  • Concept labels at PIXEL level
  • CNN trained on large categorical classification dataset(eg Imagenet)
  • Evaluate using Broden dataset

这个研究把图片的内容用黄色的线画出了边界。

评价指标为,每个像素为一个逻辑单位,总分数为并集分之交集。


最后观察到,浅层的卷积层,观察的主要是颜色、质地等等;深层的卷积层,观察到的更多的是图形的边界等等。

Attention map as explanation


Attention分数与所需的分数是否相关?



发现,在这种指标下,attention难以解释的。

这篇文章叫做 《attention is not explanation》,而之后,也有人写了文章叫做《attention is not not explanation》。


发现,基于 attention 的encoder确实有用,保留这个embedding,用别的模型,也能取得不错的效果。

Create an explainable model

Some difficulties in explaining CNN

  • Activation map is complicated in final layers
    • We only know they represent higher level semantics
    • Combination of low level activations
  • Visualize a category meaningfully is not easy
    • There are nonsense images which still be classified as the specific category

Constraining activation map

在训练阶段,就试图限制 activation map 。

做出来,则可以直接生成 activation map ,对应到图片的位置。

Encoding prior

模型并不知道,什么是一张“好图片”,只知道输入输出。




如上,Classifier不但可以分类,还可以判断是否是一张图片。


如上,在Forward时,是一个分类器;如果Backward就变成了类似GAN的东西。

Adversarial training for encoding prior


训练一个鲁棒的分类器,然后进行Backward,就可以生成一张图片。

 

这篇关于【李宏毅2020 ML/DL】P34 More about explainable AI | Attribution, Heatmap, explainable model的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!