今天的这篇小文将是GAN模型理论介绍的最后一篇。有一些内容,所用数学技巧和方法非常高大上,理论结果也非常漂亮,但是完全搞明白其中的门门道道需要相当大精力和知识铺垫,况且实际运用也非常小众,但是作为模型理论里十分重要的一部分,有必要做一定程度的了解。故今天的文章将类似于“参观博物馆”的形式,只大概展示一些结果,带领大家看一看IPM框架和由此产生的各种各样的GAN。

作者&编辑 | 小米粥

在第二期,已经解释过原始形式的GAN其实只是fGAN的一个特例,在fGAN中我们可以通过选择不同形式的f(x)来获得不同的距离度量,从而产生各种GAN,例如LSGAN,EBGAN。其实,关于GAN的目标函数,除了f-divergence外还有另一大类:IPM,非常熟悉的WGAN便是属于IPM框架下的一种GAN。类似地,我们也可以在IPM框架下产生各种各样的GAN。

1 IPM

IPM(integral probability metric)也是一种对于两个概率分布之间的距离的度量。在IPM技术中,首先定义了满足某种限制条件的某一类函数的集合F,然后寻找一个最优的f(x)∈F使得两个分布之间的差异最大,该最大的差异值即为两个分布之间的距离:

这里要求f(x)(判别器)是可测、有界的实值函数,且函数空间F是对称的。

正是由于选择不同的函数空间F,导致了两种分布之间的各种各样的距离度量以及它们的性质差异。这点与f-divergence很像,例如在WGAN中,选择函数空间F为:

WGAN将判别器函数限定为满足1-Lipschitz条件,则对应了Wasserstein距离:

另外需要说明,IPM定义的距离度量虽然满足对称性、非负性、三角不等式,但是当该距离为0时,并不能严格证明两个分布相等,故为一种伪度量。

在这样的框架下,GAN的判别器(critic)先学习某种两个分布之间的距离,其目标函数为:

然后,优化生成器使得该距离最小:

接下来,我们将简单介绍三个不同类型的IPM,一起看一看IPM框架的强大泛化能力。

2. IPM框架下的GAN

2.1 Mean feature matching

如果我们定义函数空间为如下形式:

其中,v是m维的向量,其p范数小于等于1,Φ(x)是一个被w参数化的神经网络,f(x)为两个向量的内积。利用对偶范数的定义:

此时的IPM距离为:

其中,

为分布经过映射后的均值,这便是Mean feature matching GAN。

我们是这样计算两个分布之间的距离:寻找一个最优映射Φ(x)使得两个分布在映射到Φ(x)的特征空间后,其均值的差异最大,均值最大差异值即为两个分布之间的距离。接下来生成器的任务便是使得均值匹配,即均值差异变小。

我们不仅可以关注一阶统计特征——均值,还可以关注数据二阶统计特征——方差,类似得,函数空间F选择为:

对应的IPM距离为:

我们称之为Covariance Matching GAN。更进一步,同时考虑均值和方差两个统计特征,则可以得到如下的IPM距离:

2.2 Maximum mean discrepancy

最大均值差异(Maximum mean discrepancy)距离在迁移学习中具有广泛的应用,用来衡量两个分布的距离以判断其是否相似,它是在再生核希尔伯特空间中度量两个分布的差异。当给定核函数(例如高斯核函数),便给定了一个希尔伯特空间,再将函数空间限定在希尔伯特空间的单位球中:

对应于高斯核的IPM距离为:

实际中,上述距离(MMD距离)是这样计算的:

一个直观的想法是直接最小化该距离,以此作为生成模型的目标函数,这便是GMMN(Generative moment matching networks),这与一般的GAN形式是不一样的,它不存在判别器的部分,不需要训练神经网络来逼近两个概率分布之间的距离。

MMD GAN在该思路上进行扩展,它不使用固定的高斯核函数,而是通过判别器帮助学习一个核函数来最大化希尔伯特空间上的平均值差异,并将差异值作为分布的距离供生成器训练,需要说明一下它的核函数定义借鉴了高斯核函数的形式:

2.3 Fisher GAN

