这个章节主要讲的是不同的divergence对GAN的影响
f-divergence都可以放到GAN架构中。
f是凸函数并且f(1)=0
当p=q时,divergence为0,0是最小值。
代入不同的
f
(
x
)
f(x)
f(x),即有不同的KL。
每一个
f
(
x
)
f(x)
f(x)都有一个
f
∗
f^*
f∗,凸共轭。
有两种方法,分别为穷举法和画图法
穷举法:
穷举x,看当x等于多少时,能使
f
∗
f^*
f∗最大。
当
t
1
{t_1}
t1时,
x
1
{x_1}
x1最大,就选
x
1
{x_1}
x1;
当
t
2
{t_2}
t2时,
x
3
{x_3}
x3最大,就选
x
3
{x_3}
x3
画图法,红线即为
f
∗
f^*
f∗
f
∗
f^*
f∗也一定是凸函数。
当
f
(
x
)
=
x
log
x
f(x) = x\log x
f(x)=xlogx时,把不同的x代进去,以t为未知数会有不同的直线。这时的红线就是exp函数
具体证明如下
这和GAN有啥联系?输入哪一个x,使t最大?
用概率分布p对D(x)取值
可以用的f-divergence,把f(u)代进本章节刚开始的公式。
不同的f-divergence有什么用?
因为我们在训练GAN的过程中可能会碰到Mode Collapse。
比如二次元生成中,同一张人脸会出现几次,发色改变也算之内。
Mode Dropping
迭代不同次数,出现的也只是同一群。
比如下图,仅仅是皮肤的变换。
出现以上两种现象,可能是因为divergence选的不好。
选不同的divergence,最后Maximum likelihood的分布是不同的。
出现这种问题如果是因为divergence,那就可以换一个divergence,如果换后还有,说明是因为其他原因。
下图左图Mode Collapse出现模糊,右图Mode Dropping
所以用很多不同G,就可以产生不同的图片。避免Mode Collapse。