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. Suricata规则编写——常用关键字

    本篇转载自:http://blog.csdn.net/wuyangbotianshi/article/details/44775181 1.简介 现在的NIDS领域snort一枝独秀,而suricat ...

  2. github上传流程图记录

    参考文章 http://blog.csdn.net/laozitianxia/article/details/50682100 首先你得先创建仓库 为仓库取一个名字,然后点击创建就会有一个仓库了, g ...

  3. AndroBench手机性能测试

    AndroBench是一个基准测试应用程序,可以衡量你的Android设备的存储性能. AndroBench提供两种方式,第一种可以快速与其他设备的存储进行比较. 第二种 SQLite可以查询数据库表 ...

  4. The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global- results?,global-exception-mappings?,action*)".

    报错 The content of element type "package" must match "(result-types?,interceptors?,def ...

  5. 洗礼灵魂,修炼python(88)-- 知识拾遗篇 —— 线程(2)/多线程爬虫

    线程(下) 7.同步锁 这个例子很经典,实话说,这个例子我是直接照搬前辈的,并不是原创,不过真的也很有意思,请看: #!usr/bin/env python #-*- coding:utf-8 -*- ...

  6. 洗礼灵魂,修炼python(71)--爬虫篇—【转载】xpath/lxml模块,爬虫精髓讲解

    Xpath,lxml模块用法 转载的原因和前面的一样,我写的没别人写的好,所以我也不浪费时间了,直接转载这位崔庆才大佬的 原帖链接:传送门 以下为转载内容: --------------------- ...

  7. Javascript 高级程序设计--总结【四】

    *******************************  Chapter 11 DOM扩展  ******************************* 主要的扩展是 选择符API 和 H ...

  8. c/c++ vector,map,set,智能指针,综合运用的小例子

    标准库,智能指针,综合运用的小例子 功能说明:查询单词在文件中出现的次数,如果在同一行出现多次,只算一次. 比如查询单词:你好 输出的结果: 你好 出现了:2次 (行号 2)xxxxxxx 你好 (行 ...

  9. python3+xlwt 读取txt信息并写入到excel中

    # coding = utf-8 import os import xlwt import re def readTxt_toExcel(valueList, Pathlist): workbook ...

  10. VS2017 + QT5 + C++开发环境搭建和计算器Demo测试

     非常有帮助的参考资料: https://blog.csdn.net/gaojixu/article/details/82185694 该参考文献的主要流程: (1)QT下载安装:从官网下载QT,并记 ...