自从2014年Goodfellow提出GAN(Generative adversarial networks)模型之后,在机器学习领域就砸下了一个大大的陨石坑,此后至今,已经有成百上千篇的GAN相关论文在Arxiv以及各大顶级会议期刊上被发表。时至今日,GAN的各种相关改进模型已经在CV,NLP,语音等相关领域取得了不错的效果,但是待解决的问题依旧很多,广阔天地依旧可以大GAN一场。

GAN 在结构上受博弈论中的二人零和博弈 (即二人的利益之和为零, 一方的所得正是另一方的所失) 的启发, 系统由一个生成器和一个判别器构成,想法十分的巧妙,目前已经成为人工智能学界一个热门的研究方向, 著名学者 LeCun 甚至将其称为“过去十年间机器学习领域最让人激动的点子”。在经过几天的材料阅读之后,想将自己学习到的东西保存下来,以便加深印象,有不对的地方也欢迎大家批评指正。

文章大致分为三个部分:

·GAN思维导图

·哈工大左旺孟教授在Valse2017上做的GAN报告简单总结

·大致解读几篇图像翻译相关的论文

GAN思维导图

GAN存在的三个主要改进方向

以下内容主要整理自哈工大左旺孟教授在Valse2017上做的关于GAN综述的报告,如有侵权,请联系作者,将立即删除。

左教授主要阐述了三个改进方向:

1.更好的度量目标分布和生成分布之间的差异

2.设计更好的生成器

3.连接输入和输出

简单阐述一下,详细信息后续补充。

1.第一个改进方向主要解决GAN存在的模型崩塌问题,主要解决方向体现在判别器的改进上,如后续提出的GMMN,ImprovedGAN,WGAN等均是从此方向入手。普遍观点认为,分布相同时期望相同,反之却不成立,但是如果所有期望的非线性变换后依旧相同,则可以认为两个分布相同,之前采用的方法是核变换或者高斯核变换,目前主流使用CNN模拟各种非线性变换。

2.左教授认为,不同的任务目标需要使用不同的生成器,已达到期望效果。例如在DCGAN中使用FC+BN训练生成器,在复杂图像生成任务中,使用stacked generator,在图像增强任务中使用ResNet,在Image Translation任务中使用Unet保留更多的结构相关特征,在具有时序特征的任务中,例如图文转换,图像生成任务使用CNN+RNN结构。

3.关于如何连接输入和输出信息,这方面做的比较好的论文包括InfoGAN,cGAN,CCGAN等,详细解读后续补充。

Image-Image Translation

图像翻译这个概念首先来自于《Image-to-Image Translation with Conditional Adversarial Networks》这篇论文,作者提出了一个十分有效的通用图象任务的框架,具体可以完成的任务和效果将在下文具体给出,另外为了更好的保留原作者意图,部分内容将使用英文表述。

提出概念:该文章首次提Image-Image Translation这个概念,将计算机视觉和计算机图形学的许多任务总结进去,分为一对多和多对一的两类转换任务,包括CV里的边缘检测,图像分割,语义标签以及CG里的mapping labels or sparse user inputs to realistic images.

上面已经提到,作者的目的就是提出一个通用框架以满足图像翻译的需求,这也是作者论文中所提到的两大贡献的综合叙述。

网络结构:

生成器:U-Net,更高层次的信息共享。

判别器:“PatchGAN”,判别图像的纹理或者语义上的分布差异。

Final Object:

优化方法:MinibatchSGD,轮流训练G和D。

实验结果:论文共进行了七种实验,以下一一列举并展示实验结果。

1.Semantic Labels——Photo:

2.Architectural Labels——Photo:

3.Map——Area Photo:

4.BW——Color Photo:

5.Edges——Photos:

6.Day——Night:

评价方法:传统的计算均方误差的评价方法并不适合图像翻译的评价工作,所以作者提出了两种新的评价方法,第一种就是进行人工评价,在亚马逊平台上进行测试(AMT),如果人类无法找出机器生成的图片,则说明生产效果比较好,第二就是利用已有的语义分割网络进行评价,生成图片越接近真实图片则在进行语义分割时分割结果越好。

CCGAN/DiscoGAN/DualGAN:

由于cGAN的训练需要pair data,也就是训练数据和评价数据是成对出现的,这种数据集的采集和制作需要耗费大量的人力,并且网络的训练是属于有监督学习范围,因此这三篇文章提出了一种无监督的不需要成对数据的网络框架。三篇文章的核心思想同时也是创新点是一样的,在没有标签数据进行监督学习的情况下,利用网络自身来判断生成图片的效果,也就是体现在Cycle这个词上。网络中使用两个生成器(F和G)和两个判别器(Dx和Dy),需要达到的效果就是F(G(X)) ≈ X,反之也成立。

