生成式对抗网络(GAN)学习笔记
Contents
对于潜在的公式渲染错误,新的处置方案包括 已正确渲染的 PDF 文件 和 已正确渲染的 HTML。
04/12/2023 KevinZonda
GAN 是一个的网络,其将一个无监督学习问题巧妙转换成了监督学习问题。其核心包含了两组神经网络:生成器(
生成器的目的是通过输入
辨别器的目的是根据输入,输出输入是真实的置信度。也就是判定是真实数据还是假数据:如果是真实数据,输出 1;如果是假数据,输出 0。
因此我们的目标可以简化为,我们希望构建一个足够好的辨别器,并让生成器成功欺骗辨别器。
建模
生成器
对于生成器
其目标是使得辨别器
辨别器
对于辨别器
因此对于真实数据:
因此对于虚假数据(生成的数据):
目标函数
为此可以构建目标函数:
对于辨别器
- 期望
大 - 期望
小 大 大
- 因此期望
大
对于生成器
- 期望
大 小 小
- 因此期望
小
我们可以理解数学期望
为:
1 2 3 4 5 6 7 8 9 10 11 12
func E(xs []float64, oper func(float64) float64 ) float64 { sum := 0.0 count := 0 for _, x := range xs { sum += oper(x) count++ } sum /= count return sum }
算法 1
- 对于 每一个迭代 循环:
- 循环 k 次(需要自定义)
- 从噪音分布
中采样 个噪音样本 - 从真实数据分布
中采样 个真实样本 - 更新辨别器
的参数: - 结束循环
- 从噪音分布
- 从噪音分布
中采样 个噪音样本 - 更新生成器
的参数:
- 循环 k 次(需要自定义)
- 结束循环
需要注意,在最开始时候
可能的解决方案,使用最大化
理论证明
命题 1:最佳的
Proposition 1:对于固定的
对于两个分布
证明:
考虑:
可得:
令
因此可使原式改写为
考虑到这是一个关于辨别器的函数,也就是对于
这个函数是个凸函数,因此为求其最大值,我们可以求其导数为0的点。
代入回原式,可得:
因为我们已经完成了最大化 D,因此只需要最小化
KL 散度
有两个分布
和 ,我们希望知道 和 之间的差异。
定理 1: 的最小值
定理 1:当且仅当
证明:
考虑当
因此可以重写原式:
考虑 KL 散度的性质:KL散度
算法 1 的收敛性
命题 2
proposition 2:如果
那么
Author KevinZonda
LastMod 2023-12-04 (29fb2f6)