摘要
本文借助transformer思想,提出了一个双向结构。将GAN网络生成的图像的信息和隐藏变量的信息来回传递,鼓励双方从对方那学到知识,让场景和物体能组合出现。
以上基本为原文摘要的机翻。说人话就是将StyleGAN推广(作者原话),加上了transformer。StyleGAN的信息只从隐藏空间流向图片,而本文借助transformer让信息反向传递,提高隐藏变量的解耦性和质量。隐藏变量反过来影响生成的图像,让其质量更高。
方法
是的,你没有看错,整个网络的架构就这么简单。我当时看到原文人都傻了(我是他左桌,我也看傻了)(☚MDZZ),第一次在近两年顶会看到如此简单简单明了的架构。整个文章重点就是在attention部分,作者先提出了一个比较传统的单向结构,然后改进出了双向结构。
单向架构
在单向架构中,注意力计算公式为
为最终求出的注意力,X尺寸为n*d,其中n等于H*W,即图像的每个通道被拉成了一维向量,Y尺寸为m*d
q(),k(),v()将X和Y分别映射到QKV,尺寸均为d*d,因此X和Y经过映射后尺度不改变。对于Q和K,还输入了位置编码(positional encoding),辅助模型确定图像中每个元素的位置。简单的推导后可知,尺寸为n*d
得到后,就要将注意力信息传回X。传统的方法是直接让X和注意力相加然后进行归一化操作
本文则推广StyleGAN的方法,提出了如下公式:
其中,和均为n*n的变量,,最终求得的的尺寸依然为n*d,这便是新的X。而因为是单向结构,所以Y无任何变化。
双向结构
在单向结构基础上,作者考虑调整Y。作者原文写到,好像Y存储了两个变量,实际上Y只存储了V,即value,K是通过计算得到的。接着,作者提出了一个新的更新规则:
最终,每次在注意力模块中,程序先执行,再执行,来更新两个变量,达到同时获得自顶向下和自底向上的信息的效果。
整体工作
介绍完双向结构,就要接着介绍如何把这个结构放到StyleGAN中去了,在其他GAN网络一般直接根据一个随机变量z生成图像,而StyleGAN中,先用一堆全卷积堆起来的网络将z解码为w,然后w利用AdaIN模块,参与合成网络(synthesis network)中的每一层卷积后的图像的修改。
但因为w要管理每一层的风格,解耦性和灵活性依然受限,因此本文将z分为k份{z1,z2...zk},再将这k份变量分别输入同一个解耦网络,得到k个w向量,作为Y。之后,在每一层卷积后,将得到的图片X和变量Yi输入注意力模块中。至于每次卷积后要将这对变量进行几次transformer处理,作者并未具体明说。
实验结果
本文比较了模型的训练速度,图像生成的质量和解缠性等属性,在消融实验中探讨了transformer轮数对模型性能的影响。
上图显示,随着训练次数增多或数据规模增大,本文网络的FID分数总是最低的,说明同样的训练规模,本文模型能取得更好的效果。
最后这个表的指标是通过A framework for the quantitative evaluation of disentangled representations一文提出的DCI指标衡量的,最后那个信息性为啥加了个单引号就变成了另一个指标我也不懂,哪天我看了原文来补上。
消融实验
这里比较了第一次使用注意力模块层数和最后一次用注意力模块的层数。可以看出本文注意力模块十分有效,基本上越多越好,而且不能太晚才使用,在使用相同数量的情况下,越早使用越好。