[0035] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0037] 实施例1:
[0038] 本发明通过下述技术方案实现,如图1所示,提出一种基于图像超分辨重建的对抗样本防御方法,分为两大部分:第一部分是将训练样本输入防御模型进行训练,得到训练后的防御模型;第二部分将初始样本输入训练好的防御模型中,进行防御恶意攻击后得到正常样本,再将正常样本输入分类模型,从而得到正确的分类结果,达到防御恶意攻击的效果。
[0039] 第一部分是对防御模型进行训练,输入的训练样本为干净样本,训练过程分为对训练样本进行图像预处理和图像重建,输出正常样本。
[0040] 请参见图2,首先将干净样本输入防御模型,在干净样本上添加一层与该干净样本形状相同的高斯噪音(GN),使得干净样本中产生随机噪音。对抗样本的产生其最根本的原因是人为的对干净样本添加一些肉眼看不见的扰动,这些扰动的加入导致训练好的分类模型在分类时出现错误,最终造成恶意攻击的现象。本方案在干净样本上添加高斯噪音与对抗样本的生成原理是基本一致的,但在干净样本上添加的高斯噪音不是特殊或指定的扰动,而是随机数据,比如背景技术中在停车标志中加入直行的扰动就是特殊扰动或指定扰动。直接在干净数据上添加高斯噪音相比于生成对抗样本的好处是,在防御模型训练时不需要再生成训练集和测试集,降低了防御模型训练的成本和代价,同时也减少了训练过程中带来的意外干扰。
[0041] 请参见图2,在干净样本产生了随机噪音后的样本中加入非局部均值滤波信号(NLM),通过该样本邻域间所有值的相似性来确定对抗样本当前的像素权值,可以去除样本中的部分随机噪音,对后续进行图像重建更有利,有助于达到去噪的效果。
[0042] 现有的均值滤波法(信号)也能达到相似的效果,但是会抹平图像的边缘信息,然而本方案选择的非局部均值滤波信号在满足彻底打乱样本中的扰动的同时,还能在一定程度上消除一部分的随机噪音,并保留图像更多的原始信息不被破坏,对接下来进行的图像重建步骤更有利。
[0043] 需要说明的是,请参见图2,在向样本中添加随机的高斯噪音时,存在一个参数λ,是代表添加的随机高斯噪音的强度。λ设置得越大,添加随机高斯噪音后对样本造成的破坏程度越大,会导致其原始信息损失过多,则后续防御模型输出的正常样本的图像质量会有很大影响,因此应该根据实际的样本的情况适当设置λ。
[0044] 请参见图3,使用去噪编码器(DAE)对进行了图像预处理的样本进行去噪,以去除样本中的噪音,得到去噪后的样本;将去噪后的样本输入FSRCNN模型中进行网络训练(图像超分辨重建网络),对去噪后的样本进行重建,输出正常样本,相当于去噪后的样本是模糊图,输入FSRCNN模型训练后得到清晰图,完成对防御模型的训练,得到训练后的防御模型(GN‑CNN模型)。通常神经网络训练的结构为卷积、激活函数、池化层、全连接,本方案为了避免在训练过程中图像细节的丢失,在构建FSRCNN模型时没有加入池化层。
[0045] FSRCNN模型中的激活函数选择ELU函数,而不是常用的ReLU函数,因为有学者发现ReLU函数在进行网络训练的过程中某些神经元可能永远不会被激活,导致模型相应的参数永远不能被更新。
[0046] 使用均方误差作为FSRCNN模型的损失函数,优化的目标为FSRCNN模型的输出值与干净样本(对抗样本加入扰动之前的样本)的真实值之间距离的平方和,该损失函数的表达式为:
[0047]
[0048] 其中yi和 分别表示干净样本的图像和经过FSRCNN模型输出的图像,在对抗样本防御模型中为了让去噪自编码器能为FSRCNN模型提供低质量图像,因此如图3中所示的lmse,在去噪自编码器对经过图像预处理的样本去噪结束时,以及FSRCNN模型的网络训练结束时分别使用一次均方误差。
[0049] 为保证FSRCNN模型的网络训练能够输出高质量的图像,在FSRCNN模型的损失函数中加入全变差正则化函数(TV,Total Variation loss),这样可以在进行图像重建的过程中抑制噪音以及保持重建后的图像的空间平滑性。其原理是求取图像中每一个像素和横向的下一个像素的差的平方,加上纵向的下一个像素的差的平方,TV函数在二维图像上的表达式为:
[0050]
[0051] 该TV函数计算的是图像中梯度幅值的积分,让初始样本的图像与FSRCNN模型输出的图像的TV值相等便可以最大程度上使得FSRCNN模型输出图像接近于初始图像。那么对抗样本防御模型的损失函数表达式为:
[0052]
[0053] 其中,yi表示干净样本,y′表示经过去噪编码器后输出的图像,y″i表示FSRCNN模型输出的图像,μ表示一个超参数值,用于控制正则化的强度。
[0054] 请参见图3,得到与干净样本的图像相近甚至相同的图像后,便完成了FSRCNN模型的网络训练,去噪后的样本输入FSRCNN模型后,使用大小为9*9的卷积核对该去噪后的对抗样本进行特征抽取,得到64通道的特征图;使用大小为1*1的卷积核对该64通道的特征图进行降维,得到32通道的特征图;使用多个大小为3*3的卷积核对32通道的特征图进行非线性映射,再使用大小为1*1的卷积核对进行了非线性映射的32通道的特征图进行升维,得到64通道的特征图;使用大小为9*9的卷积核对升维得到的64通道的特征图输出为正常样本,完成图像重建,得到防御了对抗样本攻击的正常样本。
[0055] 完成对防御模型的训练后,即可进入第二部分,请参见图1,使用训练好的防御模型对初始样本进行恶意攻击的防御,输入的初始样本可以为对抗样本,也可以为干净样本。
[0056] 作为一种可实施方式,如果输入的初始样本为对抗样本,将对抗样本输入训练好的防御模型,在所述对抗样本上添加一层与该对抗样本形状相同的高斯噪音,使得对抗样本中的恶意扰动被打乱;在被打乱了恶意扰动的对抗样本中加入非局部均值滤波信号,通过对抗样本邻域间所有值的相似性来确定对抗样本当前的像素权值,使得对抗样本中的恶意扰动再次被打乱,同时可以消除一部分噪音,完成对对抗样本的图像预处理。
[0057] 使用去噪编码器对进行了图像预处理的对抗样本进行去噪,以去除对抗样本中的噪音,输出去噪后的对抗样本;将去噪后的对抗样本输入FSRCNN模型中,对去噪后的对抗样本进行重建,以输出正常样本。将输出的正常样本经过分类模型进行分类后,即可得到正确的分类结果。
[0058] 所述将去噪后的对抗样本输入FSRCNN模型中,对去噪后的对抗样本进行重建,以输出正常样本的步骤,包括:使用大小为9*9的卷积核对该去噪后的对抗样本进行特征抽取,得到64通道的特征图;使用大小为1*1的卷积核对该64通道的特征图进行降维,得到32通道的特征图;使用多个大小为3*3的卷积核对32通道的特征图进行非线性映射,再使用大小为1*1的卷积核对进行了非线性映射的32通道的特征图进行升维,得到64通道的特征图;使用大小为9*9的卷积核对升维得到的64通道的特征图输出为正常样本。
[0059] 对抗样本包括目标攻击性对抗样本和非目标攻击性对抗样本,无论是目标攻击性还是非目标攻击性,经过图像预处理做统一处理后,使其失去攻击性,然后再进行图像重建恢复为正常样本。
[0060] 作为另一种可实施方式,如果输入的初始样本为干净样本,将干净样本输入训练好的防御模型,在所述干净样本上添加一层与该干净样本形状相同的高斯噪音,使得干净样本中产生随机噪音;在干净样本产生了随机噪音后的样本中加入非局部均值滤波信号,通过该样本邻域间所有值的相似性来确定对抗样本当前的像素权值,同时可以消除一部分噪音,完成对样本的图像预处理。
[0061] 需要说明的是,由于本实施方式使用的是干净样本,不存在恶意扰动,因此加入非局部均值滤波信号时就不会像使用对抗样本那样对对抗样本中的恶意扰动进行打乱,但同时也并不会影响干净样本的质量,还能去除一部分噪音。
[0062] 使用去噪编码器对进行了图像预处理的样本进行去噪,以去除样本中的噪音,得到去噪后的样本;将去噪后的样本输入FSRCNN模型中,对去噪后的样本进行重建,以输出正常样本。将输出的正常样本经过分类模型进行分类后,即可得到正确的分类结果。
[0063] 所述将去噪后的样本输入FSRCNN模型中,对去噪后的样本进行重建,以输出正常样本的步骤,包括:使用大小为9*9的卷积核对该去噪后的样本进行特征抽取,得到64通道的特征图;使用大小为1*1的卷积核对该64通道的特征图进行降维,得到32通道的特征图;使用多个大小为3*3的卷积核对32通道的特征图进行非线性映射,再使用大小为1*1的卷积核对进行了非线性映射的32通道的特征图进行升维,得到64通道的特征图;使用大小为9*9的卷积核对升维得到的64通道的特征图输出为正常样本。
[0064] 为了使结果更加具有说服力,实施例2选择了MNIST数据集对防御后再分类的样本结果进行测试。
[0065] 实施例2:
[0066] 本实施例针对实施例1的方法选择MNIST数据集对防御结果进行测试。
[0067] MNIST数据集由美国国家标准与研究所(National Institute of Standards and Technology,NIST)提供,一共包含了70000条图像数据和其对应的标签,其中有60000条训练数据以及10000条测试数据,每一张图像数据都是有28*28个像素点构成的单通道图像,每个像素点用一个灰度值来表示,图像数据的最小值是0,最大值接近1,这是因为数据已经经过标准化处理了,如果没有进行标准化处理,图像的像素值会在0~255之间,所有图像分数0到9十个不同的类别。
[0068] 那么MNIST数据集上防御模型(GN‑CNN模型)的网络结构及其对应的参数如表1所示:
[0069]
[0070] 表1
[0071] 网络中每一层的输出数据作为下一层的输入数据,图像样本在经过数据预处理后将其送入卷积核为3*3的去噪自编码器中进行去噪得到低质量的图像样本,然后输入FSRCNN模型进行超分辨重建,由9*9大小的卷积核对该图像样本进行特征抽取得到64通道的特征图,为了减少计算量使用1*1的卷积核进行降维到32通道,再用多个3*3的卷积核进行非线性映射,然后使用1*1的卷积核进行升维到64通道,最后再使用9*9的卷积核来输出图像。
[0072] 在训练MNIST数据集上的防御模型的时候设置迭代次数为50次,迭代次数完成时该防御模型的损失稳定在0.01左右,在数据预处理中加入的随机噪音强度设置为0.4,NLM中的过滤器强度设置为30。GN‑CNN防御模型的训练损失收敛情况如图4所示,从图4中我们可以看到,GN‑CNN防御模型在MNIST数据集上可以获得较为理想的的收敛效果。
[0073] 在利用该防御模型进行防御的时候预处理中的随机噪音强度与训练该模型时相比设置的相对较小一些其防御效果会更好,在本方案中随机噪音强度的值可以设置为0.2,这是因为与训练时的干净样本相比,对抗样本中本就带有一层噪音,而且经过实验测试表明经过这种操作对后干净样本在原始分类模型上的准确率影响不大。另外,在本方案的实验测试中,GN‑CNN防御模型的防御能力以生成的对抗样本经防御模型重建后在原始分类模型上的准确率来衡量,准确率越高,那么模型的防御能力越强,反之越弱。
[0074] 本实施例的其他部分与上述的实施例相同,故不再赘述。
[0075] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。