对抗机器学习模型
Posted 小爷毛毛(卓寿杰)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对抗机器学习模型相关的知识,希望对你有一定的参考价值。
重磅推荐专栏: 《Transformers自然语言处理系列教程》
手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用!
1. Attack ML Model
随着AI时代机器学习模型在实际业务系统中愈发无处不在,模型的安全性也变得日渐重要。机器学习模型很可以会遭到恶意攻击,比较直接就能想到的如:人脸识别模型的攻击。训练出具有对抗性的机器学习模型,在业务系统存在着越来越重要的实际意义。
2. Attack
机器学习模型攻击要做的事情如下图所示:
假设我们有一个Network用来做动物的图像识别。我们输入一张如图所示的图片
x
0
x^0
x0,Network预测为“Tiger Cat”。机器学习模型攻击是在
x
0
x^0
x0上加上一个微小的噪音
Δ
x
\\Delta x
Δx,使得图片看起来还是一只“Tiger Cat”,但是通过Network的预测结果却是其他动物了。
2.1 Loss function
如上图所示,如果做图像分类,损失函数为:
其中,图像输入
x
0
x^0
x0是固定的。那么攻击模型的损失函数也可用类似的方式定义出来:
-
如果是无目标攻击(不需要使得被攻击的模型将输入预测成特定某一类)的攻击,则损失函数为:
即预测结果远离类别。其中,网络参数 θ \\theta θ是固定,网络调整的是输入的 x ′ x^' x′ -
有目标攻击(使得被攻击的模型将输入预测成特定某一类)的攻击,则损失函数为:
即预测结果既要远离正确类别,又要接近某错误类别。
上述两种损失函数还需要满足一定的约束,就是不能与原来的图片有太大的差异,即:
距离 d 通常的定义方式有:
2.2 Attack gradient descent
Attack gradient descent 相当于就是有了一定限制的gradient descent。每一步在对
x
x
x做更新后,都要计算是否符合限制:
如果不符合,我们就把它调整为符合限制的
x
x
x。如何调整呢?简而言之,就是把更新后的
x
t
x^t
xt拉到符合限制区域的最近的向量上,用它来替代
x
t
x^t
xt:
2.3 FGSM
FGSM(fast gradient sign method) 是一种非常快捷的attack方法:只进行一次求梯度,并取其各个位上的符号作为结果
Δ
x
\\Delta x
Δx ;更新时根据
Δ
x
\\Delta x
Δx 直接加减
ε
\\varepsilon
ε:
该方法相当于使用了非常大的学习率,并且采用L-infinity距离,再把
x
x
x拉回到正方形的角上。
2.4 Black box attack
之前讲的都是白盒攻击,即模型的网络结构我们都是知道的。那么,如果一个未知结构的Black模型,该如何攻击?很神奇的是,我们只要用相同的数据训练某个自定义结构的Proxy模型,在该Proxy模型上做attack,Black模型也能被很好的attack了。下表为proxy-black attack后的正确率:
2.5 More …
- 并不需要一张图片训练一个噪音,一个噪音可以attack所有的图片:
- 带一副眼镜,就能骗过人脸识别系统:
3. Defense
讲完attack,我们来讲怎么defense。
2.1 Passive Defense
Passive Defense 主要是思想是在给模型做层“保护罩”。
2.1.1 Smoothing Filter
做一层简单的平滑过滤,也能很好的防御attack:
2.1.2 Feature Squeeze
用不同压缩的特征进行预测,根据预测结果之间的距离来判定该输入是否被attack:
2.1.3 Randomization
对输入对图片做一些随机对改变(如尺寸、填充),然后再输入到模型中:
2.2 Proactive Defense
Proactive Defense 的主要思想是:找出漏洞,补起来。直观的去想,做法也很简单:
- 训练数据 train出 model
- 对每个训练数据,train出可以attack model的 新数据,并用原数据的label 作为新数据的label
- 生成的新数据再用于训练model,填补model的漏洞
以上是关于对抗机器学习模型的主要内容,如果未能解决你的问题,请参考以下文章