三篇论文的指导思想大致相同,不同的就是网络细节啦(引用自知乎回答https://zhuanlan.zhihu.com/p/26332365)

CycleGAN:

这里的generator跟Perceptual losses for real-time style transfer and super-resolution是一样的。他们使用了Instance Normalization。判别器使用的和pix2pix一样(PatchGAN on 70x70 patches). 为了稳定GAN的训练,他们使用了最小二乘gan(least square gan)和 Replay buffer。不像pix2pix,他们的模型没有任何的随机性。(没有随机输入z,没有dropout)这里的生成器更像是一个deteministic的style transfer模型,而不是一个条件GAN。他们使用了L1距离作为cycle consistency.

DualGAN:

他们的生成器和判别器都和pix2pix一样 (没有随机输入z,但是有dropout的随机)。 他们用了wgan来训练。cycle consistency同样选用了l1。

DiscoGAN:

他们用了conv,deconv和leaky relu组成了生成器,然后一个conv+leaky relu作为判别器。他们用l2作为cycle consistency。

下面展示一些实验结果:

DistanceGAN

这篇文章认为对两类数据(A域和B域)的循环映射约束依旧不够强,并且多对多的映射过程容易导致模型崩塌(例如两个域中图片物体形状差异较大时),因此作者提出了一种只需要单边映射的距离约束,该约束的思想就是A域中的两个样本距离在经过映射后样本间距离保持高度相关。

文章中作者对图像翻译的常见约束做了简单阐述,并提出了自己的约束方法,个人感觉还蛮有借鉴意义的:

Adversarial constraints:

这个约束就是最初GAN的思想,其目的是保证生成器的转换可以把A分布的样本转化成B分布,也是GAN网络的的核心约束方法,用Goodfellow的描述就是经典的警察和假币的问题啦。

Circularity constraints:

这个就是CCGAN里面提到的环状约束,具体约束思想上文已经提到过。

Target Domain Identity:

这个约束在CCGAN中有提到过,思想就是目标域同一性,我的理解是目标域分布样本经过转换后其分布依旧满足目标域的分布。

Distance Constraints:

这个约束就是本文作者提出的距离约束,作者认为只有对抗约束的话,从A域的n个样本学习B域的n个样本的映射则函数映射空间会很大,反之加上环状约束的话又会过于限制映射空间,使得映射过于单一,而这种利用同一域样本距离的约束方式是的约束强度适中,同时不要求源域和目标域的分布差异,因此不会产生CCGAN中出现的模型崩塌问题。

Self-distance Constraints:

跟上面的约束类似,只不过作者主要与CCGAN中的结果进行对比,而CCGAN中的minibatchs的size是1,因此作者把自己实验中的图片分成左右两部分来计算距离,所以作者把它称为Self-distance Constraints。

至于训练细节和参数设置这里就不赘述了,作者在DiscoGAN,CCGAN上都进行了改进实验,大家有兴趣可以看看原论文,下面就简单展示一下实验结果:

UNIT:

这篇文章也是解决上述问题的,发表在2017NIPS上,主要思路和框架实在作者之前(16年NIPS)提出的CoupleGAN的基础上提出的,但是不像上面几篇论文,这篇论文的数学理论解释比较多,所以读起来比较难,有好多地方都没看懂,这里冒昧做个简述,当然欢迎大家指教。

网络架构:

先看a图,也是本篇文章的核心思想所在,按照作者的观点,X1域的分布和X2域的分布可以通过VAE共同编码到Z域,然后又可以通过生成器将Z域的分布信息分别转换成X1和X2域的分布信息。作者把Z命名为潜在隐藏空间,其中Z的分布满足有条件独立和单位方差的高斯分布。

再看b图,这里共享了E的后几层和G的前几层权重,目的就是提取到并保留两个分布域的高层信息,后面的G和D就是传统的GAN思想,需要提到的就是,在这个网络中,类似于x1→x1-1的同一域图片经过编码生成又映射到本域的情况,这里本身就对应着前面几篇文章的循环一致性的约束,所以作者在目标函数中提到了这一项。

这个网络又可以看成是几个子网络的结合,作者总结如下:

在实验部分也进行了不同组合形式的实验结果以验证每一部分的作用:

作者:但愿逍遥仙儿
链接:http://www.jianshu.com/p/60804d9aeb77
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

GAN——UNIT简单梳理相关推荐

  1. 生成对抗网络(GAN)简单梳理

    作者:xg123321123 - 时光杂货店 出处:http://blog.csdn.net/xg123321123/article/details/78034859 声明:版权所有,转载请联系作者并 ...

  2. 最新 ICCV | 35个GAN应用主题梳理,最全GAN生成对抗论文汇总

     戳我,查看GAN的系列专辑~! 在最新的视觉顶会ICCV 2021会议中,涌现出了大量基于生成对抗网络GAN的论文,广泛应用于各类视觉任务:本文在此做尽可能的梳理汇总! 下述论文已分类打包好!后台回 ...

  3. 超110篇!CVPR 2021最全GAN论文汇总梳理!

     戳我,查看GAN的系列专辑~! 下述论文已分类打包好!超110篇,事实上仍有一些GAN论文未被包含入内--可见GAN在CVPR 2021仍十分火热. 后台回复 2021GAN (长按红字.选中复制) ...

  4. Hystrix 资料简单梳理

    2019独角兽企业重金招聘Python工程师标准>>> Hystrix 资料简单梳理 状态 Hystrix不再处于活动开发阶段,目前处于维护模式. Hystrix(版本1.5.18) ...

  5. 图像处理之特征提取(一)之HOG特征简单梳理

    图像处理之特征提取:HOG特征简单梳理 HOG方向梯度直方图,这里分解为方向梯度与直方图. 一.方向梯度 梯度:在向量微积分中,标量场的梯度是一个向量场.标量场中某一点上的梯度指向标量场增长最快的方向 ...

  6. JVM调优简单梳理,一分钟了解JVM调优

    JVM原理简单的认识         JVM指的是Sun公司的HotSpot JVM,JDK1.8之后JVM整合了JRockit 和 HotSpot的优点.JVM的行原理简历理解就是:JVM通过编译器 ...

  7. Fast R-CNN 简单梳理

    Fast R-CNN 简单梳理 作者:xg123321123 出处:http://blog.csdn.net/xg123321123/article/details/53067518 声明:版权所有, ...

  8. libuv抽象接口简单梳理

    libuv抽象接口简单梳理 抽象类型 libuv虽然看起来代码没有几行,但是初略过了下文件,功能非常丰富,至少比boost.asio功能要多得多,当前只分析几个基础类型和网络相关的类型. UVErro ...

  9. 关于深度学习的一些基础概念的简单梳理

    目录 独立同分布independent and identically distributed (i.i.d.) BN(Batch Normalization)批规范化 正则化 损失函数 过拟合现象 ...

最新文章

  1. 图书管理系统5W1H
  2. c# 修饰词public, protected, private,internal,protected的区别
  3. Zabbix3的离线安装
  4. python读取所有txt文件_python如何批量读取txt文件
  5. Python - python不是内部或外部命令
  6. crontab 不能执行git命令问题备忘
  7. 图像视频信息库改直播服务器,短视频直播系统,开发流程详细解析
  8. StringBuffer跟StringBuilder以及HashMap跟HashTable
  9. bzoj 1116: [POI2008]CLO(并查集)
  10. 【原创】高精度好题 Heaven Cow与God Bull
  11. 【S0002】插画大师Laura欧美儿童插画临摹图集363张
  12. 文件类型识别----魔数
  13. python 答题卡识别_opencv+python机读卡识别整合版
  14. vue3 倒计时功能
  15. 中文编程书籍资料一览表
  16. 开源免费的脑电/脑磁图数据分析软件汇总
  17. 一些java基础题答案汇总
  18. halcon学习教程2-相机畸变矫正
  19. 网络封包分析软件-WireShark简单抓包
  20. 计算机毕业设计Javahtml5大众汽车网站(源码+系统+mysql数据库+lw文档)

热门文章

  1. FineReport——JS二次开发(局部刷新)
  2. DataFormatString={0:格式字符串} 用法
  3. android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事
  4. YumRepo Error: All mirror URLs are not using问题解决
  5. linux i217 v网卡驱动,手动安装Intel network I217-LM网卡的Linux驱动
  6. [云炬创业基础笔记]第六章商业模式测试16
  7. 云炬Android开发笔记 10主界面-首页UI与数据解析器开发(RecyclerView)
  8. 周志华《机器学习》课后习题(第三章):线性模型
  9. 在状态栏中插入类似进度条的可视控件
  10. delphi编码规范文档