在线性判别分析中,我们希望找到这样一条直线:将训练样本投影到直线上,可以使得同类型的样本的投影点尽可能接近,而异类型的样本的投影点尽可能远离。类似于此,Fisher GAN不仅最大化均值差异,同时考虑了判别器的二阶矩限制,其函数空间选择为:

则其IPM距离为:

3. 小结

到此,我们花了五期来详细地介绍了一下GAN模型。

第一期中我们介绍了其他生成模型和GAN,一般在生成模型中,对生成器的概率分布进行显式建模,那么可以直接计算似然函数,再以最小化似然函数作为目标来训练生成模型。而在GAN的框架中,需要先利用数学技巧将生成器定义的隐式概率分布和数据集的本质概率分布的距离转化成可以通过采样来计算的形式,再使用神经网络(也就是判别器)来帮助逼近两个概率分布的距离,最后将距离作为目标函数来训练生成模型。

第二期中,我们介绍了一类框架f-divergence,在f-divergence中,通过选择不同的f(x)来构造不同的距离,然后利用共轭函数对距离进行数学变换,使得可采样得到距离的一个近似:

第三期中,先说明了f-divergence的问题:随着数据空间维数增加,距离不连续。我们介绍了处处连续,几乎处处可导且导数不为0的Wasserstein距离,由此引入WGAN,将目标函数视为线性规划问题并利用对偶原理将其转换成易于采样求解的对偶问题,最后推导出WGAN。

第四期中,我们介绍了矩阵的特征值(奇异值)的本质、谱范数等内容,展示了如何施加1-Lipschitz,并介绍了一种可以完美解决1-Lipschitz的SNGAN,

第五期中,我们介绍了另一个与f-divergence同级别的IPM框架,在IPM中,通过选择不同的函数空间来制造不同的距离。并简单展示了在此框架下的WGAN,McGAN,MMD GAN,Fisher GAN等内容。

到此,相信大家对GAN这个生成模型已经有了基本、比较清晰的认识,不得不说,我们的GAN优化之路才刚刚开始了一点,之前只是着重于其基本原理和目标函数(当然,GAN的目标函数五花八门,目前只是做了最基本的阐述,以后肯定还会涉及其他内容,还会再介绍)从下一期开始,接下来我们将会关注GAN的训练时的问题,大家有什么意见和建议欢迎留言,以便能更充分得准备内容。

[1] Li, Chun-Liang, et al. "MMD GAN: Towards Deeper Understanding of Moment Matching Network." (2017).

[2] Mroueh, Youssef, T. Sercu, and V. Goel. "McGan: Mean and Covariance Feature Matching GAN." (2017).

总结

这篇文章简单介绍了一下IPM技术,以及给出几个例子属于IPM框架下的GAN,例如MMDGAN,FisherGAN等,并在最后对之前的内容做了回顾。

下期预告:GAN训练中的问题

GAN群

有三AI建立了一个GAN群,便于有志者相互交流。感兴趣的同学也可以微信搜索xiaozhouguo94,备注"加入有三-GAN群"。

有三AI夏季划

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

往期精选

  • 【GAN优化】GAN优化专栏上线,首谈生成模型与GAN基础

  • 【GAN的优化】从KL和JS散度到fGAN

  • 【GAN优化】详解对偶与WGAN

  • 【GAN优化】详解SNGAN(频谱归一化GAN)

  • 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程

  • 【技术综述】有三说GANs(上)

  • 【模型解读】历数GAN的5大基本结构

  • 【完结】深度学习CV算法工程师从入门到初级面试有多远,大概是25篇文章的距离

  • 【完结】优秀的深度学习从业者都有哪些优秀的习惯

  • 【完结】给新手的12大深度学习开源框架快速入门项目

  • 【完结】总结12大CNN主流模型架构设计思想

  • 【AI不惑境】数据压榨有多狠,人工智能就有多成功

  • 【AI不惑境】网络深度对深度学习模型性能有什么影响?

  • 【AI不惑境】网络的宽度如何影响深度学习模型的性能?

  • 【AI不惑境】学习率和batchsize如何影响模型的性能?

  • 【AI不惑境】残差网络的前世今生与原理

  • 【AI不惑境】移动端高效网络,卷积拆分和分组的精髓

