基于防御蒸馏的对抗样本识别模型的研究①

2020-10-29 05:04杨曼婷
关键词:扰动灰度标签

杨曼婷

(安徽理工大学计算机科学与工程学院,安徽 淮南 232001)

0 引 言

近年来深度学习(Deep Learning)[1]技术飞速发展,越来越多的生产生活领域运用深度学习思想来处理问题。深度神经网络也在图像处理,语音识别,机器翻译等人工智能领域取得了显著的发展,其能力已经远远的超过了人类。深度神经网络具有层次结构,通过多层处理,将在低层的特征逐步转化为高层特征表达出来,对输入进行分类。运用简单的模型解决复杂的分类问题。但遗憾的是,深度神经网络也存在一些缺陷[2],它很容易受到一些恶意设计的输入,以触发目标深度学习模型产生错误的分类的攻击,即对抗样本的攻击。为了解决上述问题,各国学者从模型与样本的各个角度提出解决方法。其中,防御蒸馏(DD)[3]是现有的较为有效的防御方法之一,防御蒸馏是在蒸馏模型的基础在对抗防御上的运用。蒸馏其实就是一个训练程序,使用从不同的DNN传来的知识来训练一个目标DNN。J.Ba和R.Caruana[4]解释了为何神经网络需要多个中间层,介绍了神经网络处理信息的过程,G.Hinton[5]在其思想下正式引入了蒸馏概念。通过减少或平滑网络梯度的幅度,使防御模型在对抗样本中的扰动不那么敏感。A.Madry[6]等人提出基于PGD的对抗训练(PAT),通过用PGD迭代生成的对抗样本重新训练模型,已达到对对抗样本的识别能力。A.S.Ross和F.Doshi-Velez[7]直接优化了模型,以便在训练期间预测更加平滑的梯度,提出了梯度正则化(IGR),修改模型自身的性能提高模型的鲁棒性。

本文提出了一种压缩样本训练防御蒸馏模型的方法,将防御蒸馏思想与数据预处理方法相结合,在样本输入模型之前,先对对抗样本进行特征压缩处理,减少图像中每个像素的颜色深度,再将压缩后的样本联合原模型产生的概率向量训练蒸馏模型。

1 相关工作

1.1 对抗样本

图1 干净样本(识别为5)

图2 加入扰动的对抗样本(将1识别为8)

x′=x+ε·sign(xL(g(x;θ),t))

(1)

其中,L是损失函数。攻击之后是剪切操作,以确保x∈[0,1]。攻击强度由扰动约束决定。

以及FGSM的多步变体,投影梯度下降算法(Project Gradient Descent,PGD)[6],它是最强的L∞对抗性示例生成算法之一。当x1=x作为初始化时,扰动数据x的迭代更新可表示为:

xt+1=∏p∈(x)(xt+α·sign(xL(g(xt;θ),t)))

(2)

其中P(x)是由x±ε界定的投影空间是直到Nstep的阶跃指数,a是步长。

1.2 防御蒸馏

防御蒸馏就是使用蒸馏[5]思想来训练一个模型,其神经网络中softmax层仅仅是一个层,它考虑由DNN的最后一个隐藏层(称为logits)产生的输出的向量Z(x),并将它们归一化成概率向量F(x),该概率向量F(x)是DNN的输出,为数据集的每个类分配一个输入x的概率。在softmax层中,一个给定的神经元,对应于一个由i∈0,…,N-1(其中N是类的数目)索引的类。计算下列输出向量F(x)的i分量:

(3)

其中Z(x)=Z0(x),…,ZN-1(x)是对应于数据集中N个类中每个类的隐藏层输出的N个logit,T是一个名为温度的参数,并且在softmax层中共享。温度在蒸馏的潜在现象中起着中心作用。在蒸馏过程中,把这个温度称为蒸馏温度。对第一个神经网络进行训练的唯一约束条件是,在softmax层中应使用一个大于1的高温。

