作者丨郑逸
学校丨复旦大学媒体计算实验室
研究方向丨Image Caption
知乎丨https://zhihu.com/people/zheng-yi-49-69/
Image Caption 任务是一个需要综合计算机视觉和自然语言处理的任务,需要使用计算机建立某种映射方式,将处于视觉模态当中的数据映射到文本模态当中。
总的来说,这样的映射任务需要如下两个基本需求:1)语法的正确性,映射的过程当中需要遵循自然语言的语法,使得结果具有可读性;2)描述的丰富程度,生成的描述需要能够准确描述对应图片的细节,产生足够复杂的描述。
然而目前应用最广泛的“编码器-解码器”模型使用交叉熵作为损失函数训练参数,这种方法带来的弊端在于,模型会趋向于生成更加“安全”的语句描述,在两幅场景相似但细节不同的图像上,模型会趋向于给出一个更宽泛的描述,忽视了图像的具体细节。
▲ 图1
如图 1 所示,在两幅图像内容相似、但整体环境存在明显差异的情况下,人在描述的过程中能够凭直觉注意到这两幅图像的相似性,并且可以根据这种相似性给两幅图像生成细节描述对其进行区分。但目前使用交叉熵作为损失函数的方法却无法做到,其给出的描述完全一致,忽视了图像的细节特征。ATTN + CIDER 表示使用注意力机制、基于 CIDER 的强化学习方法训练模型。
因此为了解决句子的多样性问题,研究者提出了以下几种在目前看来十分有效的解决方法。
ICCV 2017
文章首先给出了一组对比 MLE(使用交叉熵作为损失函数,最大似然概率),G-GAN(使用生成模型的方式,下文将详细说明)和人类的具体描述方式,如图 2 所示。
▲ 图2
可以看出相比较于 MLE 方法,使用 GAN 生成的结果在句法结构上更加复杂,对于细节的描述非常丰富。使用 MLE 的方法导致生成结果非常死板,语句模式单一,这也是上文所提到的机器更趋向于更“安全”的结果的量化体现。
因此文章提出使用 Conditional GAN 的方法作为生成模型用于生成描述,通过 GAN 的 evaluator 去评价语句描述是否由“人”描述得到,具体方法论如下介绍(下面的介绍默认理解 conditional GAN)。
Generator G,生成模型需要两个输入,图像的特征(经过 CNN 编码)f(I) 和随机的噪声变量 Z,图像特征作为条件变量用于控制生成结果的范围在描述特定的图片,噪声变量用于控制生成结果的多样性。最终生成模型通过 LSTM 作为解码器生成句子。