生成对抗网络是近几年来无监督学习领域里最大的进展,被誉为下一代深度学习,不管是研究热度还是论文数量,已经逼近甚至超越传统判别式的CNN架构。

这一次我们简单介绍一下生成对抗网络的主流模型结构,从一个生成器一个判别器到多个生成器多个判别器。

作者 | 言有三

编辑 | 言有三

01

单判别器单生成器

我们这一期文章不打算从头开始讲述GAN,所以如果大家没有相关基础的,就先看一下我们上一期GAN的介绍。

【技术综述】有三说GANs(上)

一个基本的用于生成图像的GAN的结构就是这样的。

Generator就是生成器,它输入噪声,输出产生的图像。通常噪声就是一个一维的向量,经过reshape为二维图像,然后利用若干个反卷积层来学习上采样。

如全卷积的DCGAN模型[1],输入就是1*100的向量,然后经过一个全连接层学习,reshape到4*4*1024的张量,再经过4个上采样的反卷积网络,生成64*64的图。

Discrimator就是普通的CNN分类器,输入真实样本或者生成的假样本进行分类,在DCGAN中也是4个卷积层。

02

多判别器单生成器

采用多个判别器[2]的好处带来了类似于boosting的优势,训练一个过于好的判别器,会损坏生成器的性能,这是GAN面临的一个大难题。如果能够训练多个没有那么强的判别器,然后进行boosting,可以取得不错的效果,甚至连dropout技术都可以应用进来。

多个判别器还可以相互进行分工,比如在图像分类中,一个进行粗粒度的分类,一个进行细粒度的分类。在语音任务中,各自用于不同声道的处理。

03

单判别器多生成器

一般来说,生成器相比判别器要完成的任务更难,因为它要完成数据概率密度的拟合,而判别器只需要进行判别,导致影响GAN性能的一个问题就是模式坍塌,即生成高度相似的样本。

采用多个生成器单个判别器的方法,可以有效地缓解这个问题。

从上图结构可以看出,多个生成器采用同样的结构,在网络的浅层还共享权重。

04

增加分类器

在利用GAN进行半监督的图像分类任务时,判别器需要同时担任两个角色,即判别生成的假样本,以及预测类别,这对判别器提出了较高的要求。通过增加一个分类器可以分担判别器的工作量,即将捕捉样本和标签的条件分布这一任务交给生成器和分类器,而判别器只专注于区分真实样本和生成的样本。

这一类结构以Triple Generative Adversarial Nets为代表,下图是它的网络结构。

05

多个生成器多个判别器

多个生成器和多个判别器就又有几种。

5.1 级联结构[5]

早期以DCGAN为代表的网络生成的图片分辨率太低,质量不够好,都不超过100×100,在32×32或者64×64左右。这是因为难以一次性学习到生成高分辨率的样本,收敛过程容易不稳定。

类似的问题在图像分割,目标检测中都存在。在目标检测中,级联网络被广泛使用,即采用从粗到精的方法依次改进检测器的性能。在图像分割中进行上采样时也采用学习小倍率的放大而不是大倍率的方法,如利用两个2倍上采样替换一个4倍的上采样,不仅可以增强网络的表达能力,还降低了学习难度。

基于此,金字塔GAN结构被提出并广泛使用,它参考图像领域里面的金字塔结构由粗到精一步一步生成图像,并添加残差进行学习。

上图就是它的结构,从低分辨率z3开始,逐级提升,最终生成I0,这是一个金字塔形状的结构,以下符号较多用图片代替。

5.2 并行与循环结构[6]

GAN有一大应用就是风格化,实现两个域之间的风格互换,以CycleGAN[6]为典型代表。它包含了多个生成器和多个判别器。Cycle的典型结构如下:

X和Y分别表示两个域的图像,可知这里存在两个生成器G和F,分别用于从X到Y的生成和Y到X到生成,包含两个判别器,分别是Dx和Dy。而损失本身也增加了一个循环损失,感兴趣读者可以去细读文章。

另外在cross domain学习中也常用到多判别器多生成器多结构,分别学习不同的域。而且各个域的判别器和生成器通常会共享一些权重,如下图是CoGAN[7]的网络结构。

另外还有一些零零散散的结构,比如3D GAN,RNN GAN,由于都是上面这几类的变种,不再统一介绍。

[1] Radford A, Metz L, Chintala S, et al. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. international conference on learning representations, 2016.

[2] Durugkar I P, Gemp I, Mahadevan S, et al. Generative Multi-Adversarial Networks[J]. international conference on learning representations, 2017.

[3] Ghosh A, Kulharia V, Namboodiri V P, et al. Multi-Agent Diverse Generative Adversarial Networks[J]. computer vision and pattern recognition, 2018: 8513-8521.

[4] Chongxuan L I, Xu T, Zhu J, et al. Triple Generative Adversarial Nets[J]. neural information processing systems, 2017: 4088-4098.

