【论文阅读】自我关注的生成对抗网络

Self-Attention Generative Adversarial Networks

论文地址:https://arxiv.org/abs/1805.08318
发表日期:21/5/2018
项目地址: https://github.com/heykeetae/Self-Attention-GAN

简介:在这篇论文中,我们提出了SAGAN,使得注意力驱动、传统的卷积GAN产生高分辨率输出是来自于在低分辨率特征图中空间局部点。在SAGAN中,细节能够通过来自所有的特征位置的线索来产生。 而且,鉴赏器能够检查对应图像相距较远部分而高度相似的特征。并且,最近的工作表明生成器的状况影响GAN的表现。折中考虑,我们应用了谱归一化,并且发现了训练的动态性提高了。结果是,在ImageNet上,我们将Inception score[相关知识见我另一篇文章]从36.8提高到52.52,而Fréchet Inception Distance从27.62降到18.65。对注意层的可视化表明生成器的利用邻区(leverages neighborhoods)符合物体形状而不是固定形状的局部区域。

1.介绍

因为卷积算符有一个局部感受野,大范围的依赖只能在通过几层卷积层之后被处理。这会阻止学习远程依赖(long-range dependencies),原因如下:

  1. 一个小的模型也许不能代表之
  2. 优化算法难以发现一些参数,这些参数需要小心协调多层的来获取这些依赖
  3. 这些参数不能用于不可见的输入特征

增加卷积核的大小能够增加网络的表示容量但是这样做会失去计算效率。自我关注的模型能够对所有位置的全部特征作一个很好的平衡,并且降低计算成本。

【论文阅读】自我关注的生成对抗网络
图 1 :SAGAN通过利用遥远的互补特征来生成图像,图像的一部分而不是固定形状的局部区域以生成一致的对象/场景。在每行中,第一图像显示具有颜色编码点的五个代表性查询位置。该其他五个图像是那些查询位置的关注图,具有相应的颜色编码箭头总结了最受关注的区域。

2.相关工作

【论文阅读】自我关注的生成对抗网络
图 2 :自我关注的机理。\otimes表示矩阵乘法,softmax操作在每一行进行。

3.自我关注的生成对抗网络

卷积操作利用了相邻区域的信息,因此只用卷积层,对于对图片远程依赖,在计算上是不划算的。

来自之前隐藏层xRC×Nx \in\mathbb R^{C\times N}被首先转换为两个特征空间f,gf,g,为了计算关注度,即f(x)=Wfx,g(x)=Wgxf(x)=W_{f}x,g(x)=W_{g}x
(1)βj,i=exp(sij)i=1Nexp(sij),wheresij=f(xi)Tg(xj)\beta_{j,i}=\frac{\exp(s_{ij})}{{\sum_{i=1}^N}\exp(s_{ij})},where\quad s_{ij}= f(x_{i})^Tg(x_{j})\tag{1}
并且βij\beta_{ij}表示当综合第j个区域,对第i个位置的参与程度。然后关注层的输出就是o=(o1,o2,...,oj,...,oN)RC×No=(o_{1},o_{2},...,o_{j},...,o_{N})\in\mathbb R^{C\times N}
oj=i=1Nβj,ih(xi),whereh(xi)=Whxio_{j}=\sum_{i=1}^N\beta_{j,i}h(x_{i}), where\quad h(x_{i})=W_{h}x_{i}
在上述公式中,WgRC×C,WfRC×C,WhRC×CW_{g}\in \mathbb R^{\overline C\times C},W_{f}\in \mathbb R^{\overline C\times C},W_{h}\in \mathbb R^{\overline C\times C} 都是被学习的权重矩阵, 被实现为1 x 1的卷积。我们令 C=C8\overline C = \frac{C}{8}
此外,我们让关注层的输出乘上一个尺寸因子,再加上输入的特征图,最后的输出为:
yi=γoi+xiy_{i}=\gamma o_{i}+x_{i}
γ\gamma被初始化为0。这使得网络开始时能依赖局部邻近特征(因为这会简单些\emoji),之后逐渐扩展到非邻近区域。损失函数为:
LD=E(x,y)pdata[min(0,1+D(x,y))]Ezpz,ypdata[min(0,1D(G(z),y))]LG=Ezpz,ypdata[D(G(z),y)]L_{D}=-\mathbb E_{(x,y)\sim p_{data}}[min(0,-1+D(x,y))]-\mathbb E_{z\sim p_{z},y\sim pdata }[min(0,-1-D(G(z),y))]\\ L_{G}=-\mathbb E_{z\sim p_{z},y\sim pdata }[D(G(z),y)]

