攻击与防御是对立且统一的。随着攻击的发展,防御方法也随之发展。目前主要防御方法有对抗训练[45]、防御蒸馏[46]、动态防御、MagNet。
1. 对抗训练
对抗训练,是指防御者通过自身构造来对抗攻击,并且将人为增加扰动的对抗样本也加入训练数据,从而增强训练集,让训练后得到的模型更加稳定。
2. 防御蒸馏
防御蒸馏通过两个步骤来完成对模型稳定性的提升:
第1 步,训练分类模型,其最后一层的SoftMax 层除以一个常数T。
第2 步,用同样的输入来训练第2 个模型,但是训练数据的标签不用原始标签,而是将在第 1 步训练的模型中最后一层的概率向量作为最后SoftMax 层的目标。
两步训练的好处主要有两方面:(www.xing528.com)
(1)使第2 个模型的神经网络更加鲁棒。
(2)通过调高T,可以使logits 层的数据变得特别大,并且在使用第2个神经网络进行分类任务时将T 置1,使logits 层的数据相对过大,使攻击方不能很准确地估算梯度,产生梯度消失的现象,从而实现防御。
3. 动态防御
输出结果带有一定的随机性。对此,可以直接在输出结果上加高斯扰动,使梯度变得难以计算;也可以在分类器判别分类时使用多个模型,随机选取一个模型结果来作为输出。
4. MagNet
通常,对抗样本存在两种情况:对抗样本远离该任务流形的边界;对抗样本在流形边界的附近。MagNet 采用Detector 解决前一种情况的问题,即检测测试样本与正常样本的差异有多大。Detector 学习得到函数f ,所有样本均为输入,输出为1 或 0,用于度量样本和流形的距离。如果距离大于门限,则检测器拒绝对样本分类。
对于后一种情况的问题,Magnet 采用Reformer 对对抗样本进行转换,使用自动编码器训练用于转换输入/输出的神经网络。自动编码器利用更简单的隐藏表示引入正则化来发现数据的有用属性。对于接近流形边界的对抗样本x,自动编码器能够输出一个在流形上样本y,且y 接近于x。这样,自动编码器将对抗样本x 改造成一个类似的正常样本。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。