李弘毅老师GAN笔记(四),GAN 背后的理论
这一节理论推导的课程,证明了 GAN 的可行性,并解释了 GAN 背后的原理。
目录
1 目标
以二次元图像生成为例,我们的目标是什么呢,从数学角度来说其实就是得到一个函数,输入 x 是一个向量,输出 y 便是生成的图像,其实 y 也是一个向量,满足的分布设为 ,其中
为函数的参数,设真实的二次元图像满足的分布为
,那么我们的目标就是使得
与
越接近越好,也就是说我们生成的图像与期望图像约真实越好。
2 推导
2.1 极大似然估计
我们从 中抽样,得到一系列真实样本
,那么目标就是这些样本在分布
中的值(概率)越大越好,记得到目标公式:
找到 使得 L 最大。
2.2 极大似然估计与最小 KL 散度
两者是等价的关系,详见下面公式推导:
KL散度(KL divergence)就是衡量两个分布的差异性的公式,越小差异性越小。当然也可以用其他计算差异性的公式来计算,下边统称为 Div,所以目标公式变为了:
G 也就是我们要求的生成网络的模型,但是后边那个求解 Div 的式子较为困难,因为我们不知道两个分布,所以没办法计算,因此有了判别网络,来拟合这个式子。
2.3 判别网络
如何拟合呢?其实思路很简单,我们定一个目标函数,使得这个目标函数和我们要拟合的式子很接近就OK了。我们这里给的目标函数如下所示,要求 V 越大越好:
对其展开得:
假设 D(x) 可以取任意函数,那上边那个积分取最大可以变成对于任意 x 取最大。
继续推导,求导找到最大值:
将 D(x) 的极大值带入 V 的定义式得:
其中,JSD 是 JS 散度, 定义如下式:
所以,最小化 等价于最大化 V(G, D),G 是生成网络(函数),D 是判别网络(函数),所以最优生成网络为:
然后梯度下降就OK了。
由于真实图像和生成图像的分布的期望不知道,所以可以通过多个采样去估计,
所以实际上的 V 如下式:
3 算法
最后再完整的贴一个算法