【百面机器学习之算法工程师读书笔记】——第十四章:生成式对抗网络——WGAN:抓住低维的幽灵

WGAN论文链接https://arxiv.org/pdf/1701.07875.pdf

引言

二维与三维的关系

极限情况下,如果下图这张照片足够薄,没有厚度,那么他就在一个二维平面里,体积为0。拓展到高维空间,这个体积叫测度,无论N维空间的N有多大,在N+1维空间中测度就是0,就好比二维平面在三维空间中一样。一个地位空间的物体,在高维空间中忽略不计,好像幽灵一般,若有若无,是一个隐去的世界。

                                           

 

WGAN简介

2017年,一个训练生成对抗网络的新方法WGAN被提出,上一篇文章中我们介绍过GAN,其本质就是在最小化生成分布与真实数据分布的JS距离,当算法收敛时,生成器刻画的分布就是真实数据的分布。但是在GAN中,生成器的训练很不稳定,因此,WGAN就是来解决这个问题的。

 

 

GANs的陷阱?

Goodfellow在论文中指出,训练判别器,是在度量生成器分布和真实数据分布的JS距离;训练生成器,是在减小这个JS距离。但是在实验中发现,训练好生成器是一件很困难的事,生成器很不稳定,常出现坍缩模式。

坍缩模式

即生成器仅记下样本,没有理解样本,没有泛化能力,更没有创造新样本的能力,不会活学活用。拿图片来说的化,就是反复生成一些相近或相同的图片,多样性太差。

坍缩模式原因

训练生成器是基于JS距离,问题的根源可能也与JS距离有关。高维空间中并不是每个点都能表达一个样本,空间大部分其实是多余的,真实数据都蜷缩在低维子空间的流形(即高维曲面)上,因维度低,体积小,几乎为0,难以发现。通俗的讲,生成器就好比一张大网布满整个空间,在“兵力”有限的情况下,网布得越大,每个点附近的兵力就越少。当大网穿过低维子空间时,可看见的“兵”几乎为0,因此,这部分子空间就相当于一个盲区,如果真实数据都布在这,就成了漏网之鱼了。

                              

 

WGAN破解武器——Wasserstein距离

根据上述问题,我们的第一直觉会想到:不要让生成器在高维空间傻傻的布网,让它直接到低维空间抓”鱼“(真实数据)。处在高维空间,对抗隐蔽的低维空间,不能再用粗暴简陋的方法,需要特殊武器——Wasserstein距离,又名推土机距离。

推土机距离公式

                                                     

原因:

Wasserstein距离之所以能解决JS距离,其实就是生成器不在”布网“,而时改为”定位追踪“。因为当生成器分布随参数thalt变化而连续变化时,生成器分布于真实分布的Wasserstein距离也会随着that变化为变化,且几乎处处可导,而JS距离不保证随tha变化而连续变化。换言之,生成器只需讲自身分布稍微改变,就会改变它到真实分布的推土机距离,而JS距离是不敏感的,无论生成器怎么变化,JS距离都是一个常数。因此,推土机距离能有效锁定低维子空间的真实数据分布。

 

WGAN算法的实现思路

如上图所示的推土机距离公式太难求解了,但是和它有相同的值的wasserstein距离的对偶式是可以求解的。能大大降低Wasserstein距离的求解难度。其公式如下:

                                                                            

其计算过程是找到一个函数f,使得它最大化目标函数,对比原来GANs的,只是去掉了log,因此,只需做微小改动就能使用GANs的框架。但是,此处的f和GANs中的D不同,前者需要满足,即1-Lupschitz函数,后者是一个sigmoid函数作输出层的神经网络。二者都要求在寻找最优函数时要考虑界的限制。若是没限制,则函数值会无限大或无限小。

判别器在此处叫评分器,越像真实样本分数越高,否在越低。训练评分器就是计算生成器分布于真实分布的wasserstein距离:给定评分器,训练生成器就是在缩小这个距离。具体过程如下图。

                                               

 

相关公式介绍链接

https://www.cnblogs.com/noahzhixiao/p/10171410.html

https://blog.csdn.net/qq_31239495/article/details/83145651

 

 

【注:如有错误,还望指出,谢谢!】

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值