如何让GAN收敛?

2019 年 12 月 07 日

如何让GAN收敛?

上一期我们说了关于 GAN 收敛的这样一件事情:如果矢量场 v 的雅可比矩阵的特征值的实部为负数,且学习速率足够小,则 GAN 会局部收敛到纳什均衡点。假设学习速率确实足够小,单纯考虑特征值的问题。在纳什均衡点,特征值的实数部分能否出现负数?这件事情是与目标函数息息相关的,因为雅可比矩阵的一般形式如下:



不难料想,如果生成器和判别器的目标函数 f 和 g 选取得当,上述矩阵的特征值的实数部分确实有可能为负数。今天用一个小实验来盘点一下,到底哪些 GAN,哪些目标函数可能收敛。


1. Dirac-GAN


我们将使用一个极其简单的 Dirac-GAN 模型作为测试对象,在一维空间中,训练数据只有一个点,其位置固定在 x=0;生成器只包含一个参数θ,生成样本的位置在 x=θ,如下图所示:



判别器为一个简单的线性函数与激活函数复合的形式



包括一个参数φ ,其中 f 为激活函数。通过选择不同的激活函数 f(t)可对应于不同的 GAN 形式,使用 Sigmoid 函数



可获得原始形式,而选择



可以得到 WGAN 的形式。Dirac-GAN 的纳什均衡点为(0,0),即生成的样本与训练数据重合。



接下来,我们依次观察不同的 GAN 能否收敛到均衡点。需要说明,实际情况远远复杂于 Dirac-GAN,样本不只是一维也不可能只存在一个样本点,我们只是通过它来直观说明一些问题,得到一些启示。


2. 标准 GAN 与 WGAN


2.1 标准 GAN


标准 GAN 即 Goodfellow 首次提出的 GAN 的标准形式,其损失函数的表达式为:



在 Dirac-GAN 中,对应的损失函数成为:



相应的动力学系统:



采用梯度下降法发现其并不收敛:



2.2 WGAN


WGAN 改进了概率分布之间的距离的度量,其损失函数的表达式为:



在 Dirac-GAN 中,对应的损失函数成为:



这里有一个简化处理,假设当训练到一定程度时,φ处于 0 附近,其值自然小于 1,满足 Lipschitz 限制。若只要关心其收敛情况,这样的假设是合理的。相应的动力学系统:



采用梯度下降法则发现其并不收敛:



其实,与简单的 Dirac-GAN 的实验结果一致,无论是标准形式的 GAN 或者 WGAN,从理论上证明,发现在纳什均衡点(0,0),其特征值为 f’(0)i 和-f’(0)i,均不包含实部。根据之前的理论,参数轨迹确实不应该表现为收敛,而且可以进一步证明,它在(0,0)附近的轨迹表现为“圆”,缺乏向纳什均衡点靠拢的“向心力”。


可以说,现在的问题不是选择什么样的 f(t),不是用 fGAN 或者 WGAN 的问题了,而是如何调整目标函数,也就是如何添加正则项,从而能解决特征值实部为负数的问题。


3. WGAN-GP


采用惩罚项的 WGAN-GP 是一种解决 1-Lipschitz 限制的软方法,其损失函数的表达式为:



在 Dirac-GAN 中,对应的损失函数成为:



相应的动力学系统:



采用梯度下降法则发现其也不收敛,说明这个正则项加的“不太好”。



4. 一致优化


一致优化是一种理论上比较“有保证”的 GAN,具体内容在上一期进行过详细描述,以标准的 GAN+一致优化正则项为例,其损失函数的表达式为:



在 Dirac-GAN 中,对应的损失函数成为:



相应的动力学系统:



结果有点复杂,但是确实在 Dirac-GAN 中精确收敛至(0,0):



正如上一期所说,实际情况中必须保证学习速率要足够小,而且要比较好地控制超参数,才可能收敛。


5. zero centered gradient


所谓 zero centered gradient 与 WGAN-GP 非常相近,就是添加正则项使判别器对输入的梯度接近一个常数,只不过在 WGAN-GP 中我们选择常数为 1,而这里选择常数为 0。(至于为何选择 0,这里不展开,以后有机会补充。)再细分下来,又包括两种添加正则项的方法,一种是在真实数据上施加惩罚项,另一种是在生成数据上施加惩罚项。


如果选择在真实数据上施加惩罚项,则其损失函数的表达式为:



如果选择在生成数据上施加惩罚项,则其损失函数的表达式为:



无论如何,其在 Dirac-GAN 中,对应的损失函数均表示为:



