引言
深度神经网络(DNN)在许多机器学习任务中越来越受欢迎。它们被应用在图像、图形、文本和语音领域的不同识别问题中,并且取得了显著的成功。在图像识别领域中,他们能够以接近人类识别的精度识别物体。同样在语音识别、自然语言处理和游戏等领域,DNN也得到广泛应用。
由于这些成就,深度学习技术也被应用于关键安全性任务中。例如,在自动驾驶车辆中,可使用深度卷积神经网络(CNNs)来识别路标。这里使用的机器学习模型需要高度准确、稳定和可靠。但是,如果CNN的模型没有识别出路边的“停车”标志,而车辆继续行驶怎么办?这将及其危险。同样的,在金融欺诈检测系统中,公司经常使用图形卷积网络(GCNs)来判定其客户是否值得信赖。如果有欺诈者掩盖其个人身份信息以逃避公司的监测,这将给公司造成巨大的损失。因此,深度神经网络的安全问题已经成为一个备受关注的问题。
近年来,许多研究表明,DNN模型容易受到对抗样本的影响。对抗样本可以正式定义为:“对抗样本是攻击者故意设计以导致机器学习模型犯错误的那些输入。”。
在图像分类领域,这些对抗样本是有意合成的图像,它们看起来几乎与原始图像完全相同,但可能会误导分类器提供错误的预测输出。
(上图为通过向原图像中添加不明显的扰动,“熊猫”被归类为“长臂猿”。)
同时,在其他涉及图形、文本或音频的应用领域中,也存在类似的对抗性攻击方案来混淆深度学习模型。因此,在所有应用领域都存在对抗样本,这提醒研究人员不要在安全关键的机器学习任务中直接采用DNNs。
对抗防御方法分类
为了应对对抗样本的威胁,学术界已经发表许多论文寻找保护深度神经网络的对策。
这些方法可以大致分为三种主要类型:
- 隐藏梯度(gradient masking):由于大多数攻击算法都是基于分类器的梯度信息,因此掩蔽或混淆梯度会混淆攻击机制。
- 鲁棒性优化(robust optimization): 这类研究展示了如何训练一个鲁棒的分类器,可以正确地分类对抗样本。
- 对抗检测(adversary detection): 这类方法试图在将样本输入深度学习模型之前,检查一个样本是良性的还是对抗的。
对抗攻击方式
为了研究如何防御与监测对抗样本,我们首先需要了解有哪些形式的对抗攻击方式。
Adversary‘s goal
按照攻击者的目标,对抗攻击可以分为poisoning attack 与evasion attack、targeted attack 与non-targeted attack。
poisoning attack是指攻击者在DNN算法的训练数据库中插入/修改几个假样本的攻击算法。这些假样本可能会导致训练过的分类器失败。它们可能会导致精度差,或对某些给定的测试样本的错误预测结果。poisoning attack是在模型训练过程中攻击,以使模型train不好。
在evasion attack中,分类器是固定的,通常在普通测试样本上具有良好的性能。攻击者无法改变分类器模型或其参数,但他们制作了一些分类器无法识别的假样本即对抗样本。换句话说,对手生成一些欺诈的例子来逃避分类器的检测。例如,在自动驾驶车辆中,在停车标志上粘贴几条磁带会混淆车辆的道路标志识别器。
在targeted attack中,假设对于原来的输入x(x是特征向量),分类器的输出是y,攻击者对x添加扰动后形成特征向量x’,并期望分类器输出攻击者想要得到的输出t(对于x’,正确的分类结果期望是y)。例如,欺诈者可能伪装成该公司高度可信的客户以逃避金融公司的信用评估模型的监测。
如果攻击者只是想要扰动x到x’,使得分类器输入x’时输出不是y(对于x’,模型的训练者期望得到的正确的分类结果是y)而可以是其他任何的输出,那么这样的攻击就是non-targeted attack。
Adversary‘s knowledge
按照攻击者需要的信息,对抗攻击可以分为White-box attack 、black-box attack、semi-white (gray) box attack 即白盒攻击、黑盒攻击与半白(灰)盒攻击。
在white-box attack中,攻击者可以访问目标神经网络的所有信息,包括其架构、参数、梯度等。攻击者可以充分利用网络信息,精心制作对抗样本。针对白盒攻击的安全是我们希望机器学习(ML)模型拥有的特性。
在black-box attack中,攻击者不知道DNN模型的内部信息。攻击者只能持续提供输入数据,观测模型的输出。他们通常通过将样本不断输入到模型中并观察输出来攻击模型,以利用模型的输入-输出关系,识别模型的弱点。与白盒攻击相比,黑箱攻击在应用中更加实用,因为模型设计者通常因为一些商业或其他原因不愿意开源模型参数。
在semi-white (gray) box attack中,攻击者训练一个生成对抗样本的模型,训练这个模型时需要目标神经网络的信息。一旦生成模型被训练成功,攻击者就不再需要目标神经网络模型的信息了。
易受对抗攻击的模型
在了解了对抗攻击的方式后,我们来看下易受对抗攻击的模型有哪些。
传统机器学习模型
首先是传统的机器学习模型。对于传统的机器学习工具,安全问题的研究已有悠久的历史。Biggio等人研究攻击了应用于MNIST数据集的支持向量机(SVM)分类器和全连接的浅层神经网络。Barreno等人研究了一种基于贝叶斯方法的垃圾邮件检测软件的安全性。还有针对朴素贝叶斯分类器的安全性研究等等。其中许多思想和策略已被用来研究深度神经网络中的对抗性攻击。
深度学习模型
然后是深度神经网络模型。与需要特定领域知识和人工特征工程的传统机器学习技术不同,DNNs是端到端学习算法。模型直接使用原始数据作为模型的输入,并学习对象潜在的结构和属性。DNNs的端到端架构使攻击者很容易利用其弱点,并生成高质量的欺骗性输入(对抗样本)。此外,由于DNNs的隐式特性,它们的一些性质至今仍然不能被很好地理解或解释。因此,研究DNN模型的安全问题是必要的。
- Fully-connected neural networks (FC) 中反向传播算法(back-propagation)帮助计算,使梯度下降法在学习参数中更加有效。在对抗性学习中,反向传播也有助于计算(表示输出对输入变化的响应)。
- Convolutional neural networks:在计算机视觉中,卷积神经网络是使用最广泛的模型之一。CNN模型从图像中聚合局部特征来学习图像的表示。CNN模型可以看作是全连接神经网络的稀疏版本:层之间的大部分权重为零。它的训练算法或梯度计算也可以继承自全连接的神经网络。
- 此外还有用于图结点分类的Graph convolutional networks (GCN) 、用于NLP领域的Recurrent neural networks (RNN) 等等。
参考文献:
Xu, H., Ma, Y., Liu, HC. et al. Adversarial Attacks and Defenses in Images, Graphs and Text: A Review. Int. J. Autom. Comput. 17, 151–178 (2020). https://doi.org/10.1007/s11633-019-1211-x