42

BigBiGAN的前世今生,走向成熟的特征抽取器

 4 years ago
source link: https://www.tuicool.com/articles/YNvEVzj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

生成模型的基本原则是想要构建一个令人信服的数据示例。图像越逼真,模型掌握目标的证据就越强。生成对抗网络(GAN)凭借其在图像合成方面的出色表现吸引了大量的关注,但 GAN 的一些潜在优势并没有被开发出来,例如无监督表示学习。本文作者为王子嘉,目前在帝国理工学院人工智能硕士在读。

生成模型经过训练可以模拟出完整的数据分布,同时无需对原始数据进行任何修改,如果 GAN 可以在生成图片的同时,也清晰的学习到语义(在生成图片时的随机潜变量),那么在自我监督任务中,GAN 就可以称为特征提取部分很有力的备选项,但可惜的是,GAN 在这方面一直没能做的特别出彩。

近日,DeepMind 就基于 BiGAN 完成了这一突破,提出了「BigBiGAN」,它在 ImageNet 上的无监督表示学习和无条件图像生成方面都取得了极为优秀的成绩。

1.BigBiGAN 的由来

BigBiGAN 这一名字可以被分成三个部分来解读,Big+Bi+GAN。

第一部分和第三部分比较好理解,GAN 表示 BigBiGAN 的基础之一是标准 GAN 结构,而 Big 表示的就是大规模学习(Large scale),从 BigGAN 中继承了一些训练大规模 GAN 的方法。

第二部分的 Bi 则表示双向(Bidirectional),这里的双向不是像 RNN、XLNet 等处理序列类数据时那样获取双向信息。这里的双向表示在 BigBiGAN 中的数据处理方向,生成器(G)的作用是将随机潜变量(z)还原成原始数据(x),而编码器(E)则希望从 x 中提取 z,这个两个元件就是 GAN 能完成表征学习的关键了,所以 Twitter 上有人会说 BigBiGAN 也可以叫 BigALI,这里 ALI 的意思是对抗学习推理 (Adversarial Learned Inference),与 Bi 本质上是一个意思,只不过 Bi 与 ALI 在不同的论文中提出。

了解了 BigBiGAN 名字的意义后,它的由来就很清楚了。首先,它来源于 BiGAN,但由于 BiGAN 的 G 是基于 DCGAN 的,所以生成的图片质量并不高,这也就导致了 G 的输出、判别器(D)的输入同 E 的输入的图片分辨率不同,E 输入的图片分辨率会高很多。这个差别也对 BiGAN 的特征提取效果也产生了限制。

BiGAN(2017)提出一年后,BigGAN(2018)出现了,利用一些方法很好地完成了大规模 GAN 的训练,并且生成了很高质量的图片。因此,BigGAN 恰好解决了 BiGAN 提出时 G 的效果不佳的问题,BigBiGAN 也就应运而生了。

2.BiGAN

因为 BigBiGAN 主要是在 BiGAN 的基础上进行改进的,所以本文的第二部分将对 BiGAN 进行简单介绍,以说明如何利用 GAN 进行特征提取。BiGAN 使用对抗的方式联合训练了一个生成网络与一个推断网络。生成网络就是 GAN 中的 G, 将随机潜变量映射到数据空间, 而推理网络 (在 BiGAN 中由 E 充当) 将训练样本从数据空间反映射到潜变量空间。因此, 对抗博弈在 G, E 与 D 之间展开。下图是 BiGAN 的结构:

2QJ3E3m.png!web

从上图可以看出,BiGAN 在 GAN 的基础上加入了一个将数据映射到隐特征空间的 E,同时对 D 做了相应的改进。D 的输入变成了两个数据对(G(z),z)和(x, E(x)),其中 G(z)和 E(x)分别代表 G 和 E 的输出,x 代表原始数据,z 表示随机潜变量。此时 G 与 E 的联合概率可以表示为:

  • 编码器的联合 (概率) 分布 q(x, z)=q(x)q(z|x)

  • 解码器的联合分布 p(x, z)=p(z)p(x|z)

此时 G,E 和 D 的博弈可以理解为——G 和 E 希望能够欺骗 D,让 D 无法分辨这两个数据对的来源。最终的模型希望 x = G(E(x)),z = E(G(z))(双向)。如果 D 认为这个数据对来自 G,则输出 1,若是来自 E,则输出 0。

BiGAN 的目标函数还是采用类似 GAN 的形式

7nMzu2Z.png!web

将上述目标转换成数学公式,V 即被定义为:

iqEBRn6.png!web

这个式子和 GAN 的价值函数的区别仅在于 D(x) 变成了 D(x, Gz(x)), D(G(z)) 变成了 D(Gx(z), z)。[1] 中也对这个目标函数是否能实现 x = G(E(x)),z = E(G(z))做了证明,这一目标的数学含义可以说是两个联合概率相等,即当 BiGAN 的训练完成, 上文提到的两个联合分布(q(x, z) 与 p(x, z))匹配,这也就意味着所有的边缘分布和条件分布都匹配了。比如可以认为条件概率 q(z|x) 匹配了后验概率 p(x|z)。

总之,BiGAN 使得 GAN 具有了学习有意义的特征表示的能力。原始 GAN 中,D 接收样本作为输入, 并将其习得的中间表示作为相关任务的特征表示, 没有其他的机制。它对于生成数据与真实数据的语义上有意义的特征并不十分清晰。当 G 生成了真实数据时,D 只能预测生成数据(图片)的真实性,但是无法学习有意义的中间表示。BiGAN 就是希望让 GAN 能够具备表征学习能力。

