李宏毅老师2020机器学习——知识点总结篇(31-更新)
李宏毅老师2020机器学习课程主页:
http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20.html
视频链接地址:
https://www.bilibili.com/video/BV11E41137sE?p=1
目录
注:本知识点仅供大家参考和快速了解这门课,每一节均为笔者听后仅总结细节和重点(而无基础知识),李宏毅老师的课程非常好,详细学习的读者还是请自行一一观看学习。作业代码也在持续整理。
以下顺序均参照视频顺序,无缺无改
31 More about Explainable AI
31.1 Explain a trained model
1.1 Attribution
Local gradient-based
- Saturation——Solution:Global attribution
用gradient当作重要性进行模型解释时,会有这样的问题:当某一个特征增大到一定程度时,对应目标值对该特征的梯度就会变成0了。如一幅图片里鼻子越长,图片是大象的几率越大,但当鼻子长到一定程度时,是大象的几率几乎不变了,此时梯度为0,但我们不能就说鼻子长度对判断是否是大象没用。
解决方法就是Global attribution,基本精神是对各个特征进行重要性的求和,方法被称为Layer-wise relevance propagation(LRP),要求每层的值的和相同。
- Noisy gradient——Solution:SmoothGrad
在一张图片上个加点肉眼看不出区别的noise就可以做到模型分类不同。
解决方法就是SmoothGrad,通过多组在每个pixel都加不同的noise后取梯度的平均
32 HW5
解释CNN图像分类的原因,已整理完
33 Attack ML Models-1
希望ML模型不过效果好,还能抵抗来自人类恶意的攻击。
34 Attack ML Models-2
在
x
′
和
x
0
x'和x^0
x′和x0区别越小的限制下,希望可以得到这样的
x
′
x'
x′,它能使得神经网络f判断出错误的答案,其损失函数也就正好是原本损失函数的负数。
对于
x
′
和
x
0
x'和x^0
x′和x0的限制条件有常见的上图两种:
- L2-norm
- L-infinity
可以看出L-infinity的改变效果是更容易被人类看出来的
35 Attack ML Models-3
我们已知攻击模型的损失函数,该怎么实际找到一个
x
⋆
x^{\star}
x⋆呢?
方法也是梯度下降,不过还要考虑对于 x ⋆ 和 x 0 x^{\star}和x^0 x⋆和x0的限制,当 当前 x t 和 x 0 x^{t}和x^0 xt和x0差别大于阈值 ϵ \epsilon ϵ时,通过穷举 x t 和 x 0 x^{t}和x^0 xt和x0差距小于等于 ϵ \epsilon ϵ内的所有的点找出和当前 x t x^{t} xt差距最小的点作为替代。
36 Attack ML Models-4
攻击实验往往会很成功,其背后的原因并未完全明晰。但攻击实验成功是体现了这样的现象的,如上图所示,每一个类别(降维后)背后的“范围”是很窄的,当改变了很小的值后也是很容易产生较大的类别判断变化的,至于训练神经网络为何有这样的现象还不得而知。
37 Attack ML Models-5
攻击方法多种多样,如上图所列
不同方法的差异主要在两点:
- Optimization Methods 优化方法不同
- Constraints 限制不同
FGSM(Fast Gradient Sign Method)
FGSM是其中最简单的方法,仅对每一维梯度差值进行正负的判断,正数就替换为+1,负数就替换为-1,仅攻击一次即可
38 Attack ML Models-6
上述讲的攻击模型都是在已知神经网络参数的基础上算梯度进行攻击的,相当于白盒攻击White Box Attack。
那也就是说只要保护好神经网络的参数就可以安全了么?事实上还可以做黑盒攻击Black Box Attack
比如说对于影像辨识的黑箱模型,如ImageNet数据集训练出来的,就可以用同样的训练资料去重新训练一个神经网络Proxy Network,用这个Proxy Network去计算梯度,找出能成功攻击Proxy Network的影像拿去攻击黑箱模型
39 Attack ML Models-7
在现实世界中,是真的有可能成功的,如戴一副特殊的眼镜就可以改变人脸辨识系统的结果(现实中是要考虑很多限制的,如角度、色度等)。当然除了影像,语音和文字也有成功攻击的例子。
40 Attack ML Models-8
对于攻击,有这样两种防御方法:
- Passive defense:不对神经网路做任何的改变,再另外加保护函数来阻挡攻击(Anomaly Detection异常检测)
- Proactive defense:在训练模型时就要考虑到被攻击的情况
Passive Defense
在输入图像给模型前,先经过Filter函数过滤,可以是平滑化,也可以是特殊的神经网络。
Proactive Defense
将每次会攻击成功的数据当作训练集再做训练,循环T次。