Self-Attention Generative Adversarial Networks

Self-Attention Generative Adversarial Networks

Han Zhang(Rutgers University), Ian Goodfellow(Google Brain), Dimitris Metaxas(Rutgers University),Augustus Odena(Google Brain)

引言

任务:图像生成/图像合成
问题:传统方法在低分辨率特征图上生成空间局部点,而SAGAN(Carl Sagan?)利用所有位置的特征线索生成细节;判别器可以判断高度细节化的特征之间的兼容性;对生成器进行谱范数归一化有利于训练
attention-driven, long range dependency modeling

问题

利用GAN进行图像合成,对于含有较少结构约束的类别(比如海洋、天空和地面等重纹理不重结构的)比较成功,而对于含有几何或结构模式的则容易失败,比如合成的狗的图像具有真实的毛但是很难认出脚。
可能的原因:CNN的卷积层具有感受野,因此利用CNN建模必须具有足够的深度才能在较大空间范围内建立图像不同区域的相关性,但这会导致更大的计算代价。
因此本文提出Self-attention GAN以平衡long range dependency modeling和计算代价的问题。

原理

attention捕捉全局相关性
self-attention/intra-attention: 通过attend同一序列内的所有位置,计算序列中下一位置的相应。已经被用在机器翻译、图像生成和视频的时空相关性建模中,但和GAN结合的还没有人尝试过
基于视频时空建模的non-local model
计算各位置特征的加权和作为响应,而权重即attention map的计算代价是较小的
具体过程如下
Self-Attention Generative Adversarial Networks_第1张图片
对于每一层的特征 xRC×N x ∈ R C × N ,首先计算特征 f=Wfx,g=Wgx,h=Whx,Wf,WgRC¯×C,WhRC×C f = W f x , g = W g x , h = W h x , W f , W g ∈ R C ¯ × C , W h ∈ R C × C ,从而得到attention map

β=softmax(fTg,axis=0)RN×N β = s o f t m a x ( f T g , a x i s = 0 ) ∈ R N × N

其中 βi,j β i , j 表示在合成第 j j 个区域时对第 i i 个区域进行attend的程度。于是attention层的输出
o=hβRC×N o = h β ∈ R C × N

最终这一层的输出还要进行scale,并加上该层的输入
y=γo+x y = γ o + x

上述操作对生成器和判别器都进行

稳定训练

spectral nomalization
对生成器和判别器的权重进行谱范数( L2 L 2 范数)归一化
不要求额外的调参;计算代价相对较小;避免参数幅度的扩大和无效的梯度反传;显著降低训练代价,同时更稳定
TTUR(two-timescale update rule)
判别器正则化要求每次生成器训练,判别器要训练多次,这样训练较慢。TTUR则对生成器和判别器使用不同的学习率,弥补判别器正则化带来的训练速度降低的问题

结果

评价指标

IS(Inception Score): 条件类分布和边缘类分布之间的KL散度,越高表明图像质量越好;有严重的局限性,目的是为了确保生成的样本能以高置信度被识别为某一类别,并不强调细节的真实性或类内差异,计算该指标仅仅是为了与别人的工作进行比较。
FID(Frechet Inception distance): 计算某一Inception-v3模型下特征空间内生成图像和真实图像的Wasserstein-2距离;更有原理和易于理解,与人评价生成图像真实性的标准更一致。FID越小表示分布越接近。

实验

谱范数归一化(SN)和TTUR的有效性验证

self-attention机制有效性验证

作为卷积的,建模图像区域间的long range, multi-level dependency。生成器生成的图像在不同区域间的细节具有相关性,而判别器学习到图像的结构约束

可视化

结论

你可能感兴趣的:(deep,learning)