深度学习入门教学——对抗攻击和防御

目录

一、对抗样本

二、对抗攻击

三、对抗防御


一、对抗样本

  • 对抗样本是指对机器学习模型的输入做微小的故意扰动,导致模型输出结果出现错误的样本。
  • 深度神经网络在经过大量数据训练后,可以实现非常复杂的功能。在语音识别、图像识别、自然语言处理等任务上被广泛运用。
  • 然而,研究表明一个人类无法察觉的噪声可能让机器产生错判。
  • 例如,给出一张熊猫的图片,神经网络可以正确地将它识别出来。
    • 深度学习入门教学——对抗攻击和防御_第1张图片
    • 如果我们给这张图片加入一些噪声,生成一副稍微模糊的图片。对人来说,加噪后的图片与原图片并没有什么区别。
    • 深度学习入门教学——对抗攻击和防御_第2张图片
    • 但对于神经网络就不行了。硬是把图片识别成了长臂猿,并对识别结果还给出了很高的置信度。
    • 深度学习入门教学——对抗攻击和防御_第3张图片
  • 这种人类无法察觉,但对模型产生严重影响的样本被称为对抗样本
  • 当然不仅仅是添加噪声,甚至图片旋转也会对模型预测产生影响。
  • 例如,将手枪图片稍微旋转后,模型就将其识别为了捕鼠器。
    • 深度学习入门教学——对抗攻击和防御_第4张图片

二、对抗攻击

  • 对抗攻击是指对输入样本故意添加一些人类无法察觉的细微干扰,导致模型产生错误的输出结果。(可以理解为生成对抗样本的过程)
  • 例如,给停止标识贴上几个小广告,就可能骗过图像识别系统,让其无视这个标识。
    • 深度学习入门教学——对抗攻击和防御_第5张图片
  • 对抗攻击方法可以从不同角度进行分类:
    • 白盒攻击与黑盒攻击
      • 白盒攻击知晓目标模型的所有信息。
      • 黑盒攻击不能获取目标模型内部信息。
    • 目标攻击与非目标攻击
      • 目标攻击会将对抗样本指定到某一目标类别。
      • 非目标攻击只要使分类错误即可。

三、对抗防御

  • 对抗防御主要是针对对抗攻击,提高机器学习模型的鲁棒性和抗扰动能力。
  • 常用的方法有:
    • 对抗训练:在训练过程中加入对抗样本,增强模型对抗扰动的适应能力。
    • 梯度遮蔽:由于当前的许多对抗样本生成方法都是基于梯度去生成的,所以如果将模型的原始梯度隐藏起来,就可以达到抵御对抗样本攻击的效果。
    • 随机化/正则化:在模型中引入随机因素或者正则项,增加攻击的难度。
    • 去噪:在输入模型进行判定之前,先对当前对抗样本进行去噪,剔除其中造成扰动的信息,使其不能对模型造成攻击。

你可能感兴趣的:(深度学习,深度学习,人工智能)