写点什么

解决模式崩溃的两条思路:改进优化和网络架构

  • 2019-11-22
  • 本文字数:1991 字

    阅读完需:约 7 分钟

解决模式崩溃的两条思路:改进优化和网络架构

今天讲述的内容主要是 GAN 中的模式崩溃问题,首先将说明模式崩溃问题的本质,并介绍两种解决模式崩溃问题的思路,然后将介绍一种简单而有效的解决方案 MAD-GAN,最后一部分将给出 MAD-GAN 的强化版本 MAD-GAN-Sim。

解决模式崩溃的两条路线

GAN 的模式崩溃问题,本质上还是 GAN 的训练优化问题,理论上说,如果 GAN 可以收敛到最优的纳什均衡点,那模式崩溃的问题便自然得到解决。举例如下图,红线代表生成数据的概率密度函数,而蓝线代表训练数据集的概率密度函数,本来红线只有一个模式,也就是生成器几乎只会产生一种样本,而在理论上的最优解中,红线与蓝线重合,这时候在生成器中采样自然能几乎得到三种样本,与训练集的数据表现为一致。



当然,实际中几乎不会达到全局最优解,我们看似收敛的 GAN 其实只是进入了一个局部最优解。故一般而言,我们有两条思路解决模式崩溃问题:


1.提升 GAN 的学习能力,进入更好的局部最优解,如下图所示,通过训练红线慢慢向蓝线的形状、大小靠拢,比较好的局部最优自然会有更多的模式,直觉上可以一定程度减轻模式崩溃的问题。



2.放弃寻找更优的解,只在 GAN 的基础上,显式地要求 GAN 捕捉更多的模式(如下图所示),虽然红线与蓝线的相似度并不高,但是“强制”增添了生成样本的多样性,而这类方法大都直接修改 GAN 的结构。


MAD-GAN

今天要介绍的 MAD-GAN 及其变体便是第二类方法的代表之一。


它的核心思想是这样的:即使单个生成器会产生模式崩溃的问题,但是如果同时构造多个生成器,且让每个生成器产生不同的模式,则这样的多生成器结合起来也可以保证产生的样本具有多样性,如下图的 3 个生成器:



需要说明一下,简单得添加几个彼此孤立的生成器并无太大意义,它们可能会归并成相同的状态,对增添多样性并无益处,例如下图的 3 个生成器:



理想的状态是:多个生成器彼此“联系”,不同的生成器尽量产生不相似的样本,而且都能欺骗判别器。


在 MAD(Multi-agent diverse)GAN 中,共包括 k 个初始值不同的生成器和 1 个判别器,与标准 GAN 的生成器一样,每个生成器的目的仍然是产生虚假样本试图欺骗判别器。对于判别器,它不仅需要分辨样本来自于训练数据集还是其中的某个生成器(这仍然与标准 GAN 的判别器一样),而且还需要驱使各个生成器尽量产生不相似的样本。


需要将判别器做一些修改:将判别器最后一层改为 k+1 维的 softmax 函数,对于任意输入样本 x,D(x)为 k+1 维向量,其中前 k 维依次表示样本 x 来自前 k 个生成器的概率,第 k+1 维表示样本 x 来自训练数据集的概率。同时,构造 k+1 维的 delta 函数作为标签,如果 x 来自第 i 个生成器,则 delta 函数的第 i 维为 1,其余为 0,若 x 来自训练数据集,则 delta 函数的第 k+1 维为 1,其余为 0。显然,D 的目标函数应为最小化 D(x)与 delta 函数的交叉熵:



直观上看,这样的损失函数会迫使每个 x 尽量只产生于其中的某一个生成器,而不从其他的生成器中产生,将其展开则为:



生成器目标函数为:



对于固定的生成器,最优判别器为:



![]


可以看出,其形式几乎同标准形式的 GAN 相同,只是不同生成器之间彼此“排斥”产生不同的样本。另外,可以证明当



达到最优解,再一次可以看出,MAD-GAN 中并不需要每个生成器的生成样本概率密度函数逼近训练集的概率密度函数,每个生成器都分别负责生成不同的样本,只须保证生成器的平均概率密度函数等于训练集的概率密度函数即可。

MAD-GAN-Sim

MAD-GAN-Sim 是一种“更强力”的版本,它不仅考虑了每个生成器都分别负责生成不同的样本,而且更细致地考虑了样本的相似性问题。其出发点在于:来自于不同模式的样本应该是看起来不同的,故不同的生成器应该生成看起来不相似的样本。


这一想法用数学符号描述即为:



其中φ (x)表示从生成样本的空间到特征空间的某种映射(我们可选择生成器的中间层,其思想类似于特征值匹配),Δ (x,y)表示相似度的度量,多选用余弦相似度函数,用于计算两个样本对应的特征的相似度。


