一、相关论文(生成对抗式网络)
https://blog.csdn.net/u011534057/article/details/52840788/
GANs学习系列(1):GANs最新进展一-CSDN博客\https://blog.csdn.net/u011534057/article/details/52840788/
二、GAN详解
李沐论文精读系列一: ResNet、Transformer、GAN、BERT_李沐读论文-CSDN博客
大佬讲的很好,点赞
三、自我b站学习
1.p是概率密度,p×微分dx是log函数在该点的概率,再进行积分表示log函数的期望。
2.pz替换成pg因为来源一样
为什么是两个期望相加而不是两个函数直接相加?
-
数据分布不同:
- 第一个期望是对真实数据分布 pdata(x)p_{data}(x)pdata(x) 取的,而第二个期望是对生成数据分布 pz(z)p_z(z)pz(z) 取的。由于这两个期望的输入来自不同的分布,因此不能简单地将其视为函数相加。每个期望都分别对应真实数据和生成数据的分布。
-
不同目标:
- 生成器 GGG 和判别器 DDD 的目标不同。判别器 DDD 试图区分真实数据和生成数据,因而它的损失函数包括两部分:对真实数据进行判断(第一个期望)和对生成数据进行判断(第二个期望)。这两个任务分别以期望的形式表现出来。
-
期望反映平均效果:
- GAN 模型训练中,输入样本通常是随机的。我们对所有样本求得的输出效果取平均,即计算期望,来度量整体的性能表现。期望使得GAN能够评估在整个数据分布上的平均性能,而不是仅仅对某个特定数据点的性能。
因此,GAN的目标函数设计成两个期望相加是为了分别捕捉 真实数据 和 生成数据 在整体分布上的表现,而不仅仅是对特定样本的评估。这使得GAN能够更好地在生成器和判别器之间找到最优的对抗平衡。
4.1 Global Optimality of pg = pdata
1、为了证明目标函数最优解就是pdata=pg
2、原始GAN的缺陷也在此,损失函数是JS散度形式,一旦两个分布没有重合,就会导致梯度为0,无法训练
3、因为GAN使用了这个对称散度,使之在训练上容易点
4.证明了目标函数是不错的
JSD散度
Jensen-Shannon散度 (JSD),它是用来衡量两个分布之间差异的一种度量方式。相当于借助了第三方M分布。
KL散度(Kullback-Leibler 散度)
可以从表达式观察出来,px和qx越接近,px/qx越趋向1,log趋向0;当所有都是0,则qx基本和px拟合
区别:
是KL散度的对称版本,能够衡量两个分布之间的相似性。JSD 散度通过同时衡量两个分布相对于它们的平均分布的KL散度来计算
4.2 Convergence of Algorithm 1
总结,训练是比较难的,G和D要均衡好;GAN是无监督学习的,但是用了有监督学习的损失函数来无监督学习,标号是D(x)=0?1