对抗攻击
对抗攻击概念:
通过对输入添加微小的扰动使得分类器分类错误,一般用于对深度学习的网络的攻击算法 最为常见,应用场景包括目前大热的CV和NLP方向,例如、通过对图片添加精心准备的扰动噪声使得分类错误,或者通过对一个句子的某些词进行同义词替换使得情感分类错误。
关于攻击的类型有很多种,从攻击环境来说,可以分为黑盒攻击、白盒攻击或者灰盒攻击:
1. 白盒攻击
- 假设我们图像的数组为x,模型已经正确分类到y_true,这时我们需要进行白盒攻击,微小地修改图像数组x使得模型将其分类到y1
- 给模型输入(x,y1)获取到模型在输入x上的梯度,这里的x便是图像的数组表示
- 依据梯度,在图像上进行调整,以达到减小误差,判断是否此时模型将其分类到y1
- 重复2、3步,直到模型将其分类到y1或者超出时间限制
攻击者对模型一切都可以掌握。目前大多数攻击算法都是白盒攻击。
2. 黑盒攻击
攻击者对攻击的模型的内部结构,训练参数,防御方法(如果加入了防御手段的话)等等一无所知,只能通过输出输出与模型进行交互。
- 黑盒攻击与白盒不同地便是,第二步,无法得到梯度,只能随机地调整图像,直到模型将其分类到y1或者超出时间限制
- 使用的算法是one-pixel-attack,通过随机得修改若干个像素点,进行攻击。