深度学习-李宏毅GAN学习之fGAN

散度函数

上一篇讲了GAN的数学原理,这次继续深入。

这次讲fGan,也就是将GAN的散度函数的统称,上篇将了2个散度,KL散度和JS散度,当然GAN还有其他的散度函数。

在这里插入图片描述
上图所示,我们可以将散度函数统一定义为上面这个公式,f()就是不同的散度函数,Df就是在f散度函数下,P,Q分布的差异。规定f是凸函数(为了用琴生不等式), f ( 1 ) = 0 f(1)=0 f(1)=0(如果两个分布一样,刚好公式=0)。
在这里插入图片描述
因为f是凸函数,所以可以用琴生不等式,具体可以点进去看看介绍,其实就是我们所学的凸函数的一种泛化推广不等式,可以推广到概率上,就是函数的期望>=期望的函数, E ( f ( x ) ) ≥ f ( E ( x ) ) E(f(x))≥f(E(x)) E(f(x))f(E(x)),具体有兴趣可以找资料看看怎么推导的。因此就有如下推导
在这里插入图片描述
可以看出,散度是个非负数,最小就是0。

我们看看上次我们讲的一些散度函数:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
就是我们的KL散度。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Reverse KL散度

在这里插入图片描述
在这里插入图片描述
好像叫卡方散度

共轭函数(Fenchel Conjugate)

每一个散度函数都有对应的共轭函数,定义为:
在这里插入图片描述
对于每个t都可以找到一个x,使得 x t − f ( x ) xt−f(x) xtf(x)最大,比如找t1,t2,两个点,x取x1,x2,x3,可以看到:
在这里插入图片描述
y ( t ) = x t − f ( x ) y(t)=xt−f(x) y(t)=xtf(x)可以看做是t的函数,是条线,t是任意的,因此可以画出很多条线,每个t总会找到一个对应的最大y值和对应的x,可以猜到这样的点连起来应该是个凸函数:
在这里插入图片描述

我们拿 f ( x ) = x l o g x f(x)=xlogx f(x)=xlogx来说,当x=10,1, 0.1时可以看到相应的函数直线,可以看到最大化y的点连起来是个凸函数,很类似 e t − 1 e^{t-1} et1.
在这里插入图片描述
e t − 1 e^{t-1} et1公式图像:
在这里插入图片描述
用数学来推一下:
f ( x ) = x l o g x f(x)=xlogx f(x)=xlogx 代入 y ( t ) = x t − f ( x ) y(t)=xt−f(x) y(t)=xtf(x),得 y ( x ) = x t − x l o g x y(x)=xt-xlogx y(x)=xtxlogx,对于每个给定的t都可以求出最大值,求导=0即可。
求导后得: t − l o g x − 1 = 0 t-logx-1=0 tlogx1=0,即x= e t − 1 e^{t-1} et1,代入 f ∗ ( t ) f^*(t) f(t),得 f ∗ ( t ) = t e t − 1 − e t − 1 ( t − 1 ) = e t − 1 f^*(t)=te^{t-1}-e^{t-1}(t-1)=e^{t-1} f(t)=tet1et1(t1)=et1,
同样可求得 ( f ∗ ( t ) ) ∗ = f ( x ) (f^*(t))^*=f(x) (f(t))=f(x),从而问发现这样的关系,貌似有点像矩阵求2次逆又回来了。
在这里插入图片描述
那这个跟GAN有啥关系呢
在这里插入图片描述
在这里插入图片描述

可以看到,我们的散度里的f(x)可以用上面求max的来表示,我们可以训练个D(x),输入x输出t,从而替换进公式,最后可得
在这里插入图片描述
然后可以化为期望:
在这里插入图片描述
我们的目标G:
在这里插入图片描述
可以看到,散度最后跟 f ∗ f^* f是相关的,我们想用上面散度,只要换这个就行。
附上一张散度函数相关的图:
在这里插入图片描述
写了那么多,主要就是一个思想,不同的散度函数都可与GAN,会产生不同的效果。

一些问题

Mode Collapse

在这里插入图片描述
这个主要是说,我们的真实数据集是分散的,但是生成的可能比较集中,从二次元头实验可以看到,好多头像很类似,就是这个问题。

Mode Dropping

在这里插入图片描述
训练了几次,生成的居然是一样的,只是变了一点颜色。

出现以上问题可能是因为散度函数没选好。
在这里插入图片描述
不同散度函数,学到的分布是不一样的,第一个看起来比较平滑,因此可能生成的图像比较模糊,第二个生分布比较集中,就可能出现Mode Collapse和Mode Dropping问题,所以如果发现生成效果不好,那就可以更换散度函数来进行优化。

总结

写了那么多,自己都要弄晕了,其实那么多推导,就是为了说明一个,我们所衡量的散度是可以根据散度函数更换的,可以根据不同的散度函数特性来优化生成器。

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值