1. 防御算法介绍

1.1. EAT加固算法

算法介绍

EAT的全称是Ensemble adversarial training (集成对抗训练),具体是指使用多种方式生成对抗样本对模型进行对抗训练的方法,通过使用在其他静态预训练模型上产生的对抗样本来扩充模型的训练数据,能有效应对对抗样本的可迁移攻击。

与之相关的基础方法是对抗训练,该方法旨在从随机初始化的权重中训练一个鲁棒的模型,其训练集由真实数据集和加入了对抗扰动的数据集组成,因此叫做对抗训练。其表达式如下:

\[\tilde{J}(\theta,x,y)=\alpha \cdot J(\theta,x,y)+(1-\alpha)\cdot J(\theta,x+\epsilon \cdot sign(\triangledown_x J(\theta,x,y)))\]

其中J(θ, x, y)是模型对于普通样本的损失函数,作者通过 x + ε · sign(▽x J(θ,x,y))来构造对抗样本,并要求模型能正确对其分类。

参数说明

参数名 参数含义
dataset 数据集类型
num_epochs 对抗训练迭代的次数
epsilon 样本扰动的偏移值
learn_rate 训练的学习率
alpha 参与对抗样本一次的比例
train_externals 是否使用外部预训练模型

1.2. NAT加固算法

算法介绍

New adversarial training (NAT)

对抗训练(adversarial training)是增强神经网络鲁棒性的重要方式。在对抗训练的过程中,样本会被混合一些微小的扰动(改变很小,但是很可能造成误分类),然后使神经网络适应这种改变,从而对对抗样本具有鲁棒性。

对抗训练的一般性原理,对抗训练可以概括为如下的最大最小化公式:

\[{min}_{\theta}E_{(Z,y)} \sim D[{max}_{||\delta|| \leq \epsilon} L(f_\theta (X + \delta),y)]\]

内层(中括号内)是一个最大化,其中X表示样本的输入表示,δ表示叠加在输入上的扰动,θ是神经网络函数,y是样本的标签,L(fθ(X + δ), y)则表示在样本X上叠加一个扰动δ,再经过神经网络函数,与标签y比较得到的损失。 maxL是优化目标,即寻找使损失函数最大的扰动,简单来讲就是添加的扰动要尽量让神经网络迷惑。

外层就是对神经网络进行优化的最小化公式,即当扰动固定的情况下,我们训练神经网络模型使得在训练数据上的损失最小,也就是说,使模型具有一定的鲁棒性能够适应这种扰动。

这里过程中生成的对抗样本采用RLLC的方式生成,其他的过程和OAT的类似。

参数说明

参数名 参数含义
num_epochs 对抗训练迭代的次数,该数值越大,时间开销越大
clip_eps_min 随机样本生成的下限
clip_eps_max 随机样本生成的上限
adv_radio 求loss的时候对抗样本占比
eps_mu 随机样本分布的中心
eps_sigma 随机样本分布的标准差

1.3. OAT加固算法

算法介绍

Original adversarial training (OAT)

对抗训练(adversarial training)是增强神经网络鲁棒性的重要方式。在对抗训练的过程中,样本会被混合一些微小的扰动(改变很小,但是很可能造成误分类),然后使神经网络适应这种改变,从而对对抗样本具有鲁棒性。

对抗训练的一般性原理,对抗训练可以概括为如下的最大最小化公式:

\[{min}_{\theta}E_{(Z,y)} \sim D[{max}_{||\delta|| \leq \epsilon} L(f_\theta (X + \delta),y)]\]

内层(中括号内)是一个最大化,其中X表示样本的输入表示,δ表示叠加在输入上的扰动,θ是神经网络函数,y是样本的标签,L(fθ(X + δ), y)则表示在样本X上叠加一个扰动δ,再经过神经网络函数,与标签y比较得到的损失。 maxL是优化目标,即寻找使损失函数最大的扰动,简单来讲就是添加的扰动要尽量让神经网络迷惑。

外层就是对神经网络进行优化的最小化公式,即当扰动固定的情况下,我们训练神经网络模型使得在训练数据上的损失最小,也就是说,使模型具有一定的鲁棒性能够适应这种扰动。

参数说明

参数名 参数含义
num_epochs 对抗训练迭代的次数,该数值越大,时间开销越大
epsilon 样本扰动的偏移值
attak_step_num 对抗攻击训练中一次选用的样本数目
alpha 参与对抗样本一次的比例

1.4. PAT加固算法

算法介绍

PAT的全称是PGD adversarial training(PGD对抗训练),在白盒环境下,通过PGD攻击算法生成对抗样本,然后用对抗样本和普通样本混合训练模型。

基于FGSM攻击方法,Madry等人引入迭代的过程,并且每次将噪音映射到某个特定空间中形成了目前最为常用的PGD攻击方法:

\[\begin{split}\\ x_0^{'}=x \\x_{n+1}^{'}=\prod_{x+S}{x_n^{'}+\epsilon \cdot sign(\triangledown_xJ(\theta,x_n^{'},y))}\end{split}\]

Goodfellow等人最早提出对抗训练的思想,该论文尝试在训练过程中加入对抗样本来提升模型的鲁棒性,其损失函数定义如下:

\[\tilde{J}(\theta,x,y)=\alpha \cdot J(\theta,x,y)+(1-\alpha)\cdot J(\theta,x+\epsilon \cdot sign(\triangledown_x J(\theta,x,y)))\]

其中 J(θ, x, y)是模型对于普通样本的损失函数,作者通过 x + ε · sign(▽x J(θ,x,y))来构造对抗样本,并要求模型能正确对其分类。

PAT对抗训练优化的目标函数如下:

\[\theta^*={min}_\theta E_{(x,y)}[{max}_\sigma l(x+\sigma;y;F_\theta)]\]

其中l(x + σ;y;Fθ)为模型Fθ在对抗噪音大小为σ下的损失函数。

在优化目标函数过程中,该方法在每一个批数据(mini-batch)中加入同样数量的普通样本和对抗样本(由PGD攻击生成)。

参数说明

参数名 参数含义
α 对抗训练中普通样本和对抗样本的混合比例,一般设置为1:1。

1.5. RAND加固算法

算法介绍

Rand方法利用随机化的方法来对输入图片引入随机性操作,作为一个预处理模块,该方法可以有效的提升深度神经网络对于对抗样本噪音的防御能力和鲁棒性。

该方法的具体操作有如下两种方式:

  1. 对于原始图片X,对其大小W·H·3进行随机修改,变化为W’·H’·3,这其中大小的变换要在合理范围内(如:2个像素值);
  2. 第二种方式是对原始图片X进行随机填充。使用值为0的像素在原始图片的四周进行填充。

这两种方式对于输入图片引入很多随机性,从而削弱了对抗攻击的效果,提升了模型对抗鲁棒性。

参数说明

参数名 参数含义
rnd 随机变化后的图片大小。