生成式对抗网络(GAN)学习笔记
作者:KevinZonda
GAN 是一个的网络,其将一个无监督学习问题巧妙转换成了监督学习问题。其核心包含了两组神经网络:生成器()和辨别器()。
生成器的目的是通过输入 ,生成假数据 。
辨别器的目的是根据输入,输出输入是真实的置信度。也就是判定是真实数据还是假数据:如果是真实数据,输出 1;如果是假数据,输出 0。
因此我们的目标可以简化为,我们希望构建一个足够好的辨别器,并让生成器成功欺骗辨别器。
建模
生成器
对于生成器 ,其输入是一个随机噪声 ,输出是一个假数据 。
其目标是使得辨别器 无法判定 是假数据。因此则为:
辨别器
对于辨别器 ,其输入是一个数据,输出 是一个概率,表示 是真实数据的概率。
因此对于真实数据: ,我们期望
因此对于虚假数据(生成的数据): ,我们期望
目标函数
为此可以构建目标函数:
对于辨别器 :
期望 大
期望 小
大
大
因此期望 大
对于生成器 :
期望 大
小
小
因此期望 小
我们可以理解数学期望 为:
算法 1
需要注意,在最开始时候 可能训练的特别好,但是 很难训练的很好,那么 就会面对梯度消失的问题。
可能的解决方案,使用最大化 ,而不是最小化 以训练 。
理论证明
命题 1:最佳的
Proposition 1:对于固定的 ,最佳的 是
对于两个分布 和 ,为了判别其是否相等,原式=.5(Two Sample Test)。
证明:
考虑:
可得:
令
因此可使原式改写为
考虑到这是一个关于辨别器的函数,也就是对于 的函数,因此我们认为这个函数是
这个函数是个凸函数,因此为求其最大值,我们可以求其导数为0的点。
代入回原式,可得:
因为我们已经完成了最大化 D,因此只需要最小化 了。
KL 散度
有两个分布 和 ,我们希望知道 和 之间的差异。
定理 1: 的最小值
定理 1:当且仅当 时, 达到全局最小解。并且此时
证明:
考虑当 达到 optimal 时候,。因此
因此可以重写原式:
考虑 KL 散度的性质:KL散度 ,当其为 0 时,必然是两分布相同,因此为让 最小,我们需要让 KL 散度最小,也就是 。
算法 1 的收敛性
命题 2
proposition 2:如果 和 有足够的容量(capacity),并且对于 算法 1的每一步,辨别器 和 在给定 被训练到最优,使用如下标准:
那么 收敛到 。