大家好,今天开设新专栏《GAN模型结构》。在这个专栏中,我们会讲述各种各样的GAN的网络结构及其在各类任务中的应用。

作者&编辑 | 言有三

三年前GAN刚出来的时候就开始关注GAN了,去年也写过一篇综述,【技术综述】有三说GANs(上),不过因为时间问题一直没有更新更多的内容。

今年公众号也开设了GAN优化专栏,内容更新的差不多了,现在GAN模型结构也走起,在这两个网络专栏的加持下,希望我们能从理论到实践彻底玩转GAN。

1 GAN的基本结构

在机器学习中有两类模型,即判别式模型和生成是模型。

判别式模型即Discriminative Model,又被称为条件概率模型,它估计的是条件概率分布。生成式模型即Generative Model ,它估计的是联合概率分布,两者各有特点。

常见的判别式模型有Logistic Regression,Linear Regression,SVM,Traditional Neural Networks

Nearest Neighbor,CRF等。

常见的生成式模型有Naive Bayes,Mixtures of Gaussians, HMMs,Markov Random Fields等。

而GAN,即Generative adversarial net,则同时包含判别式模型和生成式模型,如下:

判别式模型就是大家熟悉的分类任务模型,输入图像,输出分类概率。生成式模型则是输入一维向量,输出二维图像,如下:

这就是用于图像生成的最早的网络结构,剩下来的问题,就是如何分别设计判别器和生成器。

2 全卷积GAN

DCGAN[1]是第一个用全卷积网络做数据生成的,下面我们看看它的生成器和判别器。

2.1 生成器

输入为1×100的向量,然后经过一个全连接层学习,reshape为4×4×1024的张量,再经过4个上采样的反卷积网络,生成64×64的图,各层的配置如下:

2.2 判别器

输入64×64大小的图,经过4次卷积,分辨率降低为4×4的大小,每一个卷积层的配置如下:

判别器和分类器的损失函数都采用了sigmoid_cross_entropy_with_logits,即sigmoid分类损失。

2.3 实验

下面我们采用开源项目进行实践,GitHub地址如下:https://github.com/carpedm20/DCGAN-tensorflow/。

由于MNIST任务作者已经做过,我们来完成一个新的任务,生成嘴部表情,样本如下:

下图分别是判别器和生成器损失图:

由于生成对抗网络的判别器和生成器是交替训练相互对抗,所以它们各自的损失曲线不可能像通常的图像任务一样一直下降直到很低的水平,而是有一个先下降再上升的过程。

对于判别器来说,刚开始没有学习,因此性能很差,随着训练进行,判别器的损失降低。但是因为生成器的性能在不断提升,所以一段时间之后,判别器的损失可能又会增加,不过在这个实验中不明显。

对于生成器来说,刚开始没有学习,性能很差,随着训练进行,性能越来越好,在本实验中,生成器损失下降到一定程度后又增加了,说明继续迭代无法再改善性能。

总的来说,两者相互对抗,直到达到一个较好的平衡,但是光从损失曲线本身,我们仍然难以分辨出模型的性能好坏,因此还要看真正生成的样本。

从左到右分别是第2,10,50,100个epoch的结果。从上图结果来看,随着训练的进行,逐渐生成了许多有意义且非常逼真的样本。不过最终生成的图像仍然有一部分效果很差,这是因为DCGAN本身模型性能所限,后续可以使用更好的模型进行改进。

2.4 总结

总的来说就这么多,更多细节大家可以自己去跑实验。DCGAN的原始论文中总结了很多的技巧,但是随着技术的发展,其中的一些技巧不再必要或者通用,因此这里我们先不总结,以后再回过头来一起看。

DCGAN模型非常浅,原理简单,生成分辨率低,所以简单的任务仍然不能完美地完成,后面会有更多模型从各个方向来进行改进。

参考文献

[1] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.

总结

DCGAN因为结构非常简单,内容就讲这么多,这只是咱们GAN网络结构的开始,吃完这顿前菜,咱们后会有期。

下期预告:金字塔结构GAN。

知识星球推荐

有三AI知识星球由言有三维护,内设网络结构1000变,数据集,AI1000问,AI知识汇总,AI书籍,看图猜技术,项目开发,Github推荐八大学习板块,欢迎加入。

今日网络结构

转载文章请后台联系

侵权必究

往期精选

  • 【GAN优化】GAN优化专栏上线,首谈生成模型与GAN基础

  • 【GAN的优化】从KL和JS散度到fGAN

  • 【GAN优化】详解对偶与WGAN

  • 【GAN优化】详解SNGAN(频谱归一化GAN)

  • 【GAN优化】一览IPM框架下的各种GAN

  • 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程

  • 【GAN优化】GAN训练的几个问题

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

  • 【模型解读】历数GAN的5大基本结构

