TGAN

T-GANs:基于「图灵测试」的生成对抗模型

 

转自: https://www.jiqizhixin.com/articles/2018-11-05-16 

 

本期推荐的论文笔记来自 PaperWeekly 社区用户 @TwistedW本文将“图灵思想”用在 GAN 的框架下,这个思想在 RSGAN 中最先提出——将以往判别器逐个判断数据真假换为将真假样本混合后再做判断,同时在生成器下引入真实样本做参考,增加了生成器的生成能力。本文对该思想做了更一般化的推证和应用,可以说”图灵思想“适用于任何一种 GAN 模型。

引言

利用 GAN 做实验的学者一定为其训练不稳定感到痛苦,如何去控制超参数,如何去平衡判别器和生成器间的迭代都是操碎了心。尽管 WGAN [1]、LSGAN [2] 对于 GAN 的梯度消失做了解释和改进,但是在实际的训练中模型的不稳定一直存在。SNGAN [3] 可以有效地约束判别器的能力,但是随着生成精度的增加,仍然不可避免训练的不稳定。

T-GANs 是苏剑林的一篇在 RSGAN 的基础上对相对判别器做一般化改进的文章,论文现已挂在 arXiv,代码已开源。文章中出现了较多的数学公式,笔者尽量用简洁的话语阐述清楚文章观点。

源码链接:

https://github.com/bojone/T-GANs

论文引入

由于 GAN 的文章更新太多,现将原始 GAN 称为 Standard GAN,简称 SGAN,文章后续的 SGAN 就是大家最熟悉的由 Goodfellow 创作的最原始的 GAN [4]。

GAN 在训练和分析过程中都会发现判别器 D 的能力是远超生成器 G 的,这个理论推导在 SNGAN 中有所提及。为了较好地平衡 D 和 G 的关系,在 GAN 刚开始的阶段,大多数学者是控制判别器和生成器的更新比例。由于 WGAN 和 LSGAN 等一系列改进文章的提出,权重裁剪、梯度惩罚得到应用,SNGAN 对判别器做谱归一化来约束判别器的能力。 

上述这些方法仍然无法完全消除 GAN 训练过程中的不稳定,尤其是训练特别高维数据的情况下,例如 1024 x 1024 的图像。这个观念在最近新出的 BigGAN 中作者也是吐槽了一下。

RSGAN 将“图灵测试”的思想引入到了 GAN 中,何谓图灵测试,借用苏大哥文章中的描述做解释: 

图灵测试指的是测试者在无法预知的情况下同时跟机器人和人进行交流,如果测试者无法成功分别出人和机器人,那么说明这个机器人已经(在某个方面)具有人的智能了。“图灵测试”也强调了对比的重要性,如果机器人和人混合起来后就无法分辨了,那么说明机器人已经成功了。 

RSGAN 把图灵测试在 GAN 中的应用可以这么理解,对于真实样本我们将其理解为人,假样本则理解为机器人,不再按照 SGAN 中一张张送到判别器下判断样本真假,而是将真假样本混合在一起让判别器判断何为真何为假。

这样判别器将不再按照记忆去判断真假,而是在混合的数据堆中找到真假,这个无疑是增加了判别器的判别要求,在训练阶段有用的和丰富的梯度将得到保留;同时让生成器也看到真实样本,在生成阶段更加逼真的生成高质量样本。这种一收一放,有效地控制了 D 和 G 的能力,进而在整体上提高了 GAN 的性能。

GAN的回顾

为了保证与原文的公式一致,接下来部分的公式保持与原文一致。大部分 GAN 的目的都是为了减小真实样本和生成样本的分布差异。我们定义真实样本的分布为 p̃(x),生成样本分布为 q(x),对于 SGAN 对抗下最大最小化博弈,对于判别器 T(x) 和生成器 G(z):

这里的 σ 为 sigmoid 函数,其中 h 可以是任何标量函数,只要使 h(log(t)) 成为变量 t 的凸函数即可,这个后续再说。对上述的判别器优化公式 (1) 进行变分操作,类似于微分,可以得到:

详细证明可参看RSGAN:对抗模型中的“图灵测试”思想。带入到公式 (2),可以得到:

设 f(t)=h(log(t)),可以看出 SGAN 的基本目标是最小化 p(x) 和 q(x) 之间的 f- 散度,函数 f 受凸函数约束。因此,任何使 h(log(t)) 成为凸函数的函数都可以使用,例如 h(t)=−t,h(t)=−logσ(t),h(t)=log(1−σ(t))。 

