0 背景

在这之前大家在训练GAN的时候,使用的loss函数都是sigmoid_cross_entropy_loss函数,然而xudon mao等人发现当使用伪造样本去更新生成器(且此时伪造样本也被判别器判为对的时候)会导致梯度消失的问题。虽然此时伪造样本仍然离真实样本分布距离还挺远。也就是之前的损失函数虽然可以判别是真假,可是对于人肉眼来说,还是违和感太强了,也就是生成的图像质量骗得过机器,却骗不过人。

图0.1 两种损失函数的不同行为
上图中加号表示假样本,圈表示真样本,五角星表示用于更新生成器的伪造样本,红线表示LSGAN的决策面,蓝线表示sigmoid交叉熵的决策面。可以从图0.1.1中看出,sigmoid函数能分真假,可是对距离却并不敏感。

所以,由此,他们提出了更好的损失函数用于将伪造样本的分布推向于决策面(虽然无法直接推向真实样本的分布)。并且从中还发现,用此损失函数,可以增加训练GAN的稳定性。并且之前也有一些论文论述到GAN的不稳定训练一部分归咎于目标函数。特别是最小化之前GAN的目标函数时候的梯度消失问题,会导致更新生成器变得困难,而LSGAN是通过基于距离惩罚那些离决策面远的那些假样本,所以具有更多的梯度用于训练迭代。

图0.2 两个损失函数的函数图
如图0.2所示,最小二乘损失函数只有一个点是平的,而sigmoid交叉熵函数会当x变得足够大时就饱和了。

1. LSGAN

1.1 目标函数

如上面所述,之前的目标函数为:

xudon mao等人提出的目标函数为:

其中a,b,c满足条件:\(b-c=1\) 并且 \(b-a=2\)
所以他们推荐了两种参数的选择:

1.2 网络结构

xudon mao等人参考了vgg的网络结构,将LSGAN的生成器和判别器的网络结构设置成:

上述网络结构的生成器灵感来自VGG结构,其中激活函数沿用了DCGAN的ReLU用于生成器,LeakyReLU用于判别器。

而且,他们在如何将GAN用于多类图片生成上也做了一些工作,如生成3740类的中文文字图片,这时候,自然灵感来自于条件GAN。所以,此时的网络结构不同于上面:

在进行多类别生成的时候,如果直接将one-hot的很长向量作为条件gan的输入,那么会导致内存损耗和时间损耗,所以在输入到网络之前,先通过一个线性映射层将one-hot映射成一个较小维度的向量,比如上面的256。此时对应的目标函数自然为:

其中\(y\)为one-hot向量

2. 实验结果

xudon mao等人还做了一些实验用于验证LSGAN的训练稳定性,如图

图2.1 关于BN和迭代器的稳定性验证

图2.2 基于高斯混合分布数据集的对比,此时生成器和判别器都有三层fc层

图2.3 生成中文字符图片

Generative Adversarial Nets[LSGAN]的更多相关文章

  1. Generative Adversarial Nets[content]

    0. Introduction 基于纳什平衡,零和游戏,最大最小策略等角度来作为GAN的引言 1. GAN GAN开山之作 图1.1 GAN的判别器和生成器的结构图及loss 2. Condition ...

  2. 论文笔记之:Conditional Generative Adversarial Nets

    Conditional Generative Adversarial Nets arXiv 2014   本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加"激烈 ...

  3. (转)Deep Learning Research Review Week 1: Generative Adversarial Nets

    Adit Deshpande CS Undergrad at UCLA ('19) Blog About Resume Deep Learning Research Review Week 1: Ge ...

  4. 论文笔记之:Generative Adversarial Nets

    Generative Adversarial Nets NIPS 2014  摘要:本文通过对抗过程,提出了一种新的框架来预测产生式模型,我们同时训练两个模型:一个产生式模型 G,该模型可以抓住数据分 ...

  5. Generative Adversarial Nets[BEGAN]

    本文来自<BEGAN: Boundary Equilibrium Generative Adversarial Networks>,时间线为2017年3月.是google的工作. 作者提出 ...

  6. Generative Adversarial Nets[CycleGAN]

    本文来自<Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>,时间线为2017 ...

  7. Generative Adversarial Nets[CAAE]

    本文来自<Age Progression/Regression by Conditional Adversarial Autoencoder>,时间线为2017年2月. 该文很有意思,是如 ...

  8. Generative Adversarial Nets[Wasserstein GAN]

    本文来自<Wasserstein GAN>,时间线为2017年1月,本文可以算得上是GAN发展的一个里程碑文献了,其解决了以往GAN训练困难,结果不稳定等问题. 1 引言 本文主要思考的是 ...

  9. Generative Adversarial Nets[Pre-WGAN]

    本文来自<towards principled methods for training generative adversarial networks>,时间线为2017年1月,第一作者 ...

随机推荐

  1. vue缓存页面

    vue如何和ionic的缓存机制一样,可以缓存页面,在A页面跳转至B页面后返回A页面时A页面的数据还在? 在app.vue中将router-view使用keep-alive包起来,使用v-if来判断使 ...

  2. Html:html是什麽、html文件结构

    相关内容: html是什麽 html文件结构 首发日期:2018-02-12 html是什么: hmtl超文本标记语言,标准通用标记语言下的一个应用. html专门用于网页,它的“标志符”告诉了浏览器 ...

  3. MySQL 基本语句(1)

    一.cmd命令行的常用命令: 当我们使用MySQL 5.5 Command Line Client这个客户端登陆时,只能登陆root用户.如果今后创建了别的用户,就很麻烦了,所以我们不用MySQL 5 ...

  4. The process could not read file xxx due to OS error 53

      在不同地域的两个SQL Server服务器上配置了复制(Replication)用于同步数据(生产环境配置有Replication,测试环境也配有Replication),两地通过专线连接起来,这 ...

  5. ApplicationContext 配置里dataSource mysql连接数据源,设置ssl和utf-8

    ?useUnicode&useSSL=false

  6. cookie 和session 的区别(转)

    二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有 ...

  7. spring4笔记----报错publicid systemid之间要有空格的解决方法

    <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www. ...

  8. spring4笔记----PropertyPlaceholderConfigurer 属性占位符配置器

    driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/spring username=root password= ...

  9. 洗礼灵魂,修炼python(77)--全栈项目实战篇(5)—— ATM自动存取机系统

    要求: 1.完成常识中的ATM存取款机功能 2.把ATM机故障考虑进去 3.不能直接输入账户名和卡号等等信息,模拟出插银行卡让ATM机自动读取卡信息 4.密码验证超过三次错误即锁定账户 5.操作类型有 ...

  10. Asp.Net WebApi 项目及依赖整理

    一.目前版本 Microsoft ASP.NET Web API 2.2 对应程序集版本5.2.3 二.默认生成的配置文件中的内容 <packages> <package id=&q ...