原始GAN存在的问题

一、判别器非常强,导致loss都是0,不能引导生成器更新,所以可能生成出来的图像和真实图像差别很大,而loss仍然是0

原因1、我们是近似采样,并不能对原始数据全部采样

loss如下:

      说明从两个分布采样的数据没有重合区域,但是其实两组数据之间有重合,只是判别器太强了,可以找到一条线将两组数据分开,如图所示。

原始GAN存在的问题_第1张图片

图上的点是两个分布的采样数据,因为我们并不知道分布,只能对分布采样,通过采样后的数据分布近似原始分布

原始GAN存在的问题_第2张图片

       通过对分布采样,总能找到一条线将两组数据分开,因此我们要削弱判别器的能力,但是我们又想让判别器具有很强的能力,所以很矛盾,不知道削弱多少才合适。

原因2:数据的本质原因

       因为数据本身就是一种高维空间的低维流形表现,他们之间可能重叠很少,因此,很容易导致JS divergence最大,loss为0,如下图所示。

原始GAN存在的问题_第3张图片

原始GAN存在的问题_第4张图片

        由上图可知,初始两个数据分布差别很大,我们想通过一定的迭代使得两个分布之间差别越来越小,最后重合,但是前面的JS divergence都是log2,即loss为0,并不会更新生成器的参数,因此并不会有效地引导越来越好的过程。

二、Mode Collapse

假设原始数据会有两个峰值,但是generator会趋向于生成近似两个峰值中的一个,因此很容易会生成相同的图像,只是有可能颜色不一样罢了,如下图所示。

原始GAN存在的问题_第5张图片

我们的目标是最小化KL散度,但是实际上会最小化reverse KL散度。

原始GAN存在的问题_第6张图片

原始GAN存在的问题_第7张图片

       左图最小化KL散度,为了避免KL产生很大的值,PG会尽可能地沾满所有原始数据的分布区域,防止出现PG没有值而原始数据分布有值的情况;右图最小化Reverse KL散度,为了避免Reverse KL会出现很大的值,PG会局限于一个峰值区域,防止出现Pdata为0的地方还有PG。

 

你可能感兴趣的:(Deep,Learning)