【GAN优化】一览IPM框架下的各种GAN相关推荐

  1. 【GAN优化】详解SNGAN(频谱归一化GAN)

    今天将和大家一起学习具有很高知名度的SNGAN.之前提出的WGAN虽然性能优越,但是留下一个难以解决的1-Lipschitz问题,SNGAN便是解决该问题的一个优秀方案.我们将先花大量精力介绍矩阵的最 ...

  2. 【GAN优化】最早被用于评价GAN模型的定量指标Inception Score是什么

    最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标,也没有太难以理解的东西,希望大家踊跃讨论,欢迎留言. 作者&编辑 | 小米粥 编辑 | 言有三 在判别模型中,训练完成的模型要在 ...

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

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

  4. 【GAN优化】从动力学视角看GAN是一种什么感觉?

    今天讲述的内容是GAN与动力学,这是一个非常好玩.非常新鲜的视角.考虑到很多人微积分和线性代数等知识的涉猎不多,我将会对涉及的内容都做出基本说明,也并不会涉及过深入的东西,然后争取串成一个故事,扩展一 ...

  5. 【GAN优化】GAN训练的几个问题

    从今天开始,我们将关注训练GAN时产生的问题,作为第一篇文章,首先从几个方面来分析一下实际训练的GAN和理论模型上的GAN不同之处以及实践中出现的问题.第一个部分将介绍最优判别器引发的梯度消失问题,第 ...

  6. 【阿里云课程】生成模型之GAN优化目标设计与改进

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第11课中的一节,介绍如下: GAN优化目标设计与改进 本次课程是阿里天池联合有三AI推出的深度学习系列课程第11期,深度生 ...

  7. 【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)

    欢迎大家来到<GAN优化>专栏,这里将讨论GAN优化相关的内容,本次将和大家一起讨论GAN的评价指标. 作者&编辑 | 小米粥 编辑 | 言有三 在判别模型中,训练完成的模型要在测 ...

  8. 【GAN优化】详解对偶与WGAN

    越学习越发现自己知之甚少,道阻且长,还是认真看下这篇文章,好好琢磨琢磨GAN吧. 今天将和大家一起学习在GAN界占有重要位置的WGAN,它提出了一种新的距离度量,较之前的f散度,它的数学性质更为优秀. ...

  9. 深度学习框架下群组行为识别算法综述

    源自:电子学报       作者:邓海刚  王传旭  李成伟  林晓萌 摘 要 群组行为识别目前是计算机视觉领域的一个研究热点,在智能安防监控.社会角色理解和体育运动视频分析等方面具有广泛的应用价值. ...

最新文章

  1. 来聊聊COCO数据集上两大霸榜模型-CBNet和DetectoRS
  2. 微型计算机应用重点,微型计算机原理以及的应用考试重点.doc
  3. Div span 标签详解
  4. php文件里直接写上?xml version=1.0 encoding=utf-8?出错?
  5. 操作系统:几种页面置换算法
  6. cnn识别cifar10、cifar100(pytorch)
  7. Linux学习之六-Yum命令的使用
  8. leetcode 822. Card Flipping Game | 822. 翻转卡片游戏(Java)
  9. Csv解析CsvFile
  10. ModelCoder状态机中的State逻辑
  11. 清除Eclipse和Myeclipse中的工作空间目录
  12. [转] 面向对象编程 - 访问限制
  13. Producer Flow Control 和 vmQueueCursor
  14. 用Not Exists 代替Not In
  15. js中的onscroll的用法
  16. (7)机器学习之make_bolbs
  17. freeswitch 录音录像模块和内核
  18. 【离散数学】陪集精讲
  19. MATLAB之模型仿真(一)简单自由落体运动
  20. CentOS7常用操作-笔记

热门文章

  1. String类为什么被设计为不可变的?
  2. jdbc连接数据库失败,com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。
  3. PyCharm简单使用介绍及注意事项
  4. 在SpringBoot中使用redis实现分布式锁
  5. 手动创建1个基于注解的springmvc项目
  6. AngularJS相关网站存档
  7. 数组翻转_算法系列之翻转单词顺序
  8. ccf-csp #201903-4 消息传递接口
  9. 百度云android隐藏空间,一招教你使手机端百度网盘中的隐藏空间在文件列表中显示出来...
  10. c语言程序设计棋盘不对齐,经典c语言程序设计例(55页)-原创力文档