视频链接:
https://www.bilibili.com/video/BV1Wv411h7kN/?p=96&vd_source=7259e29498a413d91ab48c04f9329855
课件链接:
https://view.officeapps.live.com/op/view.aspx?src=https%3A%2F%2Fspeech.ee.ntu.edu.tw%2F~hylee%2Fml%2Fml2021-course-data%2Fxai_v4.pptx&wdOrigin=BROWSELINK
作业链接:
https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/hw/HW09/HW09.pdf
https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW09/HW09.ipynb
目录
Interpretable与explainable的差异
Explainable的目标
解释的类别
Local
解释的方法
1.输入的哪些部分重要
2.网络如何处理输入
Global
1.以网络输出最大为优化目标训练输入
2. Generator
替代模型
Interpretable与explainable的差异
Interpretable本身就可解释的(线性模型, 单颗浅层决策树)
explainable本身不可解释的模型赋予其解释(深层决策树/随机森林)
Explainable的目标
什么是好的解释结果
人能接受的理由(让人高兴)
解释的类别
Local:对单个样本做出判断的理由(哪些组成部分components像猫)
Global:对任意的输入, 什么样的输入能获得肯定的判断(什么样的图片可以看作猫)
Local
解释的方法
1.输入的哪些部分重要
2.网络如何处理输入
1.输入的哪些部分重要
1.看梯度
(1)逐部分mask特征/或者对单个特征进行微小变化
(2)然后观察输出/计算梯度:
变化大/梯度大的为重要特征, 由此可画出Saliency Map(主要在CV中使用)
2. Integrated gradient (IG)--扩展了解的方法
SmoothGrad
避免杂讯影响: 在图片上加入不同杂讯, 所有的Saliency Map叠加后, 就是SmoothGrad的结果
草对分辨图片可能重要, 但老板会喜欢机器根据猫的本体判断, 让老板高兴的解释才是好的解释
梯度≠特征重要度
当大象鼻子长到一定程度的时候, 再变长对判断就没有帮助了, 此时长度发生变化的梯度为0.
2.网络如何处理输入
降维+可视化
对网络某一层(或Attention)的输出进行降维+可视化, 输出图片给人眼看是否有联系
Attention is not Explanation
Probing
1.Probing(探针)=分类器
基于这一层的输出, 训练判断词性(或其它特性)的分类器, 来确定这一层是否学到了词性方面的信息.
但是要小心可能单纯是分类器没有训练好/或训练太好, 导致无法分别.
2. Probing(探针)=生成器
利用某一层的输出, 复现网络的输入
看出网络抹去了哪些特征, 学到了哪些特征
Global
不是对单个样本为什么选择
而是根据整个模型参数, 找出模型想象中的猫
1.以网络输出最大为优化目标训练输入
创造一张图片, 其中包含filter (网络)想要侦测的像素
把像素值当作训练的参数, 使得某层输出的feature map值(整个网络输出)大.
找出的值用X*表示, 观察X*的特征
其中aij是feature map中的元素
其中yi是整个网络的输出.
寻找的方法不是梯度下降而是梯度上升(gradient ascent).
如果寻找的时候不加限制, 输出的图片是杂讯:
加限制--图片要像数字. 此处的限制R()是有笔画的地方越少越好
此时得到的图片:
要得到很像人类的图片其实很难, 要根据对影像的了解下非常多的限制, 对超参数微调.
2. Generator
将生成器与分类器接在一起
此时不是找分类器的输入X, 而是生成器的输入Z
找到能使y最大的z, 记为z*, 再把z*输入生成器.
替代模型
用简单的模型模仿复杂模型的行为
再分析简单的可解释的模型
Local Interpretable Model-Agnostic Explanations (LIME)
线性模型无法模仿网络的所有行为, 只模仿一小区域的行为.