通过蒸馏[5]提取的知识,以概率向量的形式,在较小的网络中传输,以保持与较大的网络相当的精度,也有助于提高DNN在训练数据集之外的泛化能力,从而提高其对扰动的恢复能力。防御蒸馏[8]与Hinton等提出的原蒸馏的主要区别。是保持了相同的网络结构来训练原始网络和蒸馏网络。由此产生的防御性蒸馏训练程序如图3所示。

图3 防御蒸馏流程示意

2 本文方法

本文提出了一种简单有效的模型训练方法来防御对抗样本,将该方法称之为Pre-DD(Pretreatment Distillation as a defense)。Pre-DD方法首次将图像特征压缩与防御蒸馏[8]操作相结合,通过对训练时期的输入样本进行特征压缩处理来减少对抗样本中的对抗噪声,使得对抗样本攻击失败。由于对抗样本即是在样本中加入扰动,改变各像素的颜色深度。所以将样本的颜色深度降低,减少扰动对图像的干扰。而对于经过特征压缩处理后的正常样本,图片基本特性保持不变,标签不发生变化。所以我们通过此方法来提高模型对于样本的识别精度。

2.1 Pre-DD方法

防御性蒸馏训练的输入是一组具有类标签的样本X,所以,设x∈X是一个样本,用Y(x)表示它的离散标签,也称为硬标签。Y(x)是一个指示向量,使得唯一的非零元素对应于正确的类索引(例如,(0,0,1,0,…,0)表示样本位于索引为2的类中)。给定训练集{(x,Y(x)):x∈X},在温度T下训练了一个具有softmax层的基础深度神经网络F。F(x)是所有可能标号类上的一个概率向量。更准确地说,如果模型F有参数θF,则它在X上的输出是概率分布F(x)=p(·|X,θF),其中对于标签类中的任何一个标签Y,p(Y|X,θF)给出了标签Y的概率。为了简化以后的记法,使用Fi(x)来表示输入x在i∈0,…,N-1类在模型F和参数θF中的概率。通过考虑x∈X的形式(x,F(x))的样本,构造了一个新的训练集,来训练的目标DNN模型Fd,其softmax层的温度仍为T。不使用x的硬标签Y(x),而是在标号类上使用编码F的置信概率的软标签F(x)。利用新的训练集{(x,F(x)):x∈X},又训练了一个与F具有相同神经网络结构。

Pre-DD方法的处理过程,即在图像输入到DNN分类器之前,采用降低颜色深度方法对数据进行降噪。输入是一组具有类标签的样本X。根据给定训练集{(x,Y(x)):x∈X},在温度T下训练了一个具有softmax层的深度神经网络F。通过神经网络识别的样本,构造了一个新的训练集,即不使用X的硬标签Y(x),而是在标号类上使用基础神经网络产生的F的概率向量F(x),即样本的软标签。将新的训练集中的样本进行特征压缩,降低其颜色深度,但其软标签不变。利用新的训练集{(x,F(x)):x∈X},又训练了一个与F具有相同神经网络结构的目标模型Fd,其softmax层的温度仍为T,利用训练好的Fd模型去识别对抗样本。

常用的图像压缩方法是利用颜色位的深度,因此降低颜色位的深度可以在不影响分类器精度的情况下减少对抗性的干扰。在常用的测试数据集中,关注的两种常见表示形式是8位灰度和24位颜色。我们实验采用的是8位的灰度图像,它为每个像素提供28=256个可能的值。8位值表示像素的强度,其中0为黑色,255为白色,中间数字表示不同的灰度。8位缩放可以扩展以显示具有单独红、绿、蓝三种颜色通道的彩色图像。手写数学数据都是灰度图像,灰度值为8,将图片的灰度值降低为4,降低颜色的深度。

图4 Pre-DD方法处理流程

2.2 实验建立

