Generative Adversarial Net

本文介绍了生成对抗网络(GANs)的基本概念和工作原理,包括生成器和判别器的交互过程,以及它们的优化目标。GANs通过一个对抗过程来训练生成模型,旨在使生成的数据与真实数据分布一致。在实验部分,文章讨论了训练设置和结果,并在代码阅读中解释了模型参数和损失函数。
摘要由CSDN通过智能技术生成

Generative Adversarial Nets

Abstract

  • 目的:以一种对抗的过程来估计生成式模型(generative models)
    这也是为什么题目中并没有 discriminative 的原因。该方法的目的是要以一种新的方式得到好的生成模型
  • 同时训练两个模型
    • A generative model G - 得到数据分布(data distribution)
    • a discriminative model D - 估计一个样本是从训练数据得到而不是由G生成的概率
  • A minimax two-player game
  • 解决方案(优化目标):G能够恢复训练数据的分布,且D的输出恒为0.5

1 Introduction

  • Deep Learning 希望能够发现丰富的分层模型来表示各种数据的概率分布,特别是结构数据(structured data, 例如图像、文字、语音等)
  • Discriminative model - map a high-dimension, rich sensory input to a class label 例如分类的问题
  • Generative models - 当前的估计方法涉及许多概念的计算,以及难以与分段线性函数整合
  • Adversarial nets framework - 例如伪造假钞和警察的关系,双方在竞争中各自改善自己的方法,直到难以警察难以分辨真假(也即生成模型效果达到最佳)
  • 在本文提出的方法中,G和D均使用多层感知机模型,G以随机噪声作为输入

[补充] Discriminative model v.s. Generative model

【资料待查待整理】

2 Related work

估计生成模型的一系列算法,是看不懂的内容。

3 Adversarial nets

  • 一些符号表示
    • data x 的概率分布
    • 生成器通过噪声z得到的概率分布
    • Discriminator输出表示
  • Value function
    在这里插入图片描述
    • 对G的优化 - minmize后面一部分,G生成的数据越真实
    • 对D的优化 - maximize整个函数,给真实的数据高分,给G生成的数据低分
  • a less formal, more pedagogical explanation
    在这里插入图片描述
    a) 初始情况
    b) 对D进行了优化,此时D能够准确分辨真实数据和生成的数据
    c) 对G进行了优化,G生成的数据进一步接近真实数据的分布
    d) 最后的结果,G生成的数据与真实数据分布一致,D的输出处处为0.5,难以分辨数据真假
  • Algorithm
    在这里插入图片描述
  • 在实际的训练过程中,在早期训练过程中,D能很容易地分辨真实数据和G生成的数据,因此难以去训练G。在早期改变G的优化目标:
    maximize logD(G(z))
  • 先train G还是先train D?重要吗

4 Theoretical Results

…大概是在理论上证明了最优解的存在以及算法的收敛性

5 Experiments

训练的设置以及实验结果

代码阅读

参数中不太懂的部分

  • b1, b2
parser.add_argument("--b1", type=float, default=0.5, help="adam: decay of first order momentum of gradient")
parser.add_argument("--b2", type=float, default=0.999, help="adam: decay of first order momentum of gradient")
Adam 里面的两个参数
  • latent dimension
parser.add_argument("--latent_dim", type=int, default=100, help="dimensionality of the latent space")
目前主要不明白这里的潜在空间(latent space)指的是什么。generator 的输入 z 的维度。

Generator

class Generator(nn.Module):
	def __init__(self):
		super(Generator
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值