![生成对抗网络GAN:原理与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/116/48213116/b_48213116.jpg)
2.1.3 GAN的本质
为了深入探究GAN的本质,我们对其进行理论上的分析。首先,在每次迭代的过程中,我们都可以计算出最优判别器D*,只需令目标函数的一阶导数为0,可得
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_01.jpg?sign=1739285537-sc50kmXHx2zUKaEwyBlq4okYodlJ5u3t-0-1c4eb1ebe177f3d6ec627dfbc0a2dcaf)
具体证明过程如下所示。
首先,我们对目标函数中的项进行变换:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_02.jpg?sign=1739285537-Elf5AWKont8StQpPq1ckpYIPkuy03p3K-0-bb133ecde0865c6082252c647fbeb267)
则判别器的目标函数变为:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_03.jpg?sign=1739285537-A760BUWtfzWFYKApHreuZuVvRv0IB4dZ-0-c062462e525e2f5ef2b7523b207720a4)
使其一阶导数为0,则
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_04.jpg?sign=1739285537-Yjwfkv4NEJW8dq3g14kT9IJTzWfrKGe9-0-eb0dd10d059a1437189ae8c9570fe04e)
当判别器达到最优时,生成器的目标函数为:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_05.jpg?sign=1739285537-Hy8ahmvLJKI4FtxAAqnMmwVOOyufxIrC-0-db91f8d2fb1ebfc7285f4db9be669df5)
可改写为:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_06.jpg?sign=1739285537-7zl7sAzapfQlX7n1RdUy9shpp9tBFA8J-0-de496cc2f8141a871afc3b82d2a6bbc5)
具体的计算步骤为:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_46_07.jpg?sign=1739285537-8m7Yf84OoEpsxfa77ulcocoAczBuGitf-0-de759bd33a078e223689cd4c4e6d8910)
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_47_01.jpg?sign=1739285537-wfWVXMkn3oqochnQ7rZ70Mm8Hhcj15zj-0-4949a775379a4b29b16ef6d497d7299c)
JS散度是一种度量两个概率分布之间的差异的常用方式。为了加深理解,我们对JS散度稍作解释。我们非常熟悉这样一件事:在一个二维平面上,每个点便是一个元素,点与点之间的距离即欧氏距离,可通过勾股定理计算,如(3,0)与(1,0)的距离肯定要比(0,1)与(1,0)的距离大。其实元素是一个抽象的概念,平面上的点可视为元素,矩阵、多项式、函数也均可视为元素,类似刚才的例子,若将每一个概率分布p(x)也视为一个元素(如图2-5所示),则概率分布之间的距离可使用JS散度计算,有
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_47_02.jpg?sign=1739285537-6Y6LsgCCGpFLzuwl9m5UlMwENM26cH1k-0-deb5b7dc0b1178a0724a181ec0ec11ed)
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_47_03.jpg?sign=1739285537-YV73BSHJfVNYWH5gmIvC3d3qRbczHSnZ-0-c8414b4e89ac4f2e4e39cb859bbdcf07)
图2-5 JS散度解释
相应地,JS散度越小,表示两个概率分布越相似;JS散度越大,表示两个概率分布差异越多;两个分布完全相同时,JS散度为0。对于图2-5中的例子,计算可知JS(p1(x)|| p2(x))>JS(p2(x)||p3(x))。
可以看出,GAN本质上是先通过训练判别器得到pdata和pg的JS散度,然后训练生成器使JS散度达到最小,当JS散度为0时,生成器达到全局最优,即pdata=pg。理论上也可以证明,当生成器和判别器具有足够的容量,并且在给定生成器时,如果判别器能够达到最优解,则GAN可以实现全局最优,当然这在实践中几乎是不可能的。
另外,对于生成器的非饱和形式目标函数,同样在最优判别器D*的条件下,目标函数变为:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_48_01.jpg?sign=1739285537-hTWKgL0NvJlVAoM64ZVqkcXwlFjRhVvt-0-94b2648cb811b5543a3fe48895d7db9e)
具体的计算步骤:
![](https://epubservercos.yuewen.com/7550BE/27732744204343206/epubprivate/OEBPS/Images/978-7-111-71223-7_48_02.jpg?sign=1739285537-Qev1FPWbZFPhT1vLBE4mAcrBfJeNxXaq-0-7ab13852db394c72196dcbfbeaae11ea)
可以看出这里存在理论上的矛盾,即非饱和形式的生成器在最小化KL散度的同时也在最大化JS散度,这是两个方向相反的优化方向,但从实际效果上看,它确实在一定程度上避免了训练梯度饱和的问题。