相应的动力学系统:



采用梯度下降法则发现其收敛:



这一个简单将 1 改为 0,使结果产生了巨大的变化,其实这一改变也正是 Wasserstein 散度的理论结果,注意这不是 WGAN 中的 Wasserstein 距离。


综上,我们可以带有启发性得说,如果你的 fGAN 或者 WGAN 训练过程不收敛,试一下一致优化正则项或者 zero centered gradient 正则项吧。


参考文献


[1] Mescheder L , Nowozin S , Geiger A . The Numerics of GANs[J]. 2017.


[2] Mescheder L , Geiger A , Nowozin S . Which Training Methods for GANs do actually Converge?[J]. 2018.


总结


这篇文章用了一个非常简单且直观的 Dirac-GAN 进行实验,首先说明了标准的 GAN 或者 WGAN 是无法收敛到纳什均衡的,需要添加正则项。接下来,WGAN-GP 也无法收敛,而一致优化正则项和 zero centered gradient 可以实现收敛,这为我们提供了很好的启示。


作者介绍


小米粥,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。


原文链接


https://mp.weixin.qq.com/s/De-qjmA2VCMSQy7lESeYMA


2019 年 12 月 07 日 20:37583
用户头像
刘燕 InfoQ记者

发布了 471 篇内容, 共 147.0 次阅读, 收获喜欢 831 次。

关注

评论

发布
暂无评论
发现更多内容

英特尔推出“OpenVINO领航者联盟”,携手DFRobot推进AI商业落地新探

飞天鱼2017

5招详解linux之openEuler /centos7防火墙基本使用指南

华为云开发者社区

centos7 网络安全 防火墙 openEuler 网络环境

最右JS2Flutter框架——动画、小游戏的实现(四)

刘剑

flutter 前端 探索与实践

F5G的星光闪烁,为工业而明,向未来而歌

脑极体

联盟链落地与激励机制

CECBC区块链专委会

贵州:“区块链+”促经济转型产业升级

CECBC区块链专委会

十二张图搞懂浏览器安全——(同源策略、XSS、CSRF、跨域、HTTPS、安全沙箱等知识点)

执鸢者

https 浏览器安全 同源策略 XSS 跨域

LeetCode题解:21. 合并两个有序链表,迭代(优化),JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

9个常用ES6特性归纳(一般用这些就够了)

华为云开发者社区

Java 程序员 编程语言 ES6 编程效率

微服务架构

不在调上

获奖名单公布 | 写作平台八月宠粉福利来袭,参与创作领取限时大奖~

InfoQ写作平台

写作平台 征稿 活动专区

LeetCode题解:21. 合并两个有序链表,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

主权投资基金或有助于实现可持续发展目标

CECBC区块链专委会

Github+docsify零成本轻松打造在线文档网站

Java全栈封神

Java GitHub 全栈 文档 docsigy

为什么 90 后一言不合就跳槽?

非著名程序员

程序员 个人成长 职业成长 延迟满足感 即时反馈

煌煌中原 化鲲为鹏

脑极体

【权限系统设计】ACL, DAC, MAC, RBAC, ABAC模型的不同应用场景

小隐乐乐

腾讯SaaS千帆对渠道的态度——合作共赢的诚意

人称T客

week 10

Geek_2e7dd7

DT时代释放金融数据价值,驱动金融商业裂变

华为云开发者社区

金融科技 华为云 modelarts 数据价值 用户细分

超英文邮件50%!Flink 中文邮件列表必须有姓名

Apache Flink

flink

十五张图带你彻底搞懂从URL到页面展示发生的故事

执鸢者

前端 浏览器 页面展示

你是否真的懂数组?

架构师修行之路

数组 数据结构与算法

libuv 异步网络编程之 TCP helloworld

Huayra

网络编程 libuv

当我们谈注册中心时谈什么?

小楼

zookeeper nacos 注册中心

论做AI芯片的正确姿势

flow

2.2.2 类反射场景与使用 -《SSM深入解析与项目实战》

谙忆

支持 100 种语言的 Canva 是怎么做本地化管理的?

葛仲君

产品经理 本地化 产品本地化 国际化

计算机网络基础(十七)---传输层-TCP的可靠传输

书旅

TCP 计算机网络 网络协议 计算机基础 TCP/IP

【漫画】最近,老王又双叒get了CDN的新技能—可编程化敏捷开发

巨侠说

CDN

week 10

Geek_2e7dd7

如何让GAN收敛?-InfoQ