对抗攻防经典之三:On detecting adversarial perturbations

探测网络方法将直接通过神经网络来预测给定的样本是否是对抗样本,即把对抗样本的识别直接转化为端到端方式训练的二分类问题(Metzen et al., 2017)。探测网络方法在原本的神经网络(分类器)上扩展一个探测器子网络,该探测器的任务是判别样本是否来自真实数据。探测器的输出是一个范围为 的标量,表示数据属于对抗样本的概率。探测器的设计和具体的数据集有关,采用的架构一般是卷积神经网络。

为了训练该探测器,首先在原始训练数据集上对分类器进行训练,当分类器训练完成,采用FGSM或DeepFool等方法对训练数据集中的每一个样本生成对应的对抗样本。由此可以得到一份原始数据集和一份相同大小的对抗样本数据集,然后对探测器进行训练。训练数据包括一半真实的样本数据和一半生成的对抗样本,样本的标签替换为对应的来源,即真实样本或者对抗样本。探测器训练时,固定原始分类网络的权重,采用交叉熵作为损失函数对探测器进行训练。

理论而言,神经网络实现的探测器可以有效检测对抗样本,但是一旦攻击方同时知道分类网络和探测网络的梯度,那么攻击方仍然可以通过替换目标公式的方法实现有效攻击。

为了应对这个问题,一个可行的办法是动态对抗训练。动态对抗训练不再是先计算出数据集所有的对抗样本,然后使用这些对抗样本用于探测器的训练,而是在每个小批量训练的过程中,产生对抗样本用于探测器的训练。简单地讲,动态对抗训练意味着对抗样本是在训练过程中动态地产生,从而实现对探测器的训练。

实验显示,当采用FGSM方法用于生成对抗样本,设置 ,探测网络可以检测出90%的对抗样本,设置 ,探测网络可以检测出97%的对抗样本;当采用DeepFool方法用于生成对抗样本,探测网络可以检测出82%的对抗样本。当攻击者同时知道分类网络和探测网络的梯度,采用FGSM方法进行动态对抗训练,设置 ,探测网络可以检测出89%的对抗样本。

引用:

Madry, Aleksander, et al. “Towards deep learning models resistant to adversarial attacks.” arXiv preprint arXiv:1706.06083 (2017).