卷积神经网络(CNN),作为许多计算机视觉任务的主力,包括DCGAN这类早期的GAN,擅长捕捉局部空间层次。卷积核对输入特征图的局部小块进行操作,逐层构建更复杂的特征。然而,当生成图像需要理解场景中远距离部分之间的关系时,这种局部性可能是一个局限。例如,正确生成大型物体的纹理或确保人脸左右两侧的一致性,需要对图像大范围内的关联进行建模。标准卷积难以有效捕获这些长距离关联;信息需要通过多层传播,可能被稀释或扭曲。
为了解决这个局限,研究人员调整了自注意力的思路,这种思路最初是为机器翻译等序列建模任务开发的,现在用于GAN架构中。其主要目的是使网络能够直接对特征图中任意位置(不论空间距离多远)之间的关系进行建模。
自注意力在GAN中的运作方式
在GAN中图像生成的背景下,自注意力层接收前一层的特征图(例如,卷积层)作为输入。对于该输入图中的每个位置(像素或特征向量),自注意力机制计算一个“注意力图”,该图显示了在计算当前位置的输出特征时,应将多少关注放在所有其他位置上。
对于特征图中的特定位置 i,网络计算:
- 查询 (Query): 当前位置 i 的表示,询问“我在寻找什么?”。
- 键 (Keys): 所有其他位置 j 的表示,表示“我拥有什么信息?”。
- 值 (Values): 所有其他位置 j 的表示,表示“如果被关注,我应该提供什么信息?”。
位置 i 和位置 j 之间的注意力权重通常根据位置 i 的查询和位置 j 的键之间的相似度(常使用点积)计算。这些权重随后在所有位置 j 上进行归一化(通常使用 softmax)。位置 i 的最终输出特征是所有位置 j 的值的加权和,其中权重是计算出的注意力分数。
从数学上看,如果 x∈RC×N 是输入特征图(其中 C 是通道数,N=H×W 是空间位置的数量),则位置 i 的自注意力输出 oi 可以表示为:
yi=j∑αij(Wvxj)
αij=softmaxj(eij)
eij=dk(Wqxi)T(Wkxj)
这里:
- xi,xj 是位置 i 和 j 的输入特征向量。
- Wq,Wk,Wv 是学习到的权重矩阵,分别将输入特征转换为查询、键和值。
- dk 是向量的维度,用于缩放。
- eij 代表位置 i 和 j 之间的注意力能量或分数。
- αij 是归一化的注意力权重,显示了位置 j 对位置 i 的影响程度。
- yi 是位置 i 的输出特征向量,通过转换值的加权和计算得到。
自注意力层的最终输出 o 通常与原始输入特征图 x 结合,通常使用一个学习到的缩放参数 γ:
oi=γyi+xi
这种残差连接有助于训练过程的平稳进行,并允许网络在注意力机制无益时轻松跳过它。
自注意力机制中,单个输出位置的信息流,由所有输入位置生成。
在GAN中的应用 (SAGAN)
自注意力生成对抗网络(SAGAN)论文展示了将这些层集成到生成器和判别器中的有效性。
- 在生成器中: 自注意力有助于合成具有更好全局一致性的图像。例如,它可以确保应用于大型物体的纹理在其整个表面上保持一致,或者生成人脸中的眼睛等特征能够相互正确对齐,即使它们在像素空间中相距较远。
- 在判别器中: 自注意力使判别器在判断图像真伪时,能够检查图像更大范围内的结构一致性。它可以验证真实图像中应存在的长距离关联,但这些关联可能在生成的图像中缺失。
通常,由于计算成本,自注意力层不会在整个网络中使用。它们通常策略性地放置在生成器较后层(处理更大的特征图)和判别器较早层(特征图仍相对较大)中。
优势与考量
集成自注意力已显示出显著的改进:
- 图像质量提升: 像SAGAN和BigGAN这样高度依赖自注意力的模型,与当时纯卷积架构相比,在Inception Score (IS) 和 Fréchet Inception Distance (FID) 等指标上展现了实质性提升。
- 建模长距离关联: 主要优势在于全局上下文的明确建模,从而生成结构上更连贯、更逼真的图像。
- 训练平稳性: 一些研究表明注意力有助于提升GAN训练过程的平稳性,尽管下一章中讨论的平稳化技术(如谱归一化,常与注意力一同使用)也起着重要作用。
然而,有一个重要的考量:
- 计算成本: 标准自注意力机制的计算复杂度与特征图中空间位置的数量 N(N=H×W)呈二次方关系 (O(N2))。这使得它计算量很大,特别是对于高分辨率特征图。因此,自注意力通常应用于GAN架构中中等大小(例如32x32或64x64)的特征图,而不是全输出分辨率。对更高效注意力近似方法的研究仍在进行中。
自注意力机制代表着一个重要的架构进展,使GAN能够不再局限于局部模式,并捕捉复杂数据集中固有的全局结构,提升了图像生成质量。像BigGAN这样的模型表明,将自注意力与其他技术(如谱归一化和架构调整)结合,可以实现新规模和逼真度的生成。