【GAN模型结构】从最简单的全卷积GAN一起开始玩转GAN相关推荐

  1. 卷积神经网络( CNN)与全卷积神经网络(FCN)

    目录 卷积神经网络(CNN) 卷积层 卷积层尺寸的计算原理 标准卷积计算举例 1 x 1 卷积计算举例 全连接层计算举例 附:TensorFlow 中卷积层的简单实现 激励层 池化层 池化层的作用 输 ...

  2. CV之IS:利用pixellib库基于deeplabv3_xception模型对《庆余年》片段实现语义分割/图像分割简单代码全实现

    CV之IS:利用pixellib库基于deeplabv3_xception模型对<庆余年>片段实现语义分割/图像分割简单代码全实现 目录 利用pixellib库基于deeplabv3_xc ...

  3. CV之IS:利用pixellib库基于mask_rcnn_coco模型对《庆余年》片段实现实例分割简单代码全实现

    CV之IS:利用pixellib库基于mask_rcnn_coco模型对<庆余年>片段实现实例分割简单代码全实现 目录 利用pixellib库的instance_segmentation函 ...

  4. c语言通讯录链表结构体排序,写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下...

    已结贴√ 问题点数:20 回复次数:10 写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下 写个通讯录 想要简单就全用的是结构体数组...不符合要求 要改 ...

  5. 手把手教你生成对抗网络 GAN,50 行代码玩转 GAN 模型!(附源码)

    来源:AI有道 本文约2820字,建议阅读12分钟. 本文为大家介绍了生成对抗网络(Generate Adversarial Network,GAN),以最直白的语言来讲解它,最后实现一个简单的 GA ...

  6. 白话生成对抗网络 GAN,50 行代码玩转 GAN 模型!【附源码】

    红色石头的个人网站:redstonewill.com 今天,红色石头带大家一起来了解一下如今非常火热的深度学习模型:生成对抗网络(Generate Adversarial Network,GAN).G ...

  7. 脑洞大开的机器视觉多领域学习模型结构 | CVPR 2018论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

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

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

  9. [深度学习-原理]GAN(生成对抗网络)的简单介绍

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之DCGAN基于CIFAR10数据集的例子 深度学习GAN(三)之DCGAN基于手写体Mnist数据集的例子 深度学习GAN(四)之c ...

最新文章

  1. oracle创建用户、表空间、临时表空间、分配权限步骤详解
  2. 算法---------两个数的交集
  3. HDU 1574 RP问题
  4. SQL:REGEXP
  5. java编译可执行文件_Java编译器完成但没有创建可执行文件?
  6. 使用grunt合并压缩js、css文件
  7. ORACLE中将一个值赋值到另一个表的值
  8. sprint test 添加事务回滚机制
  9. Python 用异常处理改写猜数游戏程序
  10. Windows登录FTP服务器方法
  11. SageMath密码学密码体制及加解密
  12. 微信卡券开发HelloWord
  13. git cherry-pick使用总结
  14. 正面管教读书笔记 10 你的性格对孩子性格的影响
  15. 三十岁那年,我的梦想是年薪十万
  16. 合作模式歌利亚机器人_《歌利亚》画面战斗及机器人制作试玩图文心得 歌利亚好玩吗...
  17. 康考迪亚大学应用计算机科学,2020年康考迪亚大学IT专业会学什么内容
  18. 2019年安徽省学业水平考试计算机,2019年安徽高中学业水平考试信息技术与通用技..._报关水平_帮考网...
  19. 传感器如何将消息发送给云服务器,通过 NodeMCU (ESP8266) 将传感器数据上传至 MQTT 云服务...
  20. 电脑搬家——SecureCRSecureFXPortable和SecureCRTPortable乱码

热门文章

  1. java设计模式:简单工厂模式
  2. (JavaWeb)JSP,JSTL
  3. java使用ZipOutputStream对文件进行压缩
  4. 利用MySQL创建一个简单的employee员工表并修改表
  5. 遍历同辈节电的方法_jQuery遍历
  6. 企业微信推送消息延迟_iPhone手机微信推送消息总是延迟怎么办?
  7. ar9344 9382 8035 编程器固件_沈阳熔铜炉设计,紧固件加热炉_宏祥电炉
  8. 华为eNsp模拟器安装常见报错汇总
  9. 几个常见的网络故障分析
  10. java对象的初始化顺序_JAVA 对象的初始化顺序