Unsupervised Image Captioning
时间:2019 CVPR
Tencent AI Lab
Intro
普遍的Image caption方法使用的是成对的数据,本文率先采用了无监督模式训练image caption模型,使用的数据不包括任何image-sentence pair
本文的贡献主要有以下四点:
- 率先使用了无监督方法来进行image caption
- 提出了三个训练image captioning model的目标
- 提出了在无标签数据上的初始化pipeline
- 在网上爬取了2百万个句子,最终的生成结果效果很好
Approach
无监督方法需要图片集合 I \mathcal{I} I,句子集合 S \mathcal{S} S以及一个视觉概念检测器
The Model
模型整体如图所示
整个模型包括一个image encoder,sentence generator和一个sentence discriminator组成
Encoder,首先,CNN将图片进行encode
Generator,LSTM作为g
enerator,将图片表示decode为caption
Discriminator,discriminator也由LSTM构成,它用来区分真实的和生成的句子
其中
q
t
q_t
qt表示根据前
t
t
t个词,discriminator判断它为真实句子的概率
Training
Adversarial Caption Generation
我们通过reward来引导generator的学习,第
t
t
t个词的reward为
通过最大化reward,generator便可以学到如何生成句子,相应的对抗损失定义为:
其中
q
t
^
\hat{q_t}
qt^是真实句子的概率输出值,真实句子长度为
l
l
l
Visual Concept Distillation
reward仅仅让模型按照语法规则生成句子,但可能与图片无关,为了让二者相关,captioning model必须学会识别图片中的visual concepts,然后将它和生成的句子融合在一起,对于一张图片
I
I
I,visual concept detector输出一系列的concepts以及置信度:
C
=
(
c
1
,
v
1
)
,
.
.
.
,
(
c
N
c
,
v
N
c
)
\mathcal{C}={(c_1,v_1),...,(c_{N_c},v_{N_c})}
C=(c1,v1),...,(cNc,vNc),其中
c
c
c是检测到的concept,
N
c
N_c
Nc是总共的concept数量,赋予第t个生成词的concept reward为:
Bi-directional Image -Sentence Reconstruction
有了adversarial training和concept reward,captioning的质量就被visual concept detector决定了,因为它是图片和caption连接的唯一桥梁,为了使模型生成语义上更加丰富的句子,我们将图片和句子映射到了同一个隐藏空间中,使得它们可以用来相互重构,最后生成的caption会与图片在语义上一致
Image Reconstruction
generator根据图片生成一个句子,这个句子包括了图片的大意,因此,我们可以从句子中重建图片,这促使句子和图片的语义信息更一致,然而重建一张包括多个物体的图片是非常困难的,因此我们仅仅重建图片特征,而非整张图片,如上图中(a)所示,discriminator可以视作sentence encoder,discriminator的最后有一个全连接层,它将隐藏状态
h
n
d
h^d_n
hnd投影到句子和图片公共的隐藏空间中:
其中,
x
′
x'
x′可以视作从生成的句子中重建的图像特征,因此,定义重建误差为
因此image reconstruction reward可以定义为
sentence reconstruction
如上图(b)所示,discriminator可以将一个句子编码并映射到隐藏空间中,然后generator重建句子,这个过程除了在隐藏空间中对其句子和图片外,还能学习到如何从图片的特征中解码得到句子,目标函数如下
Integration
我们的模型综合考虑上述的三个目标,对于generator,因为word sampling是不可微的,我们使用策略梯度方法,通过joint reward来估计梯度,除了策略梯度外,句子重建误差也提供了梯度,这两个梯度一起更新generator,对于discriminator,则使用对抗误差和图像重建误差的梯度更新
初始化
即便规定了目标,我们的模型也很难从头训练,因此我们提出了一个初始化的pipeline来预训练generator和discriminator
考虑generator,我们想为每幅图片生成一个伪caption来初始化image captioning model。
第一步,我们先建立一个concept字典,其中包括OpenImage dataset中的所有目标类;
第二步,我们使用sentence corpus训练一个concept-to-sentence(con2sen)的模型,给定一个sentence,我使用一个一层的LSTM来编码concept words到sentence中以得到一个特征向量,然后使用另一个一层的LSTM decoder来decode这个特征得到一整句话;
第三步,我们使用已有的concept detector来检测每幅图片包括的concept,利用检测到的concept和concept-to-sentence模型,我们可以为每幅图片生成一个伪caption;
第四步,我们使用这些pseudo image caption pair训练一个generator.
考虑discriminator,参数通过训练一个对抗句子生成模型来初始化
实验结果
结论
本文首创地提出了无监督的image caption训练模式,通过鼓励模型生成与corpse中相似的句子,并引入从图像中检测到的物体的信息,加上在隐藏空间中图像和句子的特征对齐实现。