[5] Denton E L, Chintala S, Szlam A, et al. Deep generative image models using a Laplacian pyramid of adversarial networks[J]. neural information processing systems, 2015: 1486-1494.

[6] Zhu J, Park T, Isola P, et al. Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks[J]. international conference on computer vision, 2017: 2242-2251.

[7] Liu M, Tuzel O. Coupled Generative Adversarial Networks[J]. neural information processing systems, 2016: 469-477.

最后发一个通知,2019年有三AI培养计划出炉了,一个季度一期噢。

总结

GAN如今火势正猛,正是学习的好时机,如果没有跟上,你还在等什么。

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

往期精选

  • 【总结】这半年,有三AI都做了什么

  • 【资源总结】“十大深度学习方向” 专栏上线

  • 回顾2018,计划2019

想要变身”AI专家“,就戳戳手指关注我们吧

别忘了点“好看”支持作者噢  ???

【模型解读】历数GAN的5大基本结构相关推荐

  1. 全连接神经网络_【模型解读】从“局部连接”回到“全连接”的Non-Local神经网络...

    文章首发于<有三AI> [模型解读]从"局部连接"回到"全连接"的神经网络​mp.weixin.qq.com 这是深度学习模型解读第9篇,本篇我们简 ...

  2. 深度解读:GAN模型及其在2016年度的进展

    雷锋网(公众号:雷锋网)注:本文作者杨双,于2016获中国科学院自动化研究所博士学位.现任中国科学院计算技术研究所智能信息处理重点实验室助理教授.主要研究方向包括深度学习.贝叶斯建模与推理.序列建模等 ...

  3. 百度AI技术盛宴来了!大咖齐聚解读CV/NLP/跨模态大模型技术!

    随着人工智能步入工业大生产阶段,AI大模型正在加速走出实验室,在全球范围内逐步实现产业落地应用的突破.自2020年至今,越来越多的科技巨头和科研机构参与其中.去年12月,百度发布了全球首个知识增强千亿 ...

  4. 「模型解读」从2D卷积到3D卷积,都有什么不一样

    https://www.toutiao.com/a6711317983035130371/ 接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概 ...

  5. 【分割模型解读】感受野与分辨率的控制术—空洞卷积

    这是专栏<分割模型解读>的第3篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 前两篇文章介绍了编解码分割结构,今天具体聊聊解码器中涉及到的空间分辨率恢复问题. 作者 ...

  6. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

  7. 【模型解读】从2D卷积到3D卷积,都有什么不一样

    接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概念,这是本质上区别于同一维度的攻击,破坏性也更大. 而现在我们要说的是从二维卷积升级到三维卷 ...

  8. 【模型解读】深度学习网络只能有一个输入吗

    继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一 ...

  9. 【模型解读】“不正经”的卷积神经网络

    文章首发于微信公众号<与有三学AI> [模型解读]"不正经"的卷积神经网络 这是深度学习模型解读第7篇,本篇我们将介绍不规则形状的卷积. 作者&编辑 | 言有三 ...

最新文章

  1. bzoj 4237 稻草人
  2. 一步步学习微软InfoPath2010和SP2010--第四章节--处理SP列表表单(6)--列表表单的局限...
  3. 系统架构设计师教程学习随笔 (计算机与网络基础知识--操作系统基础知识)
  4. CRM 702和CRM 712的区别
  5. Oracle入门(十四.10)之显式游标简介
  6. Linux安装Axis C构建WebService服务
  7. heidisql 命令保存blob_git常用命令总结
  8. iview组件 eslint校验出错 Parsing error: x-invalid-end-tag
  9. can通信中如何设置屏蔽验收码的总结
  10. Google Widevine及其工作原理
  11. 计算机的cpu故障,计算机cpu常见故障
  12. InDesign 教程如何新建文档?
  13. eset杀毒软件隔离区在哪里
  14. 扫地机器人的人工智能与传感器
  15. springboot整合mongodb
  16. dpbs和pbs的区别_PBS与TBS区别
  17. missing separator 解决方法
  18. linux 根目录 777,Linux误操作777之后的恢复方法
  19. MSXML的不同版本使用
  20. android添加adb命令行,Android—adb命令

热门文章

  1. org.activiti.engine.ActivitiException: Couldn‘t deserialize object in variable ‘application‘
  2. 2021-10-20 哈希表 恋上数据结构笔记
  3. 数据结构与算法—栈详解
  4. Hadoop的学习前奏(二)——Hadoop集群的配置
  5. VS2019编写简单的C程序示例
  6. oracle 日期类型显示毫秒
  7. [转]解决 cannot restore segment prot after reloc: Permission denied
  8. 公共关系计算机操作题,2012年计算机二级Access考前模拟题及答案(8)
  9. return view前端怎么获取_前端判断上传图片格式
  10. 剑指Offer #05 用两个栈实现队列(模拟)