对于给定的噪声输入 z,考虑第 i 个生成器与其他生成器的样本生成情况,若样本相似度比较大,则 D(G_i(z))相比较 D(G_j(z))应该大很多,由于 D(G_j(z))的值比较小,G_j(z)便会进行调整不再生成之前的那个相似的样本,转而去生成其他样本,利用这种“排斥”机制,我们就实现了让不同的生成器应该生成看起来不相似的样本。


将上述限制条件引入到生成器中,我们可以这样训练生成器,对于任意生成器 i,对于给定的 z,如果上面的条件满足,则像 MAD-GAN 一样正常计算,其梯度为:



如果条件不满足,将上述条件作为正则项添加到目标函数中,则其梯度为:



这样尽量使得判别器更新后,条件能够满足。MAD-GAN-Sim 的思路非常直接清晰,不过代价就是增加非常多的计算量。


原文链接:


https://mp.weixin.qq.com/s/QFCJ7BxNvfj2L9Wlr6aq9A


作者介绍


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


2019-11-22 22:243553
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 569.9 次阅读, 收获喜欢 1979 次。

关注

评论

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

功能解读|快速上手 OceanBase 数据迁移服务

OceanBase 数据库

oceanbase OMS

专注云原生落地!星汉未来成为开源 GitOps 产业联盟会员

星汉未来

云原生 智能运维

面试高并发,凉了!!(全程高能,建议收藏)

冰河

并发编程 多线程 高并发 协程 异步编程

业内高规格!数字峰会七大板块之一,行业盛会诚邀采购商莅临!

科技热闻

瞄准程序员招聘痛点,ShowMeBug让面试代码操作可“回放”

ShowMeBug

在线JSON转PHP Array工具

入门小站

工具

专访 KubeVela 核心团队:如何简化云原生复杂环境下的应用交付和管理

阿里巴巴中间件

阿里云 云原生 OAM KubeVela

怎么做需求管理,手把手教你做需求管理

阿里云云效

云计算 阿里云 项目管理 需求管理 研发敏捷

RadonDB MySQL on Kubernetes 2.1.3 发布!

RadonDB

MySQL 数据库 Kubernetes 高可用 RadonDB

SQLite简介

网易云信

sqlite

领福利 | 腾讯千帆HR数字化专场,教你数字时代的技术招聘秘笈

ShowMeBug

华米科技 x StarRocks:让智能穿戴数据焕发新活力

StarRocks

数据库 数据分析 StarRocks

云原生时代的运维体系进化

阿里巴巴中间件

云计算 阿里云 云原生 中间件

不想业务被中断?快来解锁华为云RDS for MySQL新特性

华为云数据库小助手

GaussDB 华为云数据库 rds for mysql

求菩萨保佑?IT人员的系统稳定性公式

凌晞

架构 质量管理 技术管理

手把手教你怎么高效落地敏捷开发

阿里云云效

云计算 阿里云 云原生 敏捷开发 敏捷研发

百度飞桨螺旋桨赋能生物医药,推动AI技术在药物研发领域的探索应用

百度大脑

TensorLayer框架开源开发者董豪老师解密人工智能开发工具的过去与未来

OpenI启智社区

人工智能 开发工具 TensorLayer

企业电子文档管理系统哪个好

小炮

文档 企业管理软件

云效代码管理 Codeup 是什么?别说你还不知道

阿里云云效

阿里云 DevOps 云原生 云效 Codeup

什么是敏感信息检测,敏感信息检测,安全视图 | 云效

阿里云云效

云计算 阿里云 云原生 敏感信息检测 代码检测

【高效开发】不止面对面,Cloud Studio 推出 MetaWork 云协作套件

CODING DevOps

疫情 协同办公 Cloud Studio 云端编码

网络安全kali之利用宏感染word文档获取shell

侠盗安全

网络安全 kali kali Linux

CODING 公开课火热报名中!

CODING DevOps

项目管理 公开课 瀑布模型

SOTA效果+一键预测,PaddleNLP带你玩转11类NLP任务

百度大脑

2个未来技术概念:Web3.0 和元宇宙

devpoint

区块链 元宇宙 Web3.0 3月月更

任意只读文件漏洞分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

Linux之nc命令

入门小站

每周问答精选:PolarDB 和 PolarDB-X 的区别是什么?

阿里云数据库开源

数据库 阿里云 开源 polarDB

在线CSS压缩工具

入门小站

工具

把效能带到游戏里!仙峰红海蜕变突破之路

阿里云云效

云计算 阿里云 云原生 敏捷开发 研发效能

解决模式崩溃的两条思路:改进优化和网络架构_AI&大模型_小米粥_InfoQ精选文章