AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks
利用带有注意力机制的对抗性生成网络进行细粒度文本-图像生成
题目翻译不太好,将就看,知道意思就行。
本文的主要思想是:通过引入注意生成网络,AttnGAN可以关注自然语言描述中的相关单词来合成图像不同区域的细粒度细节。此外,该文提出了一种深度注意多模态相似模型来计算细粒度图像–文本匹配损失,用于生成器的训练。
该模型包括两个部分:
1、注意力生成网络(Attentional Generative Network),该网络的注意力机制自动让生成器通过聚集与所绘制的图像子区域最相关的单词来绘制图像的不同子区域。该模型不单单将自然语言编码为一个全局的句子变量,而且句子中的每一个单词也被编码为单词向量。开始阶段,该网络利用全局句子向量生成一个低分辨率的图像。接下来,该网络利用每个子区域中的图像向量和利用注意层形成的单词语境向量来查询单词向量,然后将区域图像向量和相应的单词语境向量结合形成多模态语境向量。在此基础上,模型会在周围的子区域中生成新的图像特征
2、深度注意多模态相似模型(Deep Attentional Multimodal Similarity Model),通过注意力机制,MAMSM能够使用全局句子级信息和细粒度单词级信息来计算生成的图像和句子之间的相似度。另外,该模型可以通过计算细粒度图像文本的匹配损失来训练生成器。
模型整体结构:
&emsp接下来我们根据这篇论文大致看一看AttnGan的实现原理。
带有注意力机制的对抗性生成网络(AttnGAN)
多阶段图片生成过程
- 文本经过编码器(Text Encoder)得到句子特征(sentence feature)和单词特征(word features)
- 句子特征和噪声图作为输入生成一个低分辨率图像
- 基于低分辨率图像,加入单词特征和句子特征生成更高分辨率的图像
1、带有注意力机制的生成网络(Attentional Generative Network)
1) 第一阶段
h
0
=
F
0
(
z
,
F
c
a
(
e
ˉ
)
)
h_0=F_0(z,F^{ca}(\bar{e}))
h0=F0(z,Fca(eˉ))
z表示噪声的输入,服从标准正态分布;
e
ˉ
\bar{e}
eˉ表示全局句子向量;
h
0
h_0
h0是隐藏状态;
F
c
a
F^{ca}
Fca表示条件增强函数;基于
h
0
h_0
h0我们可以生成第一个阶段的图片
x
0
x_0
x0。
x
0
=
G
0
(
h
0
)
x_0=G_0(h_0)
x0=G0(h0)
其中
G
0
G_0
G0是生成器;
x
0
x_0
x0为得到的一个低分辨率图像。
2) 后续阶段
为了减少损失的细节,在每个阶段结合注意力和GAN,进行迭代来精细化图片。
x
i
=
G
i
(
h
i
)
x_i=G_i(h_i)
xi=Gi(hi)
z被代替为
h
i
−
1
h_{i-1}
hi−1;e是单词向量矩阵;
F
i
a
t
t
n
F_i^{attn}
Fiattn是第k阶段的注意力模型,该模型有两个输入:单词特征e和前一个隐藏层里的图像特征
h
i
−
1
h_{i-1}
hi−1。
第j个子区域的单词语境向量是与
h
j
h_j
hj相关的单词向量的动态展示:
c
j
=
∑
i
=
0
T
−
1
β
j
,
i
e
i
′
c_j=\sum_{i=0}^{T-1}\beta_{j,i}e_i^\prime
cj=i=0∑T−1βj,iei′
β
j
,
i
=
e
x
p
(
s
j
,
i
′
)
∑
k
=
0
T
−
1
e
x
p
(
e
j
,
k
′
)
\beta{j,i}=\frac{exp(s_{j,i}^\prime)}{\sum_{k=0}^{T-1}{exp(e_{j,k}^\prime)}}
βj,i=∑k=0T−1exp(ej,k′)exp(sj,i′)
s
j
,
i
′
=
h
j
T
e
i
′
s_{j,i}^\prime=h_j^Te_i^\prime
sj,i′=hjTei′
β
j
,
i
\beta_{j,i}
βj,i表示模型产生第j个子区域时侧重于第i个单词的权重。最后,图像特征和相应的单词语境特征被组合用来下一阶段的图像生成。
为了在多层次的条件下生成高分辨率的图像,带有注意力机制的生成网络的目标函数被定义为:
L
=
L
G
+
λ
L
D
A
M
S
M
L=L_G+\lambda L_{DAMSM}
L=LG+λLDAMSM
L
G
=
∑
i
=
0
m
−
1
L
G
i
L_G=\sum_{i=0}^{m-1}LG_i
LG=i=0∑m−1LGi
λ
\lambda
λ是平衡这两个加数的超参数。
L
G
L_G
LG是共同近似条件分布和无条件分布的GAN损失。在AttnGAN的第i步,生成器
G
i
G_i
Gi有一个一致性鉴别器
D
i
D_i
Di,
G
i
\ G_i
Gi的对抗损失被定义为:
L
G
i
=
−
1
2
E
x
^
i
∼
p
G
i
[
l
o
g
D
i
(
x
i
)
]
−
1
2
E
x
i
∼
p
G
i
[
l
o
g
D
i
(
x
^
i
,
e
)
]
L_{G_i}=-\frac{1}{2}E_{{\hat{x}}_i\sim\\p}G_i[logD_i(x_i)] -\frac12E_{xi\sim\\p}G_i[logD_i(\hat{x}_i,e)]
LGi=−21Ex^i∼pGi[logDi(xi)]−21Exi∼pGi[logDi(x^i,e)]
其中前一项表示无条件损失,它决定了图像是真还是假;后一项是条件损失,它决定图像和这个句子是否匹配。
与
G
i
G_i
Gi的训练交替,每个鉴别器
D
i
D_i
Di通过最小化交叉熵损失将输入分类为真或假。交叉熵损失定义为:
L
D
i
=
−
1
2
E
x
i
∼
p
d
a
t
a
i
[
log
D
i
(
x
i
)
]
−
1
2
E
x
^
i
∼
p
G
i
[
l
o
g
(
1
−
D
i
(
x
i
)
]
−
1
2
E
x
i
∼
p
d
a
t
a
i
[
log
D
i
(
x
i
,
e
ˉ
)
]
−
1
2
E
x
^
i
∼
p
G
i
[
l
o
g
(
1
−
D
i
(
x
i
,
e
)
]
L_{D_i}=-\frac{1}{2}E_{x_i\sim\\p{\rm data}_i}[\log{D_i(x_i)}] -\frac12E_{\hat{x}_i\sim\\pG_i}[log(1-D_i(x_i)] -\frac{1}{2}E_{x_i\sim\\p{\rm data}_i}[\log{D_i(x_i,\bar{e})}] -\frac12E{\hat{x}_i\sim\\pG_i}[log(1-Di(x_i,e)]
LDi=−21Exi∼pdatai[logDi(xi)]−21Ex^i∼pGi[log(1−Di(xi)]−21Exi∼pdatai[logDi(xi,eˉ)]−21Ex^i∼pGi[log(1−Di(xi,e)]
x
i
x_i
xi来自第i个规模的真图像分布
p
d
a
t
a
i
p{\rm data}_i
pdatai;
x
^
i
{\hat{x}}_i
x^i来自相同规模的模型分布
p
G
i
pG_i
pGi。
AttnGAN的鉴别器都是独立的,所以它们可以同时被训练,并且每个鉴别器聚焦于一个单独的图像规模。
2、 深度注意多模态相似模型(Deep Attentional Multimodal Similarity Model)
MAMSM学习两个神经网络,图像的子区域和句子中的单词映射到一个共同的语义空间,进而计算图像生成的细粒度损失,从而在单词级度量图像文本的相似性。
1) 文本编码器
文本编码器是一种从文本描述中提取语义向量的双向长短期记忆器(LSTM)。在双向LSTM中,每个单词对应两个隐藏的状态,每个方向对应于一个隐藏的状态。因此,我们把它的两个隐藏状态结合起来来表示一个单词的语义。所有单词的特征矩阵由e表示,e中每一列为第i个单词的特征向量。同时,将双向LSTM的最后隐藏状态串联为全局句子向量,用 e ˉ \bar{e} eˉ表示。
2) 图像编码器
图像编码器是一种将图像映射到语义向量的卷积神经网络。CNN的中间层学习图像不同子区域的局部特征,而后层学习图像的全部特征。更具体的,图像编码器是基于在ImageNet上预先训练的inception-v3模型构建的,我们首先将输入的图像调整为299*299像素。然后,我们从inception-v3的“混合6e”层中提取局部特征矩阵f,f的每一列都是图像子区域的特征向量。同时,从inception-v3的最后一个平均池层中提取全局特征向量
f
ˉ
\bar{f}
fˉ,最后,通过增加感知器层,将图像特征转化为文本特征的公共语义空间。
v
=
W
f
v=Wf
v=Wf
v
ˉ
=
W
ˉ
f
ˉ
\bar{v}=\bar{W}\bar{f}
vˉ=Wˉfˉ
v的第i列v_i是图像第i个子区域的视觉特征向量,
v
ˉ
\bar{v}
vˉ是整个图像的全局向量。
为了提高效率,从inception-v3模型构建的层中的所有参数都是固定的,新添加层中的参数与网络的其余部分共同学习。
3) 注意力驱动的图像文本匹配分数
该分数是用来度量图像文本之间匹配程度,首先计算所有可能的句子中的单词与图像子区域的匹配的相似度矩阵
s
=
e
T
v
s=e^Tv
s=eTv
s
i
,
j
s_{i,j}
si,j是句子中第i个单词和第j个子区域的点积,它可以标准化相似矩阵:
s
ˉ
i
,
j
=
e
x
p
(
s
i
,
j
)
∑
k
=
0
T
−
1
e
x
p
(
s
k
,
j
)
{\bar{s}}_{i,j}=\frac{exp(s_{i,j})}{\sum_{k=0}^{T-1}{exp(s_{k,j})}}
sˉi,j=∑k=0T−1exp(sk,j)exp(si,j)
然后,建立一个注意模型来计算每个单词的区域语境向量。区域语境向量c_i是图像子区域与句子中的第i个单词相关的动态表示,它是所有区域视觉向量的加权和:
c
j
=
∑
j
=
0
288
α
j
μ
j
c_{j}=\sum_{j=0}^{288}\alpha_j\mu_j
cj=j=0∑288αjμj
a
j
=
e
x
p
(
γ
1
s
ˉ
i
,
j
)
∑
k
=
0
288
e
x
p
(
γ
1
s
ˉ
i
,
k
)
a_j=\frac{exp(\gamma_1{\bar{s}}_{i,j})}{\sum_{k=0}^{288}{exp(\gamma_1{\bar{s}}_{i,k})}}
aj=∑k=0288exp(γ1sˉi,k)exp(γ1sˉi,j)
γ
1
\gamma_1
γ1是参数,决定当计算一个单词的区域语境向量是多少注意力关注相关子域的特征。
最后,我们用
c
i
c_i
ci和
e
i
e_i
ei的余弦定义第i个单词和图像的相关度:
R
(
c
i
,
e
i
)
=
c
i
T
e
i
∣
∣
c
i
∣
∣
∣
∣
e
i
∣
∣
R_{(ci,ei)}=\frac{c_i^Te_i}{||ci|| ||ei||}
R(ci,ei)=∣∣ci∣∣∣∣ei∣∣ciTei
受语音识别中最小分类误差公式的启发,注意力驱动的图像文本匹配分数(整体图像Q和整个文本描述D)定义为:
R
(
Q
,
D
)
=
l
o
g
(
∑
i
=
1
T
−
1
e
x
p
(
γ
2
R
(
c
i
,
e
i
)
)
)
1
γ
2
R(Q,D)=log{(\sum_{i=1}^{T-1}{exp(\gamma_2R(c_i,e_i))})}^\frac{1}{\gamma_2}
R(Q,D)=log(i=1∑T−1exp(γ2R(ci,ei)))γ21
γ
2
\gamma_2
γ2是参数,决定了扩大多少最相关子域的重要性,当
γ
2
\gamma_2
γ2趋于无穷大时,R(Q,D)约等于
m
a
x
i
=
1
T
−
1
R
(
c
i
,
e
i
)
{max}_{i=1}^{T-1}R(c_i,e_i)
maxi=1T−1R(ci,ei)。
4)DAMSM损失
KAMSM旨在以半监督的方式学习注意力模型,其中唯一的监督是整个图像与整个句子之间的匹配。对于一些图像句子匹配
(
Q
i
,
D
i
)
i
=
1
M
{(Q_i,D_i)}_{i=1}^M
(Qi,Di)i=1M,可以计算
D
i
D_i
Di关于图像
Q
i
Q_i
Qi的后验概率:
P
(
D
i
∣
Q
i
)
=
e
x
p
(
γ
3
R
(
Q
i
,
D
i
)
)
∑
j
=
1
M
e
x
p
(
Q
i
,
D
j
)
P(D_i|Q_i)=\frac{exp(\gamma_3R(Q_i,D_i))}{\sum_{j=1}^{M}{exp(Q_i,D_j)}}
P(Di∣Qi)=∑j=1Mexp(Qi,Dj)exp(γ3R(Qi,Di))
γ
3
\gamma_3
γ3是平滑参数,由实验确定。在这些句子中,只有
D
i
D_i
Di与图像
Q
i
Q_i
Qi匹配,将所有其他M-1个句子视为不匹配的描述。我们将损失函数定义为图像预期对应的文本描述匹配的负对数后验概率:
L
1
w
=
−
∑
i
=
1
M
l
o
g
P
(
D
i
∣
Q
i
)
L_1^w=-\sum_{i=1}^{M}{logP(D_i|Q_i)}
L1w=−i=1∑MlogP(Di∣Qi)
w代表单词,同理我们也最小化:
L
2
w
=
−
∑
i
=
1
M
l
o
g
P
(
Q
i
∣
D
i
)
L_2^w=-\sum_{i=1}^{M}{logP(Q_i|D_i)}
L2w=−i=1∑MlogP(Qi∣Di)
P
(
Q
i
∣
D
i
)
=
e
x
p
(
γ
3
R
(
Q
i
,
D
i
)
)
∑
j
=
1
M
e
x
p
(
γ
3
(
Q
i
,
D
j
)
)
P(Q_i|D_i)=\frac{exp(\gamma_3R(Q_i,D_i))}{\sum_{j=1}^{M}{exp(\gamma_3(Q_i,D_j))}}
P(Qi∣Di)=∑j=1Mexp(γ3(Qi,Dj))exp(γ3R(Qi,Di))
是句子
D
i
D_i
Di与它相关的图像
Q
i
Q_i
Qi匹配的后验概率,我们可以利用句子向量
e
ˉ
\bar{e}
eˉ和全局图像向量
v
ˉ
\bar{v}
vˉ得到损失函数
L
1
s
L_1^s
L1s和
L
2
s
L_2^s
L2s。
最后,MAMSM损失定义为:
L
D
A
M
S
M
=
L
1
w
+
L
2
w
+
L
1
s
+
L
2
s
L_{DAMSM}=L_1^w+L_2^w+L_1^s+L_2^s
LDAMSM=L1w+L2w+L1s+L2s
L
D
A
M
S
M
L_{DAMSM}
LDAMSM仅仅用于最后一个生成器
G
i
G_i
Gi的输出部分。