首页 > 其他分享 >【GAN优化】详解GAN中的一致优化问题

【GAN优化】详解GAN中的一致优化问题

时间:2022-10-12 17:04:33浏览次数:70  
标签:特征值 迭代 矩阵 实部 GAN 详解 不动点 优化


GAN的训练是一个很难解决的问题,上期其实只介绍了一些基本的动力学概念以及与GAN的结合,并没有进行过多的深入。动力学是一门比较成熟的学科,有很多非常有用的结论,我们将尝试将其用在GAN上,来得到一些有意义的结果,指导一下我们怎么训练GAN。

作者&编辑 | 小米粥

本期我们将首先介绍一个有关于动力学的收敛性命题,然后将GAN运用到上面,接着进行深入分析达到收敛的条件并最终引出了一个比较好的优化算法:一致优化。

1 一个重要的命题

先不谈GAN,先介绍一个特别重要的与动力学收敛性相关的命题,考虑一个如下形式的函数:

【GAN优化】详解GAN中的一致优化问题_特征值

其中h大于0。有这样一个命题:如果存在一个比较特殊的点(不动点)使得:

【GAN优化】详解GAN中的一致优化问题_特征值_02

而且在该不动点,函数F(x)的雅可比矩阵F'(x)的所有特征值(非对称矩阵的特征值为复数)的绝对值均小于1,则从该不动点的一小邻域内的任意一点开始,使用如下形式的数值迭代法:

【GAN优化】详解GAN中的一致优化问题_迭代_03

则F最终会收敛至: 

【GAN优化】详解GAN中的一致优化问题_迭代_04

为了直观描述,上述的数值迭代过程其实是在使用数值迭代的方式求:y=x和y=x+hG(x)两个函数的交点,如下示意:

【GAN优化】详解GAN中的一致优化问题_迭代_05

非常难得有一个好的关于收敛性的结论,而且其数值迭代的方式与实际的GAN训练方式也吻合,我们考虑将GAN对接到这个结论中。

2 对接GAN

上一期中,我们已经给出了GAN的动力学系统的介绍,为了方便起见,我们将生成器和判别器的目标函数均写成max的形式: 

【GAN优化】详解GAN中的一致优化问题_正则_06

那么对应于第一小节的式子,x对应为GAN的参数:

【GAN优化】详解GAN中的一致优化问题_迭代_07

而h可以对应为训练时候的学习速率,G(x)则对应为矢量场v:

【GAN优化】详解GAN中的一致优化问题_迭代_08

这样看来,式子表达的意思就是使用同时梯度下降法进行参数更新(由于将目标函数写成max形式,准确来说是梯度上升法,无伤大雅):

【GAN优化】详解GAN中的一致优化问题_正则_09

将一般形式与GAN对接起来后,再次考虑之前关于收敛性的结论,即如果存在满足如下形式的点(即不动点),并且在不动点,矢量场v的雅可比矩阵的所有特征值的绝对值均小于1,则从该不动点的某一个邻域内任意一点开始迭代,最终会进入收敛状态。

【GAN优化】详解GAN中的一致优化问题_迭代_10

其实前一个条件无非就是说在不动点,v=0,即损失函数的梯度为0。那么我们可以对GAN的训练过程进行“检查”,当出现一个梯度为0的参数点时,“检查”其矢量场的雅可比矩阵的特征值是否都在单位圆内,如果在则GAN的迭代最终会收敛进该点。

3 特征值分析

训练GAN要找到梯度为0似乎不是那么困难,但是实现第二个条件:在不动点的矢量场v的雅可比矩阵的所有特征值的绝对值均小于1 可能比较困难,我们来详细分析一下。考虑一般情况下的表达式:

【GAN优化】详解GAN中的一致优化问题_特征值_11

F(x)的雅可比矩阵为: 

【GAN优化】详解GAN中的一致优化问题_特征值_12

对其进行特征值分解,单位矩阵I的特征值是实数1,而考虑到一般情况下矩阵G'(x)是非对称矩阵,则其特征值必然是复数,设G'(x)分解出的特征值为:

【GAN优化】详解GAN中的一致优化问题_正则_13

F'(x)分解出的特征值为:

【GAN优化】详解GAN中的一致优化问题_特征值_14

通常情况如下图所示:

【GAN优化】详解GAN中的一致优化问题_正则_15

特征值很容易跑出到单位圆之外。要保证其绝对值小于1(即在单位圆里),首先要保证a小于0,(a大于等于0时,该条件不可能满足),如下所示:

【GAN优化】详解GAN中的一致优化问题_特征值_16

即G'(x)分解出的特征值的实部为负数,此时:

【GAN优化】详解GAN中的一致优化问题_正则_17

也就是说,要想进入收敛状态,特征值的实部要为负数,且同时要求学习速率h一定要足够小!其上界取决于特征值。但是这里有一个矛盾点,如果你将学习速率设置得太小,你的训练时长将会变得特别长。

同样地,在GAN中,需要保证矢量场v的雅可比矩阵

【GAN优化】详解GAN中的一致优化问题_正则_18

的所有特征值的实部为负数。但是实际中,这个条件是不太可能达到的,尤其是存在实部几乎为0而虚部的值比较大的情况,而且学习速率要设置的足够小。

注意到矢量场v的雅可比矩阵是与生成器和判别器的目标函数f、g相关的,考虑调整一下f和g,使得在不动点处的特征值的实部为负数。

4 一致优化

一致优化(Conseensus Optimization)是一种理论上比较好的方法,它做了一点“手脚”使得特征值的实部尽量为负数。先考虑一般的形式:

