从动力学角度看优化算法:GAN的第三个阶段

640


作者丨苏剑林

单位丨追一科技

研究方向丨NLP,神经网络

个人主页丨kexue.fm


在对 GAN 的学习和思考过程中,我发现我不仅学习到了一种有效的生成模型,而且它全面地促进了我对各种模型各方面的理解,比如模型的优化和理解视角、正则项的意义、损失函数与概率分布的联系、概率推断等等。GAN不单单是一个“造假的玩具”,而是具有深刻意义的概率模型和推断方法。 


作为事后的总结,我觉得对 GAN 的理解可以粗糙地分为三个阶段: 


1. 样本阶段:在这个阶段中,我们了解了 GAN 的“鉴别者-造假者”诠释,懂得从这个原理出发来写出基本的 GAN 公式(如原始 GAN、LSGAN),比如判别器和生成器的 loss,并且完成简单 GAN 的训练;同时,我们知道 GAN 有能力让图片更“真”,利用这个特性可以把 GAN 嵌入到一些综合模型中。 


2. 分布阶段:在这个阶段中,我们会从概率分布及其散度的视角来分析 GAN,典型的例子是 WGAN 和 f-GAN,同时能基本理解 GAN 的训练困难问题,比如梯度消失和 mode collapse 等,甚至能基本地了解变分推断,懂得自己写出一些概率散度,继而构造一些新的 GAN 形式。 


3. 动力学阶段:在这个阶段中,我们开始结合优化器来分析 GAN 的收敛过程,试图了解 GAN 是否能真的达到理论的均衡点,进而理解 GAN 的 loss 和正则项等因素如何影响的收敛过程,由此可以针对性地提出一些训练策略,引导 GAN 模型到达理论均衡点,从而提高 GAN 的效果。 


事实上,不仅仅是 GAN,对于一般的模型理解,也可以大致上分为这三个阶段。当然也许有热衷于几何解释或其他诠释的读者会不同意第二点,觉得没必要非得概率分布的角度来理解。但事实上几何视角和概率视角都有一定的相通之处,而本文所写的三个阶段只是一个粗糙的总结,简单来说就是从局部到整体,然后再到优化器。 


而本文主要聚焦于 GAN 的第三个阶段:GAN 的动力学


基本原理


一般情况下,GAN 可以表示为一个 min-max 过程,记作:


640?wx_fmt=png


其中 maxDL(G,D) 这一步定义了一个概率散度而 maxG 这一步则在最小化散度,相关的讨论也可以参考文章《f-GAN简介:GAN模型的生产车间》[1]不用L约束又不会梯度消失的GAN,了解一下?。 


注意,从理论上讲,这个 min-max 过程是有序的,即需要彻底地、精确地完成 maxD 这一步,然后才去 minG。但是很显然,实际训练 GAN 时我们做不到这一点,我们都是 D,G 交替训练的,理想情况下我们还希望 D,G 每次只各自训练一次,这样训练效率最高,而这样的训练方法对应于一个动力系统。 


动力系统


在我们的“从动力学角度看优化算法”系列中,我们将梯度下降看成是在数学求解动力系统(也就是一个常微分方程组,简称 ODEs)。


640?wx_fmt=png


其中 L(θ) 是模型的 loss,而 θ 是模型的参数。如果考虑随机性,那么则需要加上一个噪声项,变成一个随机微分方程,但本文我们不考虑随机性,这不影响我们对局部收敛性的分析。假定读者已经熟悉了这种转换,下面就来讨论 GAN 对应的过程。


GAN 是一个 min-max 的过程,换句话说,一边是梯度下降,另一边是梯度上升,假设 φ 是判别器的参数,θ 是判别器的参数,那么 GAN 对应的动力系统是:


640?wx_fmt=png


当然,对于更一般的 GAN,有时候两个 L 会稍微不一样:


640?wx_fmt=png


不管是哪一种,右端两项都是一正一负,而就是因为这一正一负的差异,导致了 GAN 训练上的困难。我们下面就逐步认识到这一点。 


相关工作


将 GAN 的优化过程视为一个(随机)动力系统,基于这个观点进行研究分析的文献已有不少,我读到的包括 The Numerics of GANs [2]GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium [3]Gradient descent GAN optimization is locally stable [4]Which Training Methods for GANs do actually Converge? [5],而本文只不过是前辈大牛们的工作的一个学习总结。 


在这几篇文献中,大家可能比较熟悉的是第二篇,因为就是第二篇提出了 TTUR 的 GAN 训练策略以及提出了 FID 作为 GAN 的性能指标,而这篇论文的理论基础也是将 GAN 的优化看成前述的随机动力系统,然后引用了随机优化中的一个定理,得出可以给生成器和判别器分别使用不同的学习率(TTUR)。


而其余几篇,都是直接将 GAN 的优化看成确定性的动力系统(ODEs),然后用分析 ODEs 的方法来分析 GAN。由于 ODEs 的理论分析/数值求解都说得上相当成熟,因此可以直接将很多 ODEs 的结论用到 GAN 中。


Dirac GAN


本文的思路和结果主要参考 Which Training Methods for GANs do actually Converge?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值