简介
本文基于文章A Review of Adversarial Attack and Defense for Classification Methods的总结,提供对抗领域的几种常见的防御方法
攻击方法见:对抗攻击方法(Adversarial attack method)
防御方法大体分为四大类:(1)对抗训练(2)引入随机因素(3)用投影去除对抗性扰动,(4)检测对抗性示例而不是正确分类它们。
一、对抗训练(Adversarial Training)
非常经典的提高鲁棒性的方法
对抗训练致力于解决以下问题:
这是一个经典的最大最小问题,最大化损失用于创建对抗样本,而最小化则用于使得分类器正确分类对抗样本
介绍一种非常经典的对抗训练方式TRADES(Theoretically Principled Trade-off between Robustness and Accuracy)
黄框内容为生成对抗样本,红框则为参数更新方式
其损失定义分为两部分,其一正常的交叉熵损失,其二则是正常样本以及对抗样本之间概率的交叉熵;该损失引导模型分类自然样本的同时,还使对抗样本和自然样本的分类概率近乎一致
二、随机化( Randomization)
依答主理解,1)随机性的引入使得攻击无法完整的获取模型信息(因为随机性的存在,训练和攻击过程中所获取的随机因素不一致);2)随机性的引入拓宽了决策边界
随机因素一般施加在三种地方:
输入:即随机化神经网络的输入以消除潜在的对抗性扰动
隐藏层输出:即在输入和隐藏输出中加入高斯噪声,并引入剪枝方法对网络输出进行随机化
分类器的参数:利用贝叶斯分量为模型的权重添加随机性
对于第二种方式,推荐论文ResNets Ensemble via the Feynman-Kac Formalism to Improve Natural and Robust Accuracies,其通过对resnet的快捷链接处添加高斯噪声用于提高鲁棒性
三、去噪/投影(Projection)
这一维度利用生成模型的力量如自动编码器(AE)和生成对抗网络(GAN),通过在训练数据上拟合生成模型来消除对抗噪声
这些防御机制利用生成模型的力量来对抗来自敌对例子的威胁。首先将分类器的输入输入到生成模型中,然后进行分类。由于生成模型是在自然示例上训练的,因此对抗性示例将被投影到生成模型学习的流形中。此外,将对抗性示例“投射”到生成模型的范围内可以产生减少对抗性扰动的理想效果。
此维度推荐一篇文章:DEFENSE-GAN: PROTECTING CLASSIFIERS AGAINST ADVERSARIAL ATTACKS USING GENERATIVE MODELS
该方法通过生成多个随机种子,挑选和样本最近的种子进行生成
四、检测(Detection)
该维度方法旨在检测对抗性示例的存在,而不是试图将它们分类到正确的类别中。这些方法背后的主要假设是,与自然数据相比,对抗示例来自不同的分布。换句话说,对抗性示例不位于数据流形上,dnn只对靠近训练数据流形的样本进行正确分类
文章提到了一种方法,即通过核函数判断样本是否是对抗样本的置信度
其中是抽取的训练样本