前言:
GAN playground: Experiment with Generative Adversarial Networks in your browser
生成对抗网络(Generative Adversarial Nets,GAN)是一种基于对抗学习的深度生成模型,最早由Ian Goodfellow于2014年在《Generative Adversarial Nets》中提出.
生成对抗网络(Generative Adversarial Network)由一个生成网络与一个判别网络组成。生成网络从潜在空间(latent space)中随机采样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实
在线工具:
GAN playground: Experiment with Generative Adversarial Networks in your browser
训练效果:
目录:
- 简介
- Generative Adversarial Nets 原理
- 损失函数
- 训练方法
一 简介
生成对抗网络(Generative Adversarial Networks)是一种无监督深度学习模型,用来通过计算机生成数据,由Ian J. Goodfellow等人于2014年提出。模型通过框架中(至少)两个模块:
Discriminative model: 鉴别模型 用于检测样本是来自于模型分布还是数据分布
Generative model: 生成模型可以被认为类似于伪造者团队. 试图制造假货币并在未经检测的情况下使用,而判别模型是类似于警察,试图发现假币此游戏中的竞争驱动 两个团队都在改进他们的方法,直到赝品与真品难以区分。
目前主要应用于样本数据生成、图像生成、图像修复、图像转换、文本生成等方向。
二 Generative Adversarial Nets 原理
目的:
学习一个生成器G,产生的数据分布, 和训练集数据上面的分布
一致,让鉴别器Discriminative model 无法分辨输入的数据x 到底是
真实的,还是Generative model 产生的
Generator model:
生成器模型,简单的多层感知器。
输入:
一个随机的噪声
输出:
Discriminative model:
输入:
Trainset 得到的 或者 生成器得到的
输出:D(x)
判别为1
判别为0
三 损失函数
优化的目标函数是:
分为两部分
Discriminative model 优化目标
鉴别器的目标是 :
D(x)=1 真实输入,鉴别器输出概率为 D(x)=1
D(G(z)) Generator model 输入
鉴别器输出概率为D(G(z))=0,最大化 1-D(G(z))
Generator model 优化目标:
前半部分不需要优化,希望生成的和真实的分布一样,让Discriminative model
,最小化 1-D(G(z)) ,优化目标跟上面相反,所以称为Adversarial
四 训练方法
生成器G 隐式地将概率分布定义为 G(z) 样本的分布
当时得到的G(z).
4.1 训练方法
通过k次迭代,训练一个 Discriminative model,
再 训练一下 Generator model
训练过程
第一阶段:固定「生成器G」,训练「判别器G」。使用一个性能不错的判别器
第二阶段:固定「判别器D」,训练「生成器G」。
重复第一阶段、第二阶段。通过不断的循环,「生成器G」和「判别器D」的能力都越来越强。最终我们得到了一个效果非常好的「生成器G」,就可以用它来生成数据。
4.2 优化的目标:
要使随机输入的数据分布和真实数据分布的概率一致
---------------------------待续----------------
参考:
GAN的Loss的比较研究(1)——传统GAN的Loss的理解1_传统gan损失函数_田神的博客-CSDN博客
GAN的loss函数的解读 - 简书
GAN模型总结_lreaderl的博客-CSDN博客
GAN模型总结 - 知乎
常用几种GAN——Loss的理解 - 知乎