本文实验部分选用MNIST验证集,MNIST验证集包含7万个手写数字图像(0到9)。其中,6万张图像用作训练数据,其余10,000张图像用于测试。每幅图像为具有28*28个像素编码为8位灰度图。本实验利用自行编写的简单的三层神经网络其中第一层神经元个数为300,第二层神经元个数为100,输出层神经元个数为10。利用降低颜色深度有损压缩来对输入图片进行压缩,降低颜色深度有损压缩可以有效的减少人类难以察觉的图像细节。使用Numpy库在Python中实现了位颜色深度缩减操作。输入和输出在相同的数值尺度上[0,1],这样就不需要改变任何目标模型。为了减小到i位深度(1i7),首先将输入值与2i-1(由于零值而减去1)相乘,然后取整为整数。再将整数缩放回[0,1],除以2i-1。通过整数舍入运算,表示的信息容量从8位减少到i位。主要选用FGSM,PGD攻击方法去分别生成对抗样本。

3 实验结果

3.1 训练神经网络模型

首先在PyTorch里面建立了一个三层全连接的基础神经网络。这个三层网络的各个参数如下:输入的维度为28*28,(和我们的数据集MNIST的图片大小也为28*28。输出层)神经元的个数为10,因为这是一个分类问题,一共有0~9这10个数字,所以是10分类。损失函数定义为分类问题中最常见的损失函数交叉熵,使用随机梯度下降来优化损失函数。

对随机选择的60000张的图片训练基础模型,再采用特征压缩方法处理这些随机样本,将处理后的图片输入到模型。对训练好的样本进行识别精度的测试,测试从MNIST数据集中随机选取10000个测试样本,记录各个模型在不同学习率下的识别精度。

普通蒸馏方法和进行特征压缩处理后的神经网络模型对普通未加噪的样本的识别精度随学习率的变化结果如图5。图5展示了输入图片经过特征压缩后的模型的样本精度的变化,以及防御蒸馏模型在识别干净样本时的精度随着学习率的增加的突减的变化。而的特征压缩蒸馏模型,对学习率的变化反应并没有那么剧烈,而且在学习率较大时对样本的识别精度均大于防御蒸馏模型。在学习率为0.0125时特征压缩蒸馏模型的识别精度为45.22%,而防御蒸馏模型的识别精度仅为11.35%。并且在学习率不断增加的情况下,我们的模型识别精度始终比防御蒸馏模型的识别精度高。

图5 不同学习率下模型的识别精度

将训练完的目标模型的性能进行了实验,观察其对于Epsilon参数的敏感程度。如图6所示,模型在扰动较低的情况下,对于对抗样本的识别还较高。在扰动过大时,模型对样本的识别准确度就不断降低。但随着扰动的不断增加,对抗样本的失真也就更加的明显,所以不考虑扰动过大的样本对于模型识别精度的影响。

图6 Pre-DD模型对Epsilon参数的敏感度

3.2 测试模型的对抗样本的误识别率

为了定量的评估Pre-DD方法的性能,将本文方法训练的模型与防御蒸馏方法训练的模型进行对比,针对于不同的攻击方法,考察模型对对抗样本的识别率。在学习率为0.0125的条件下测试Pre-DD与DD对于对抗样本的识别能力。具体细节参见表1,可以看出,本文方法能够有效地抵御FGSM和PGD两种攻击。

表1 实验结果对比

4 结 论

本文融合防御蒸馏与特征压缩的思想,提出一种Pre-DD方法对模型输入数据进行预处理来降低对抗样本中的噪声量,以便模型能正确的对样本进行分类。该方法在训练神经网络模型时需先将样本进行压缩。在进行样本时,将所有传入模型的样本都进行相同的压缩操作。特征压缩能够有效减少对抗样本图片中的细小噪声,降低对抗样本中的噪声量,使得模型能更好的识别样本进行正确的分类。实验结果表明,Pre-DD方法能够在保证模型对原始样本识别精确度的同时对对抗样本的正确分类也有明显的提高。

猜你喜欢
扰动灰度标签
Bernoulli泛函上典则酉对合的扰动
采用改进导重法的拓扑结构灰度单元过滤技术
转换机制下具有非线性扰动的随机SIVS传染病模型的定性分析
一类四次扰动Liénard系统的极限环分支
带扰动块的细长旋成体背部绕流数值模拟
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
基于最大加权投影求解的彩色图像灰度化对比度保留算法
让衣柜摆脱“杂乱无章”的标签