一个 Transformer,很强;两个,更强?

技术讨论 hello_uncle ⋅ 于 1周前 ⋅ 89 阅读

作者|亓宗帅、江亦凡、梦佳
来源丨智源社区
编辑丨极市平台

TransGAN,顾名思义也就是无需卷积,仅使用Transfomer构建的GAN网络。在上周的青源LIVE报告中,来自德州大学奥斯汀分校的博士生江亦凡探讨了有关TransGAN一些有趣的问题,如基于Transformer的GAN如何在不同的数据集上执行;TransGAN与基于ConvNets的GAN相比有多快;如何将其扩展到更高分辨率的图像生成任务中等。本文记录了作者的成文思路,以飨读者。

首先回顾一下GAN的发展历史。

14年开始发表了生成对抗网络后,围绕GAN的相关工作层出不穷:

15年DCGAN首次将卷积神经网络应用到GAN网络构建当中;

16年WGAN设计了新的损失函数,相比于原始的GAN Loss有更加好的优化效果;

17年SN-GAN利用谱归一化的方法使模型更加稳定,Progressive GAN把生成GAN的生成分辨率提升到了1024 x 1024的级别,同样在17年SA-GAN利用了self-attention module让生成器和判别器可以自动学习图像的全局信息。

之后GAN的发展越来越火爆,18年的BigGAN通过增加模型大小和batch size,使模型 能够在ImageNet上达到优异的效果,StyleGAN把不同维度的元素信息进行融合增加模型性能。AutoGAN用神经网络结构搜索(NAS)的方法搜一个GAN 的网络结构。 

图1 GAN的发展历史

01 下一步GAN将去向何方?

基于对前人工作的分析,作者试图找到一种结构更加新颖,同时能够兼顾效率和生成质量的新方法。 

最早作者注意到了Vision Transformer的工作(图2),这项工作提出了一个非常新的思维方式:「不再把图像作为连续域的信息送入卷积神经网络,而是把Image看成patch的组合,转换成一维结构送入Transformer网络结构」,这项工作中也结合了position encoding、classification token等技巧,作者也在试图严格遵循最原始的Transformer结构。 

图2 Vision Transformer

鉴于Transformer在NLP中已经取得了非常大的成功,研究者们也在试图探索其在更多领域的应用,如Vision Transformer等等。事实上,如果Transformer能够扩展到更多的任务和领域当中,甚至说如果Transformer能作为通用的模型来统一不同的领域,那将会对工业界和学术界影响深远。在这种想法的驱使下,作者主要研究了Transformer能否用来构建GAN网络,且不使用任何其他卷积网络。 

02 TransGAN的主要架构

TransGAN主要架构有两个核心部分:

l Generator,用来生成图像来欺骗Discriminator;

l Discriminator,用来区分真图像和假图像。 

该工作需要分别设计这两个网络,其中最关键的是如何设计一个可用的Generator,在 该项工作出现之前,曾有一些工作尝试把Transformer用低分辨率图像生成上面去(如auto-regression),但这些工作并没有解决GAN的任务,并且往往是在pixel level进行 复杂的计算,消耗巨大的计算资源。相⽐之下,由于GAN的训练不稳定等因素,把 Transformer应⽤在GAN⽹络上更具有挑战性。 

作者的做法是首先从一个很低的Resolution生成图像,图3是TransGAN的主要结构,图3左边Generator中的(8✖ 8)表示把二维像素值压平成了一维的结构作为input,并且不断增大图像的大小,最终得到一个高分辨率的图像。Discriminator的设计沿用了Vision Transformer中将图像Token化的思路,分patch输入到Transformer中去。 

图3 TransGAN

为了验证这种方法的有效性,作者将他们设计的Transformer结构和之前的AutoGAN结 构进行了对比,分别设计了多组不同的实验。图4显示的是不同结构组合的实验结果, 可以看到用Transformer作为l Generator,AutoGAN作为Discriminator取得的效果最佳。

作者猜想,是由于Transformer的self-attention结构导致了图像不同区域之间能够相互作用,从而提升了Generator的效果。如果是单纯想做一个应用,到这里基本可以结束了,但是从研究者的角度,更有意义的事情是用pure transformer来设计GAN网络。从图4的表格第四行中可以看到,简单地使⽤transformer的效果并不好,于是需要进一步探究,是什么导致了这样糟糕的状况? 

图4 评估Transformer结构的有效性

03 Data Augmentation

经过了许多验证,作者第一步探究了Data Augmentation(DA)对效果产生的影响。

作者把DA加在普通的GAN、AutoGAN、StyleGAN、TransGAN上面分别进行了试验, 得到的结果是TransGAN上的提升显著高于另外两个模型结构的提升。为了进一步提升效果,作者提出了一个很有意思的点,叫做Local Initialization For Self-Attention,如图 5所示,作者把当前中心的周围像素进行了不同程度的mask。

这个做法是基于一个很直观的设想,之前的卷积神经网络的感受野很小,增加感受野是一件对卷积神经网络很有意义的事,但是Transformer的self-attention自己本身就有全局感受野,但这恰恰造成了一定的局部信息的丢失,因为生成图像的时候,往往领域的像素是更为重要的。基于这样的想法,作者提出来local initialization来增加self-attention计算过程中对领域像素的权重。

此外,收到BERT等NLP工作的启发,Vision Transformer是否能像BERT受到multi-task pretraining的帮助也值得讨论。由于GAN的训练过程中需要等到生成网络和判别网络的平衡,作者没有直接采用pretraining策略而是还提出了Multi-task Co-Training的训练策略,在训练GAN的同时引入其他自监督的方法(如超分辨率)增加另一个loss进行训练,这帮助了Transformer生成细节更加丰富的图像,使得最终性能得到了一定的提升。

最后,作者将TransGAN的generator在宽度和深度两个维度上进⾏了放⼤,实验结果表 明增加模型⼤⼩同样能显著帮助TransGAN性能提升。 

图5 Local Initialization For Self-Attention

04 几个问题

作者全面审视了这项工作,有几个问题值得探究和回答:

TransGAN可以生成更高分辨率的图像吗?

答案是可以的,作者在论文中生成了最多64✖ 64图像,但事实上我们在进一步试验中发现甚至能够达到256的pixel,代价是会增加一定的显存。

TransGAN的使用过程中有很多的trick吗?

没有,TransGAN的训练方法和基于卷机神经⽹络的GAN训练⽅法⼏乎⼀样,没有特别的trick。

TransGAN存在的意义?

TransGAN在推进transformer成为视觉任务中的通⽤⽹络这⼀进程上迈进了⼀⼤步,启发了研究者们对取代卷机神经⽹络的⼀系列思考,同时将GAN⽹络的图像⽣成质量进⼀步提⾼ 。

大叔

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!