PyTorch深度学习实战(30)——对抗攻击
0. 前言
近年来,深度学习在图像分类、目标检测、图像分割等诸多领域取得了突破性进展,深度学习模型已经能够以接近甚至超越人类水平的完成某些特定任务。但最近的研究表明,深度学习模型容易受到输入数据中细微扰动的影响,从而导致模型输出错误的预测。在图像领域,此类扰动通常很小对于人眼而言甚至无法察觉,但它们却能够愚弄深度学习模型。针对深度学习模型的这种对抗攻击,限制了深度学习的成功在更广泛领域的应用。本节中,我们将介绍对抗攻击 (Adversarial Attack
) 的基本概念,并使用 PyTorch
实现对抗攻击生成可欺骗神经网络的图像。
1. 对抗攻击
深度学习在执行各种计算机视觉任务方面都有着优异的准确性,但尽管深度学习模型的精确度很高,现代深度网络却容易被微小扰动形式的对抗攻击所干扰,这些扰动对虽然对人类视觉系统而言几乎无法感知,但却可能导致神经网络分类器完全改变其对图像的预测。甚至,被攻击的模型对错误的预测结果具有很高的置信度。对抗攻击 (Adversarial Attack
) 是针对机器学习模型的一种攻击方式,通过精心构造的数据输入,来欺骗机器学习模型以使其产生错误的结果。
包含恶意扰动的数据通常称为对抗样本 (Adversarial Example
),