深度学习中的图像生成对抗攻击与防御方法综述 (深度学习)
引言
深度学习技术的发展促进了图像生成对抗攻击领域的兴起。图像生成对抗攻击是指通过生成对抗样本来欺骗深度学习模型,使其做出错误的分类。
为了抵御图像生成对抗攻击,研究者们提出了各种防御方法。本文将对图像生成对抗攻击与防御方法进行综述。
图像生成对抗攻击方法
基于梯度的攻击方法
基于梯度的攻击方法通过计算损失函数的梯度来生成对抗样本。其中,FGSM是最早提出的一种基于梯度的攻击方法,通过在输入图像上添加一个扰动,使得模型产生错误的分类结果。
基于优化的攻击方法
基于优化的攻击方法通过优化算法来生成对抗样本。常见的优化算法包括进化算法和迭代优化。这些方法可以生成强度更高的对抗样本,但也需要更多的计算时间。
图像生成对抗防御方法
对抗训练
对抗训练是最常见的防御方法。它通过在训练深度学习模型时,同时使用对抗样本进行训练,以增强模型对对抗样本的鲁棒性。
基于模型修正的防御方法
基于模型修正的防御方法通过对输入图像进行处理来防御对抗攻击。常见的处理方法包括使用降噪滤波器和对抗样本检测器。
对抗攻击与防御方法的评估
评估对抗攻击与防御方法的性能至关重要。常用的评估指标包括攻击成功率、攻击强度和防御成功率。对抗样本的可视化也有助于评估攻击与防御方法的效果。
挑战与未来方向
尽管取得了进展,图像生成对抗攻击与防御方法仍面临一些挑战:
- 攻击方法不断演化,可能会绕过现有防御方法。
- 防御方法的鲁棒性需要提高。
- 不同数据集和模型上的攻击与防御效果存在差异。
未来研究方向包括:
- 提高防御方法的鲁棒性和可解释性。
- 设计更有效的攻击方法。
- 探索对抗攻击与防御方法在其他领域的应用。
结论
图像生成对抗攻击与防御方法是一个活跃的研究领域,具有广阔的发展前景。研究者们提出的方法不断发展,为人工智能系统的安全和鲁棒性提供了新的思路。未来,随着深度学习技术的深入发展,图像生成对抗攻击与防御方法将继续受到广泛关注。
GAN的基本介绍和变种
GAN,全称为Generative Adversarial Nets,直译为“生成式对抗网络”。GAN作为生成模型的代表,自2014年被Ian Goodfellow提出后引起了业界的广泛关注并不断涌现出新的改进模型,深度学习泰斗之一的Yann LeCun高度评价GAN是机器学习界近十年来最有意思的想法。
GAN始终存在训练难、稳定性差以及模型崩塌(Model Collapse)等问题。产生这种不匹配的根本原因其实还是对GAN背后产生作用的理论机制没有探索清楚。
在推动GAN应用方面,2017年有两项技术是非常值得关注的。其中一个是CycleGAN,其本质是利用对偶学习并结合GAN机制来优化生成图片的效果的,采取类似思想的包括DualGAN以及DiscoGAN等,包括后续的很多改进模型例如StarGAN等。CycleGAN的重要性主要在于使得GAN系列的模型不再局限于监督学习,它引入了无监督学习的方式,只要准备两个不同领域的图片集合即可,不需要训练模型所需的两个领域的图片一一对应,这样极大扩展了它的使用范围并降低了应用的普及难度。
另外一项值得关注的技术是英伟达采取“渐进式生成”技术路线的GAN方案,这项方案的引人之处在于使得计算机可以生成1024*1024大小的高清图片,它是目前无论图像清晰度还是图片生成质量都达到最好效果的技术,其生成的明星图片几乎可以达到以假乱真的效果(参考图3)。英伟达这项由粗到细,首先生成图像的模糊轮廓,再逐步添加细节的思想其实并非特别新颖的思路,在之前的StackGAN等很多方案都采用了类似思想,它的独特之处在于这种由粗到细的网络结构是动态生成的而非事先固定的静态网络,更关键的是产生的图片效果特别好
首先,有一个一代的 generator,它能生成一些很差的图片,然后有一个一代的 discriminator,它能准确的把生成的图片,和真实的图片分类,简而言之,这个 discriminator 就是一个二分类器,对生成的图片输出 0,对真实的图片输出 1。
接着,开始训练出二代的 generator,它能生成稍好一点的图片,能够让一代的 discriminator 认为这些生成的图片是真实的图片。然后会训练出一个二代的 discriminator,它能准确的识别出真实的图片,和二代 generator 生成的图片。以此类推,会有三代,四代。。。n 代的 generator 和 discriminator,最后 discriminator 无法分辨生成的图片和真实图片,这个网络就拟合了。
对抗样本(adversarial examples)是机器学习模型的输入,攻击者故意设计它们以引起模型出错;它们就像是机器的视觉错觉。
对抗样本指的是一个经过微小调整就可以让机器学习算法输出错误结果的输入样本。在图像识别中,可以理解为原来被一个卷积神经网络(CNN)分类为一个类(比如“熊猫”)的图片,经过非常细微甚至人眼无法察觉的改动后,突然被误分成另一个类(比如“长臂猿”)。
对抗训练
对抗训练是防御对抗样本攻击的一种方法。将对抗样本和正常样本一起训练是一种有效的正则化,可以提高模型的准确度,同时也能有效降低对抗样本的攻击成功率。不过这种防御也只是针对同样用来产生训练集中的对抗样本的方法。
确实在下图中可以看到,训练集是正常样本和对抗样本,测试集是正常样本的红线比训练集和测试集都是正常样本的错误率要降低,说明对抗训练是有正则化的功能。
在训练的时候直接生成对抗样本是比较低效的,之前提到的FGSM是一个高效的对抗训练方法。只需要改变目标函数就能在训练每个正常样本的同时也考虑了对抗样本。模型训练去给对抗样本赋予和正常样本原分类同样的类别。
用经过FGSM训练的网络,可以有效的防御用FGSM产生的对抗样本攻击,但是如果换其他对抗攻击方法,也会被攻破。
对抗样本的工作思路,可以有以下两个方面的意义:
结论
要为集成模型创建对抗样本,因为梯度方法的问题,难度会加大。但是生成的算法更为可行有效。
单个模型出现盲点可以由其他模型弥补,采用的会是输出结果最好的模型数据。
我们发现当我们用动态创建的对抗模型来训练算法时,能够解决这些对抗样本的问题。这是因为当模型面对这些可能出现问题的对抗低概率区域时,可以产生更高的“免疫力”。这同时也支持了低概率区域的论点,在这些区域的对抗样本更难处理。
DCGAN是继GAN之后比较好的改进,其主要的改进主要是在网络结构上,到目前为止,DCGAN的网络结构还是被广泛的使用,DCGAN极大的提升了GAN训练的稳定性以及生成结果质量。
论文的主要贡献是:
◆为GAN的训练提供了一个很好的网络拓扑结构。
◆表明生成的特征具有向量的计算特性。
D(x)表示D网络判断真实图片是否真实的概率(因为x是真实的,所以对于D来说,这个值越接近1越好)。而D(G(z))D(G(z))是为了D判断G生成的图片是否真实的概率。
G的目的:G应该希望自己生成的图片“越接近真实越好”。也就是说,G希望D(G(z))D(G(z))尽可能得大,这是V(D,G)V(D,G)会变小。
D的目的:D的能力越强,D(x)D(x)应该越大,D(G(x))D(G(x))应该越小。因此D的目的和G不同,D希望V(D,G)V(D,G)越大越好。
DCGAN对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度,这些改变有:
取消所有pooling层。G网络中使用转置卷积(transposed convolutional layer)进行上采样,D网络中用加入stride的卷积代替pooling。
在D和G中均使用batch normalization
去掉FC层,使网络变为全卷积网络
G网络中使用ReLU作为激活函数,最后一层使用tanh
D网络中使用LeakyReLU作为激活函数
DCGAN中的G网络示意:
DCGAN的生成器网络结构如上图所示,相较原始的GAN,DCGAN几乎完全使用了卷积层代替全链接层,判别器几乎是和生成器对称的,从上图中我们可以看到,整个网络没有pooling层和上采样层的存在,实际上是使用了带步长(fractional-strided)的卷积代替了上采样,以增加训练的稳定性。
DCGAN能改进GAN训练稳定的原因主要有:
◆使用步长卷积代替上采样层,卷积在提取图像特征上具有很好的作用,并且使用卷积代替全连接层。
◆生成器G和判别器D中几乎每一层都使用batchnorm层,将特征层的输出归一化到一起,加速了训练,提升了训练的稳定性。(生成器的最后一层和判别器的第一层不加batchnorm)
◆在判别器中使用leakrelu激活函数,而不是RELU,防止梯度稀疏,生成器中仍然采用relu,但是输出层采用tanh
◆使用adam优化器训练,并且学习率最好是0.0002,(我也试过其他学习率,不得不说0.0002是表现最好的了)
BigGAN在训练中 Batch 采用了很大的 Batch,已经达到了 2048(我们平常训练 Batch 正常都是 64 居多),在卷积的通道上也是变大了,还有就是网络的参数变多了,在 2048 的 Batch 下整个网络的参数达到了接近 16 亿
莫德莱(一种基于深度学习的图像生成算法)
介绍
莫德莱(Modèle)是一种基于深度学习的图像生成算法,由法国研究人员于2016年提出。它使用了一种全新的生成模型——变分自编码器(VariationalAutoencoder,VAE),并将其与卷积神经网络(ConvolutionalNeuralNetwork,CNN)相结合,实现了高质量的图像生成。
操作步骤
1.数据集准备
莫德莱需要大量的图像数据来训练模型,因此首先需要准备一个足够大的数据集。可以使用公开的数据集,如MNIST、CIFAR-10等,也可以使用自己的数据集。数据集的大小和质量对模型的训练效果有很大影响,因此需要认真选择。
2.模型搭建
莫德莱的模型由两部分组成:编码器和解码器。编码器将输入的图像转换成潜在空间中的向量,解码器将潜在空间中的向量转换成输出的图像。其中,潜在空间是一个低维的向量空间,可以看作是图像的“特征表达”。
编码器和解码器都是由多层卷积神经网络组成的。编码器将图像逐层压缩,最终输出一个低维向量;解码器则将这个向量逐层解压缩,最终输出一个与原图像相似的图像。
3.模型训练
模型训练是莫德莱的核心。训练过程中,我们需要最小化图像的重建误差和潜在向量的分布误差。具体来说,我们需要使用重建误差和KL散度来定义损失函数,然后使用反向传播算法来更新模型参数。
4.图像生成
模型训练完成后,我们可以使用编码器将任意图像转换成潜在向量,然后使用解码器将潜在向量转换成输出的图像。由于潜在向量是一个低维向量,因此可以在潜在空间中进行插值、平移等操作,生成出各种各样的图像。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。