对于 WGAN 中的 Wasserstein distance,其目的也是为了最小化 p(x) 和 q(x) 之间的距离,详细解释可参看原文,这里不再赘述。不过统一起来,这些 GAN 都是为了拉近生成分布与真实分布;在更新生成器时,只有来自生成分布的假样本可用。这种一张张输入判断真假的任务对于拥有强大记忆性的判别器来说是容易的,这无疑会导致越训练判别器的能力越强,最终导致训练的失败。

RSGAN

RSGAN 在 SGAN 的基础上对判别器做了一定变化,此时判别器不再是一张张判断输入的真假,而是将真假混合在一起来判断,同时生成器的更新也加入了真实样本作为指导,这就是 RSGAN 的整体思路,所对应的优化公式为:

继续通过变分的思想,可以对公式 (5) 进一步分析,得到的最优解:

带入到公式 (6) 可以得到:

这就是 RSGAN 的目的所在,它实际上优化的是 p̃(Xr)q(Xf) 和 p̃(Xf)q(Xr) 的 f- 散度。我们可以进一步分析(以下观点借鉴自苏剑林文章): 

假如我从真实样本采样一个 Xr 出来,从伪造样本采样一个 Xf 出来,然后将它们交换一下,把假的当成真,真的当成假,那么还能分辨出来吗?换言之:p̃(Xf)q(Xr) 有大变化吗? 

假如没有什么变化,那就说明真假样本已经无法分辨了,训练成功。假如还能分辨出来,说明还需要借助真实样本来改善伪造样本。所以,式 (8) 就是 RSGAN 中“图灵测试”思想的体现:打乱了数据,是否还能分辨出来?

T-GANs

前面说到 RSGAN 的突破性工作就是优化了 p̃(Xr)q(Xf) 和 p̃(Xf)q(Xr) 的 f- 散度,利用“图灵测试”的思想来优化 GAN。为了让这一思想更加一般化,更可以称得上是“图灵测试”在 GAN 中的应用,T-GANs 显示出了更加一般化的思想。 

假设联合分布 P(Xr,Xf)=q̃(Xr)p(Xf),Q(Xr,Xf)=q̃(Xf)p(Xr)。现在的目的是想最小化 P(Xr,Xf) 和 Q(Xr,Xf) 的距离,如果将 (Xr,Xf) 视为一个变量,并带入 SGAN 即公式 (1) 中,可以得到:

代入公式 (2) 可以得到 G 的优化公式,这里的 Xf 可以表示为 Xf=G(z),z∼q(z),最终得到一般化优化公式:

这就是利用 SGAN 实现了 p̃(Xr)q(Xf) 和 p̃(Xf)q(Xr) 分布距离的拉近,并且也可以进一步将“图灵测试”思想用在 WGAN 上。

最终应用在优化公式上:

怎么去实现 T(Xr,Xf) 呢?

可以构造一个编码器 E,将真实样本和生成样本先编码到潜在空间,再通过判别器 D 判断 E(Xr)−E(Xf) 的真假,可以表示为:

当然这种“图灵思想”可以用在更多的 GAN 模型上,甚至可以说对于任何一种 GAN 都是适用的,所以文章将“图灵思想(Turing Test)”用作题目,简称为 T-GANs。

实验

在不同的图像尺寸上,T-GANs 展示了更多的网络适应能力和更快的收敛速度。在私下和作者交流的过程中,64 尺寸到 128,甚至是 256 整体框架的改动不大, 这对于一般 GAN 模型是困难的,看一下实验结果对比:

由于文章还处于初稿阶段,本博文只是为了对文章做中文解释,后续的实验还会再丰富。

总结

在本文中,作者提出了一种新的对抗模式,用于训练称为 T-GAN 的生成模型。这种对抗模式可以解释为 GAN 中的图灵测试,它是训练 GAN 而不是特定 GAN 模型的指导思想。 它可以与当前流行的 GAN(如 SGAN 和 WGAN)集成,从而实现 T-SGAN 和 T-WGAN。

实验表明,T-GAN 在从小规模到大规模的数据集上具有良好且稳定的性能。 它表明在 GAN 中更新发生器时,实际样本的信号非常重要。然而,T-GAN 提高稳定性和收敛速度的机制仍有待进一步探索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值