目录
一、对抗样本
二、对抗攻击
三、对抗防御
一、对抗样本
- 对抗样本是指对机器学习模型的输入做微小的故意扰动,导致模型输出结果出现错误的样本。
- 深度神经网络在经过大量数据训练后,可以实现非常复杂的功能。在语音识别、图像识别、自然语言处理等任务上被广泛运用。
- 然而,研究表明一个人类无法察觉的噪声可能让机器产生错判。
- 例如,给出一张熊猫的图片,神经网络可以正确地将它识别出来。
- 如果我们给这张图片加入一些噪声,生成一副稍微模糊的图片。对人来说,加噪后的图片与原图片并没有什么区别。
- 但对于神经网络就不行了。硬是把图片识别成了长臂猿,并对识别结果还给出了很高的置信度。
- 这种人类无法察觉,但对模型产生严重影响的样本被称为对抗样本。
- 当然不仅仅是添加噪声,甚至图片旋转也会对模型预测产生影响。
- 例如,将手枪图片稍微旋转后,模型就将其识别为了捕鼠器。
二、对抗攻击
- 对抗攻击是指对输入样本故意添加一些人类无法察觉的细微干扰,导致模型产生错误的输出结果。(可以理解为生成对抗样本的过程)
- 例如,给停止标识贴上几个小广告,就可能骗过图像识别系统,让其无视这个标识。
- 对抗攻击方法可以从不同角度进行分类:
- 白盒攻击与黑盒攻击
- 白盒攻击知晓目标模型的所有信息。
- 黑盒攻击不能获取目标模型内部信息。
- 目标攻击与非目标攻击
- 目标攻击会将对抗样本指定到某一目标类别。
- 非目标攻击只要使分类错误即可。
- 白盒攻击与黑盒攻击
三、对抗防御
- 对抗防御主要是针对对抗攻击,提高机器学习模型的鲁棒性和抗扰动能力。
- 常用的方法有:
- 对抗训练:在训练过程中加入对抗样本,增强模型对抗扰动的适应能力。
- 梯度遮蔽:由于当前的许多对抗样本生成方法都是基于梯度去生成的,所以如果将模型的原始梯度隐藏起来,就可以达到抵御对抗样本攻击的效果。
- 随机化/正则化:在模型中引入随机因素或者正则项,增加攻击的难度。
- 去噪:在输入模型进行判定之前,先对当前对抗样本进行去噪,剔除其中造成扰动的信息,使其不能对模型造成攻击。