【GAN优化】详解GAN中的一致优化问题_正则_19

其中, γ 大于0,A为可逆矩阵,表达式为:

【GAN优化】详解GAN中的一致优化问题_迭代_20

严谨起见,需要说明一下:如果某个x是

【GAN优化】详解GAN中的一致优化问题_正则_21

的一个不动点,则该x也是

【GAN优化】详解GAN中的一致优化问题_迭代_22

的不动点,这里并没有因为在式子中添加A(x)而影响了不动点,之前可能在哪里收敛,之后还是可能在那个点收敛。而且在该不动点,

【GAN优化】详解GAN中的一致优化问题_正则_23

可以看出,相比于第3部分的表达式,新增加的一项会使得特征值向实数部的负数方向偏移(新增项为负定矩阵,其特征值必然为负实数),如图所示

【GAN优化】详解GAN中的一致优化问题_正则_24

如果超参数γ设置比较合理,“有希望”保证特征值均落在单位圆内。

现在,我们将上述方式对接到GAN中,将生成器和判别器的目标函数修改为:

【GAN优化】详解GAN中的一致优化问题_正则_25

其中, 

【GAN优化】详解GAN中的一致优化问题_迭代_26

可以写成如下形式:

【GAN优化】详解GAN中的一致优化问题_迭代_27

化简可有:

【GAN优化】详解GAN中的一致优化问题_正则_28

其雅可比矩阵的表达式为:

【GAN优化】详解GAN中的一致优化问题_迭代_29

根据之前的结论,如果γ设置比较合理,学习速率h足够小,则其特征值均会落入单位圆内,参数随着不断更新迭代会进入不动点,也就是说进入纳什均衡的状态。添加的正则项虽然没有解决要求足够小的学习速率的问题,但是“保证”了特征值尽可能落入单位圆中。

最后说明一下,一般GAN中,生成器和判别器的目标函数符号是相反的,但是我们同时对它们增加相同符号的正则项,在正则项部分上,它们的优化目标是一致的,故称之为一致优化。

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

[2] Nagarajan V, Kolter J Z, Nagarajan V, et al. Gradient descent GAN optimization is locally stable[J]. 2017.

总结

这篇文章承接上一篇文章,在GAN中利用动力学的成熟知识,添加了一个正则项,保证了GAN在足够小的学习速率的情况下能收敛进入纳什均衡状态,是一项非常有价值的工作。下一期的任务将继续延此路线展开。


标签:特征值,迭代,矩阵,实部,GAN,详解,不动点,优化
From: https://blog.51cto.com/u_14122493/5751159

相关文章

  • 【GAN优化】从动力学视角看GAN是一种什么感觉?
    今天讲述的内容是GAN与动力学,这是一个非常好玩、非常新鲜的视角。考虑到很多人微积分和线性代数等知识的涉猎不多,我将会对涉及的内容都做出基本说明,也并不会涉及过深入的东......
  • 【GAN优化】如何选好正则项让你的GAN收敛
    今天讲述的内容还是GAN的训练,也是最后一期,做几个简单的小实验,告诉大家怎么给GAN加正则项,使得你的GAN尽可能收敛。其实今天的内容本来还是与动力学结合很紧密,但是考虑到复杂......
  • 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程
    作者|小米粥编辑|言有三随走随行其实我一直非常佩服那些有规划又努力的人,因为我是一个对自己没太多规划的人。本科选择了物理专业,上学期间也算得上比较努力吧,但是物理是......
  • 【GAN优化】详解对偶与WGAN
    越学习越发现自己知之甚少,道阻且长,还是认真看下这篇文章,好好琢磨琢磨GAN吧。今天将和大家一起学习在GAN界占有重要位置的WGAN,它提出了一种新的距离度量,较之前的f散度,它的数......
  • 详解线性分类-朴素贝叶斯分类器(Naive Bayes Classifer)【白板推导系列笔记】
    朴素贝叶斯是对数据属性之间的关系进行了假设,即各个属性维度之间独立。 NB中我们假设$X$是离散的,服从多项分布(包括伯努利)。GDA的$X$可以用多维高斯分布表示,但是在NB中我......
  • 【GAN优化】一览IPM框架下的各种GAN
    今天的这篇小文将是GAN模型理论介绍的最后一篇。有一些内容,所用数学技巧和方法非常高大上,理论结果也非常漂亮,但是完全搞明白其中的门门道道需要相当大精力和知识铺垫,况且实......
  • 【AutoML】强化学习如何用于自动模型设计(NAS)与优化?
    大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述强化学习用于模型设计和优化的核心技术。作者&编辑|言有三一直以来,网络结构......
  • MySQL详解
    MySQL1.初识mysqlJavaEE:企业级Java开发Web前端(页面:展示:数据)后台(连接点:连接数据库JDBC,连接前端(控制视图跳转,给前端传递数据))数据库(存数据,Txt,Excel,Word)只会写......
  • Linux Epoll 详解
       Epoll作为Linux系统中的核心武器之一,在高吞吐、高并发的IO系统中经常遇见Epoll的身影,列如Redis、Nginx、Skynet等都使用到了IO多路复用技术。我们可以先创建一个e......
  • parted命令详解
    Parted是一个比fdisk更高级的工具,它支持多种分区表格式,包括MS-DOS和GPT。它允许用户创建,删除,调整大小,缩小,移动和复制分区,重新组织磁盘使用,以及将数据复制到新硬盘,但在缩小......