生成对抗网络(GAN)
来源:互联网 发布:知乎的经典评论 编辑:程序博客网 时间:2024/05/22 14:33
生成对抗网络(GAN)
paper原文:Generative Adversarial Networks
- 生成对抗网络GAN
- 概览
- 做了什么
- 优势
- 不足
- 模型组成
- 生成模型 G
- 鉴别模型 D
- 核心公式
- 算法
- 图示化描述
- 全局最优点 Pg Pdata
- 效果与对比
- 展望
概览
做了什么
- 提出了新的模型
对抗模型
- 通过
生成模型(G)
与鉴别模型(D)
之间的相互竞争。即D模型要将 G 生成假数据
调出,而 G 模型要设法“骗过”D 模型的鉴别,最终提高 G 模型的生成质量 - 通过实验当 D 最终结果稳定在
12 时 G 模型生成效果最好。
- 通过
优势
- 不需要使用Markov 决策框架
- 框架移植性强,可以用于各种训练、优化算法,以及现有的模型中。
- 两个模型都仅仅使用了
后向传播
与dropout
算法 - G 模型生成样本只需要使用
前向传播
不足
- 在当时未能明确找到代表
pg(x) 产物 - D 与 G 的训练必须同步,换句话说 G 不能脱离 D 的训练而更新多次。(防止出现
Helvetica scenario
问题)
模型组成
生成模型 G
- 通过
噪声
(一维序列)生成样本,尽力混淆 D 模型的鉴定。 - 随机噪声通过多层感知机生成
- 通过多层感知机输入
pz(z) 映射到数据空间G(z;θg) - 训练 G 来最小化概率
log(1−D(G(z))) .使得从噪声生成的数据足够真实。
鉴别模型 D
- D 主要是学习数据来源到底是来自真实数据,还是生成数据。
- 本质为二分类器
- 数值
D(x) 代表 x 是由真实数据获得并非由 G 生成的概率 - 同样使用多层感知机结构
- 训练 D 来最大化概率
D(x) ,使得 D 精于鉴别噪声
数据
核心公式
分析:
- 要让整体最小,即让两个期望都小
- 当输入图片与模型 D 一定时,前面的期望数值是一定的。
- 这时让整体下降就要依赖后面的期望
- 注意期望一定层面上反馈了这组数据的平均性能
- 所以当后面值低意味着,生成的图片必须足以以假乱真
- 这恰恰就符合了 GAN 的目标
- 最佳情况:一个看起来超假的图片,经过生成器,“以假乱真”
- 只要G 的变化足够慢,D 就会被保持在一个较优的水平上
- 这个思路模仿了
SML/PCD
算法的思路
算法
上方为 GAN 网络的核心算法,几点注意事项
k
为一个超参数,定义让 D 在每次训练步骤中,优先 G 增长的次数。k 越大 D 的鉴别能力越强,最后 生成 G 就越像。但是需要耗费的资源开销也会增大m
为mini-batch
超参数,定义对多少输入以及生成样本做梯度下降。这是一种借鉴全局梯度下降
与随机梯度
下降两者优点的做法。当 m = 样本数量退化为全局梯度下降
。m =1 退化为随机梯度下降
- D 的训练核心是最大化鉴别梯度
- G 的训练核心是最小化鉴别梯度,即提高混淆能力
图示化描述
图示中:
- 蓝点线代表 D 模型的
D(x) 在 x 域的分布 - 黑点线代表正常样本在 x 区域的分布
- 绿点线代表 G 模型生成样本在 x 域的分布
- 下面的 z->x 表达了生成模型 G 通过噪音 z 向混淆数据 x 生成的映射情况
从过程上:
a
的过程是算法刚开始,D 模型还不能很好的分辨出x 分布中的数据来源。a->b
是算法中的最里层的k
步训练。训练模型 D,使其鉴伪能力加强- 到
b
过程蓝点线已经平滑,证明 D 已经具有较稳定的分辨性能。 b->c
的过程是后面训练 G 模型的过程。此时 D 性能一定,训练 G 向能最小化D(G(x)) 方向发展。- 到
c
过程下 G 的生成分布逐渐像元数据靠拢。G 的噪声的生成映射关系也向中间集中 c->d
的过程是上面算法逐渐训练的过程- 最后到
d
,G 已经有足够的混淆能力,D 认为数据一半是原始数据,一半为真实数据。此时 G 模型已优化到最大性能。
全局最优点 Pg = Pdata
也可认为上面核心公式结果为0.5
首先我们假定:
这里
这里我们可以对核心函数
这里首先把所以把 z更名为x
然后做抽象:
当
同时我们也可以从期望的角度重写 V 式:
此时当
我们此时可以将 C 式子改写为
因为当 G 数据分布于 D 分布不均时,就需要C 就需要加上关于
各自的KL 散度
,也就是
定值加上两者的 JSD 散度
由于JS 散度
不为负数且当
于是得出题设的答案
效果与对比
展望
在当时作者最后提出几个重点展望
- 一个条件模型使得有参量
c
可以随时被注入于模型 G 和 D 半监督学习
的提出- 后期论文
DCGAN
为GAN
与CNN
结合提供了具体实现方案。
阅读全文
0 0
- 生成对抗网络GAN
- GAN生成对抗网络
- 生成对抗网络-GAN
- Gan 生成对抗网络
- [生成对抗网络] GAN
- 生成对抗网络(GAN)
- 了解生成对抗网络GAN
- 生成对抗网络(GAN)
- 浅谈GAN生成对抗网络
- pytorch GAN生成对抗网络
- GAN 生成式对抗网络
- 生成对抗网络GAN学习
- GAN—生成对抗网络
- 生成式对抗网络GAN汇总
- 生成式对抗网络GAN汇总 研究进展
- 生成式对抗网络GAN汇总
- GAN生成对抗网络发展史-文章整理
- 深度学习之生成对抗网络GAN
- macOS 解决apue.h不存在的问题
- Linux Ubuntu 学习指南 完整版 精华版 shell操作命令 安装软件
- (四)u-boot启动流程分析(C语言部分board_r.c)
- Spring security的图片验证码方案二
- 内部类被private来修饰
- 生成对抗网络(GAN)
- 周常总结
- 利用@media screen实现网页布局的自适应
- 通用线性模型(GLMs,Generalized Linear Models)
- MyBatis的statementType="STATEMENT"
- python中数据类型转换
- Ecshop会员注册的Email 电子邮箱改成非必填项
- 【CSS】浅谈CSS中的包含块
- redis集群 cluster-migration-barrier属性踩坑