4 稳定GAN训练的方法

有两种方法: 1.同时对生成器和鉴赏器进行谱归一化 2. 我们证实两倍规模的更新规则(TTUR)是有效的,我们提议采用这种方法来减慢在正则化鉴赏器中的学习。

4.1 针对生成器和鉴赏器的谱归一化

这样做可以限制鉴赏器的Lipschitz 常数, 通过约束每一层的频谱规范(spectral norm)。与其它的规范法相比,频谱规范化不要求额外的超参数细调。每一次生成器更新对应的鉴赏器更新更少,因此计算成本相对来说较小。

4.2 针对生成器和鉴赏器不平衡的学习率

实践上,使用归一化鉴赏器通常需要增加鉴赏器更新频率(例如,5倍)对于每个生擦更新频率。TTUR很好的解决了这个问题。

5.实验

测试集:LSVRC2012

评价标准

主要的评价标准有:Inception Score(IS)、Mode Score、Kernel MMD、Wasserstein 距离、Fréchet Inception Distance(FID)、1-NN 分类器。(参考https://arxiv.org/abs/1806.07755,项目地址:https://github.com/xuqiantong/GAN-Metrics)
这篇文章主要采用IS和FID。

1. IS

IS(Pg)=eExPg[KL(pM(yx)pM(y))]IS(\mathbb P_{g})=e^{\mathbb E_{x\sim \mathbb P_{g}}[KL(p_{M}(y|x)||p_{M}(y))]}
其中 pM(yx)p_M(y|x) 表示由模型 M 在给定样本 x 下预测的标签分布
pM(y)=xpM(yx)dPgp_{M}(y)=\int_{x}p_{M}(y|x)d\mathbb P_{g}
即边缘分布 pM(yx)p_M(y|x) 在概率度量 PgP_g 上的积分(看不懂的朋友可以回顾一下概率论)。
KL(PQ)=xXP(x)logP(x)Q(x)KL(P||Q)=\sum_{x\in X}P(x)\log \frac{P(x)}{Q(x)}

2.FID

FID(Pr,Pg)=μrμg+Tr(Cr+Cg2(CrCg)1/2)FID(\mathbb P_{r},\mathbb P_{g})=||\mu_{r}-\mu_{g}||+Tr(C_{r}+C_{g}-2(C_{r}C_{g})^{1/2})
|| · ||是范数,Tr表示矩阵的迹。r表示真实分布,g表示生成器分布。对于适当的特征函数φ(默认为 Inception 网络的卷积特征),FID 将 φ(Pr)φ(P_r)φ(Pg)φ(P_g) 建模为高斯随机变量,且其样本均值为 µrµ_rµgµ_g、样本协方差为 CrC_rCgC_g

网络架构和实现细节

所有的SAGAN被设计为生成128*128图片。一些策略包括,生成器和鉴赏器都使用频谱归一化,有条件的批归一化,Adam优化器。(β0=0,β1=0.9\beta _{0 }=0,\beta_{1}=0.9)。学习率方面,鉴赏器学习率是1e-4,生成器学习率是1e-4。

【论文阅读】自我关注的生成对抗网络
图 3:训练曲线。所有的模型对于G和D网络更新速度相同。
SN表示频谱归一化。可以看出随着训练进行,IS越来越大,而FID越来越小。

表 1:自我关注和残差块比较
【论文阅读】自我关注的生成对抗网络

【论文阅读】自我关注的生成对抗网络
图4 :生成的图片

可以看出FID较小的图片更有以假乱真的“潜力”。

【论文阅读】自我关注的生成对抗网络
图 5:关注图的可视化表示。我们发现,网络学习根据色彩和纹理来分配关注力,而不是只是根据空间连接性。例如上面左上角那张图,红色的点涉及到鸟的身体部位,然而,绿色的点向图片其它地方发展。这样的话,图片就会有一致的背景。相似地,蓝色的点分配注意力到鸟的整个尾巴,来增加图片相关性。

与state-of-the-art比较

只列举一小部分,全部图片可以看原始论文。
【论文阅读】自我关注的生成对抗网络
【论文阅读】自我关注的生成对抗网络