对抗样本和深度对抗网络

来源:互联网 发布:linux 文件拷贝命令 编辑:程序博客网 时间:2024/09/21 09:06

1.背景

  对抗样本:数据集中通过故意添加细微的干扰所形成的输入样本,受干扰之后的输入导致模型以高置信度给出一个错误的输出。

对抗网络提出的背景就是,深度学习出现了绊脚石:对抗样本;深度网络不能解决对抗样本带来的问题,降低深度模型实际的应用价值;

 








1对抗样本的定义

  正如图1右边展示的那样,当对熊猫数据加上一定的噪声,深度模型以99.3%的置信度将熊猫识别为长臂猿;这就是对抗样本和对抗网络的由来,

为了解决这个问题,深度对抗网络被进一步提出来;同时对抗样本也促进了对抗网络的发展;

    对抗样本影响模型的原因:推测为模型本身线性性质;然而面对对抗样本的脆弱性并非深度学习独有,传统的机器学习也遇到此类问题。

 

2.对抗网络

面对对抗样本的问题,提出了对抗网络的思路。(2014年,对抗网络应用于图像生成)












2对抗网络的框架思路

 

对抗过程可描述为如下过程:

 














3对抗网络的过程

      主要思路就是对于生成模型,生成一个对抗样本(标签为假),而判别模型判别生成模型的输出为假,此时生成模型为了让判别模型输出为真,就需要提高自己的生成技术,来让愚弄判别网络;此时判别网络为了将具有和真样本很像的对抗样本判别为假,就势必要提高自己的判别技能;这样判别模型和生成模型互相促进优化网络性能,最终网络停止的条件就是当判别网络不能将生成网络生成的样本进行判别是真样本还是假样本(即将生成网络产生的对抗样本判别为真假的概率各占0.5);











4对抗网络的网络框架

  正如图4所示,给定一个噪声分布,生成模型G生成一个噪声GZ),然后将其与真实图像叠加构成对抗样本,此后,对抗样本送入判

别模型,判别模型输出该样本是真实样本而不是对抗样本的概率;












5具体训练对抗网络的流程图

 

  由于对抗网络涉及到生成模型和判别模型两个网络,此时对网络的训练也有自己的一套思路;具体训练过程正如图5所示;对于生成模型的参

数初始化,然后生成对抗样本,固定此时生成模型的参数,利用对抗样本去优化判别模型的参数;此后,固定判别模型的参数,通过误差一定的方式去优化生成模型的参数,如此反复,来达到网络训练的目的;

 

3.深度卷积对抗网络(DCGAN)

3.1生成模型;

   将卷积神经网络和对抗网络相结合(https://github.com/soumith 生成模型;

 






具体生成网络的架构如下图所示:













6深度卷积对抗网络的框架

     反卷积-上采样卷积:"反卷积"存在于卷积的反向传播中。其中反向传播的滤波器矩阵,是前向传播(卷积)的转置。如果对反卷积不太了解的同志,可以参看图7的示意图;











7卷积核反卷积的示意图

3.2 判别模型






















8对于人脸数据的判别模型的框架

其中Adam的优化器降低损失率;

 





4对抗网络的优势

 

  

5 生成对抗网络GAN理解(如果前面的不是很懂,这部分可能会帮助你进一步理解对抗网络)

       14Goodfellow提出Generative adversarial nets即生成式对抗网络[5],它要解决的问题是如何从训练样本中学习出新样本,训练样本是图片就生成新图片,训练样本是文章就输出新文章等等。如果能够知道训练样本的分布p(x),那么就可以在分布中随机采样得到新样本,大部分的

生成式模型都采用这种思路,GAN则是在学习从随机变量z到训练样本x的映射关系,其中随机变量可以选择服从正太分布,那么就能得到

一个由多层感知机组成的生成网络G(z;θg),网络的输入是一个一维的随机变量,输出是一张图片。如何让输出的伪造图片看起来像训练样本,

Goodfellow采用了这样一种方法,在生成网络后面接上一个多层感知机组成的判别网络D(x;θd),这个网络的输入是随机选择一张真实样本或者

生成网络的输出,输出是输入图片来自于真实样本pdata或者生成网络pg的概率,当判别网络能够很好的分辨出输入是不是真实样本时,也能

通过梯度的方式说明什么样的输入更加像真实样本,从而通过这个信息来调整生成网络。从而G需要尽可能的让自己的输出像真实样本,而D

则尽可能的将不是真实样本的情况分辨出来。下图左边是GAN算法的概率解释,右边是模型构成。

5部分来自: http://chenrudan.github.io/blog/2016/11/12/gan.html









9对抗网络的训练过程

       GAN的优化是一个极小极大博弈问题,最终的目的是generator的输出给discriminator时很难判断是真实or伪造的,即极大化D的判断能力,极小化将G的输出判断为伪造的概率,公式如下。论文[5]中将下面式子转化成了Jensen-shannon散度的形式证明了仅当pg=pdata时能得到全局最小值,即生成网络能完全的还原出真实样本分布,并且证明了下式能够收敛。


https://github.com/goodfeli/adversarial goodfellowpapercode

 

6.对抗网络的应用

        GAN可以从训练数据中学习到近似的分布情况,那么有了这个分布,自然可以应用到很多领域,比如,图像的修复,图像的超分辨率,图像翻译。但在图像以外其他领域急需扩展。

  

 

如果文章内容有帮助到你,请顶一下,谢谢!!!

 

参考文献

[1] 第5部分来源于(http://chenrudan.github.io/blog/2016/11/12/gan.html

[2] 全文思路整理于重庆大学软件学院的深度学习研讨会第二期

原创粉丝点击