07.EBGAN(ENERGY-BASED GENERATIVE ADVERSARIAL NETWORKS)

摘要

“Energy-based”:将鉴别器视为一个能量函数,将低能量归给数据流形附近的区域,将高能量归给其他区域。发生器被视为被训练以产生具有最小能量的对比样本,而鉴别器被训练成为这些生成的样本分配高能量,将鉴别器视为能量函数,除了通常具有逻辑输出的二进制分类器外,还可以使用广泛的架构和损失泛函。
EBGAN = auto-encoder + GAN

一些科普

EBM(energy based model)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在本paper中EBM用来最小化输入X(image)和经过auto-encoder之后的output(image)的匹配程度,能量越低匹配程度越好

EBGAN

EBGAN贡献

  • 使用自动编码器结构的鉴别器,其中能量是重构误差

理论

EBGAN 的全称是 Energy-Based GAN,它只改动了判别器,使其不再去鉴别输入图像是来自于P𝑑𝑎𝑡𝑎还是P𝑔,而是去鉴别输入图像的重构性高不高。具体来说就是,本来判别器的目的是学会寻找P𝑑𝑎𝑡𝑎与P𝑔之间的差异,进而给图片质量打分,现在我们不再是通过寻找差异来打分,而是用一种”强烈的记忆”让判别器仅仅记住P𝑑𝑎𝑡𝑎长什么样子,然后对于一个任意的输入 x,只要 x 符合这个“记忆”中的样子就给高分,只要 x 与“记忆”中的样子有差异就给低分。EBGAN 就是用 autoencoder 实现了这样的“记忆”。
在这里插入图片描述
首先值得说明的是,图中的 autoencoder 是提前用真实图片训练好的,也就是说,如果输入是来自真实数据集的图片,这个 autoencoder 就能产生和输入非常相似的图片;但是如果输入的是其他图片,autoencoder 的输出就不会和输入相似。现在把这个 autoencoder 放入判别器中,每当判别器输入一张 image x,通过这个 autoencoder 得到重构图像 x’,我们就能用 x 与 x‘的差值作为评判输入图像 x 质量好坏的标准,当差值越低的时候意味着输入图片越符合真实图片的特征。

由此我们可以看到,EBGAN 的最大特点就是判别器一开始就非常强(因为有 pretrain),因此生成器在一开始就能获得比较大的“能量驱动”(energy based),使得在一开始生成器就进步非常快。所以如果我们比较看中训练效率,希望在短期内获得一个比较不错的生成器的话,就可以考虑 EBGAN。

损失函数

在这里插入图片描述
其中D(x) = ||Dec(Enc(x))-x||,也就是D网络是一个自编码网络,D(x)是重构误差。
[⋅]+=max(0,⋅),而m是一个常数。该损失函数也叫margin loss。

一方面减小real image的重构误差,另一方面将fake image的重构误差推向(push towards) m,因此m称为一个 g a p gap gap。注意那个[⋅]+符号,在 f D f_D fD中,当fake image的重构误差小于m时,[⋅]+项为正,会对loss产生贡献; 否则为0,由此产生push towards m的效果。

loss function的regularize问题

通过 f D f_D fD可以看出,D模型对应的AutoEncoder不仅是在让real image的重构误差减小,同时还要让fake image的重构误差接近m。这样做有两个好处,一是防止AutoEncoder成为一个单纯的indentity funcion(恒等函数),而且使得真假图片之间的energy gap为一个常数m,而不想GAN一样是无穷大。这就是regularization的思想所在。
在这里插入图片描述

结构图

在这里插入图片描述
设计的合理性体现在:

  1. 相较于只使用1bit的信息来训练模型,使用重构误差的损失函数会有更多的信息提供给D网络。binary logistic loss只有简单的两个targets来更新模型,因此在一个batch里面不同的样本的梯度不是正交的(没有区分度),这样使得模型训练起来很低效。而重构误差损失函数对于不同的样本的梯度则能够避免上述情况发生。
  2. 自编码器本身就很适合表征基于能量的模型。只要有合适的正则项自编码器就能够不使用监督或者反例数据,而很好的学习能量流形
PT(pull-away term)正则项

防止Generator生成一样的图片,来解决model collapse问题。

pull-away“推开”:不让生成的图片扎堆,让生成的图片不一样

minibatch discriminator

就是每次给D输入一个batch,而且D要检测整个batch而不是分别检测每张图片。Real image batch中每张图片是不一样的,而如果出现了mode collapse,即所有图片一样,则一定是假的。

EBGAN-PT

在这里插入图片描述
思想很简单,这一项是,生成的fake image batch中每张图片经过Encoder编码后产生一个向量,两两向量算cosine距离,然后求和取平均。让这一项尽量小,则两两向量越接近正交。注意这一项仅仅用于假图片训练,因为它毕竟是为了解决G的mode collapse问题,若用于真图片就不讲理了。还要注意一点是,EBGAN-PT也有权重,作者在实验中取了0.1。

另外

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值