3.BigBiGAN

BigBiGAN 在结构上并没有对 BiGAN 做什么改变,原理也基本一致,只是将 D 的结构改进了一下,同时使用了 BigGAN 的生成器和判别器结构(见后文 Ablation Study)以及 BigGAN 的训练方法(如数据截断)。BigBiGAN 的结构如下图所示:

2u6n6nM.png!web

在上图中,图像的左上方的两个 x 是真实数据(图像),左下方的两个 z 是上述数据(图像)的重建。由图可见,D 包括三个部分——F,H,J,其中 F,H 是两个单元项 (unary term,只与 x 或者 z 中的一项有关),F 的作用与普通 GAN 的 D 一样,区分生成的数据与原始数据;H 的作用则是确定 E 提取出的 z 与输入到 G 的 z 是否一样,这两个单元项的加入是为了更好的保证优化过程中向着最优解的方向前进。剩下的 J 的作用则是将 x 与 z 结合在一起。具体的损失函数为:

ABVn2e2.png!web

其中,s_* 是 D 的分数(score),L_D 是 D 的损失,L_{EG} 是 E 和 G 的损失,l_* 是单个样本的损失,E 和 G 参数的优化目标是最小化 L_{EG},而 D 的目标是最小化 L_D。可见与大多数显式重建损失(如 pixel-wise)不同,加入了 E 的重建倾向于保留输入的高级语义,而不是像素这种低级细节,因此 BigBiGAN 的训练更鼓励编码器对高级语义进行建模,而不是低级细节。

4.实验结果

BigBiGAN 为了证明自己所做改进的有效性以及不同结构的效果区别,首先进行了比较全面的 Ablation Study,可以看到结果如下:

nMJNv2e.png!web

本次测试使用了三个标准——IS(Inception Score),FID(Fréchet Inception Distance)和 Cls(Classification accuracy percentage)。对于 base,LR 代表学习速率,ResNet \times N / RevNet \times N 中的 N 代表 N 倍宽度的对应框架;对于 Encoder,A 代表结构(S 代表 ResNet,V 代表 RevNet),D 代表网络的深度,C 代表 Channel Width,R 表示输入图片的分辨率,\eta 表示 learning rate multiplier。图中标蓝的表示基本设置的更改。

同时,为了证明其表征学习能力,文章作者也将 BigBiGAN 的最佳组合(上表中的最后两行)在 ImageNet 上就准确率与最近效果较好的自我监督方法进行了比较。其中 BN+CReLU 是在 AvePool 的结果 a 的基础上,先进行 h = BatchNorm(a) 操作,并将 [ReLU(h), ReLU(-h)] 作为最终特征输出,这种输出方法也叫 CReLU。其中 BatchNorm() 表示无参数 Batch Normalization,所以这个新加的操作并不会增加计算成本;而 CReLU 的加入则让结果变得更加全面,从而获得更好的输出结果。具体结果如下表所示:

umumQn3.png!web

由上表可见,根据 top-1 准确率来看,BigBiGAN 的表征效果是处于领先水平的。但是在 top-5 准确率上,[4] 中与 BigBiGAN 几乎同时提出的模型 Contrastic Predictive Coding(CPC) 要更高一点,这是一种非监督学习方法,感兴趣的读者可以自己去看一下论文。除此之外,作者还在附录里贴了同样框架下监督学习的准确率,如下表所示。由下表可以看出,BigBiGAN 作为一种完全基于 Generative Model 的方法,在准确率上比监督学习的方法还是要差很多的。是否必须要完全基于 Generative Model?未来是否能如同半监督学习一样,结合 Generative Model 与监督学习产出一种新的更高效且准确率也很高的方法?这些都是很值得期待的。

aM3AjyQ.png!web

最后,作者回归 GAN 最原始的任务——图像生成,将其与其他非监督图像生成方法进行了对比。下表中的实验结果是在经过数据增强后的,所以与最开始的表格结果有所出入。第一行中的 SL 表示 single label 方法,产生的是一种单混和标签;而 Clustering 表示标签是由 Clustering 获得的,是一种伪标签。最后,因为在 500K 步后,BigBiGAN High Res + SL 的效果还有提升,所以最后一行也加入了 1M 步后的结果。详细结果见下表。

f6ZzQzE.png!web

可见 BigBiGAN 在图像生成任务上的表现是很好的,IS 和 FID 都比 BigGAN 的各种组合(SL 和 Clustering)要好很多,同时在高分辨率图的生成上(High Res),BigBiGAN 也比当下的最佳组合 BigGAN+Clustering 要好很多(因为这两种组合中 E 的输出都是一样的 128*128,所以还是有可比性的)。

5.总结

BigBiGAN 结合了当前在 GAN 领域的最新技术,也提出了自己的改进(D 结构的优化等),从而在 GAN 领域独领风骚,也在特征提取方面跻身前列。但是未来是否会有更大的进步,让我们拭目以待吧。

[1] Jeff Donahue, Philipp Krähenbühl, and Trevor Darrell. Adversarial feature learning. CoRR, abs/1605.09782, 2016.

[2] Jeff Donahue and Karen Simonyan. Large scale adversarial representation learning. CoRR, abs/1809.11096, 2019.

[3] Andrew Brock, Jeff Donahue, and Karen Simonyan. Large scale GAN training for high fidelity natural image synthesis. CoRR, abs/1809.11096, 2018.

[4] Olivier J. Hénaff, Ali Razavi, Carl Doersch, S. M. Ali Eslami, and Aäron van den Oord. Data-efficient image recognition with contrastive predictive coding. In arXiv:1905.09272, 2019.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK