当前位置:   article > 正文

Image Caption Generation原理简介

caption generation


问题描述

    Image Caption Generation又称为图像描述生成、图像字幕生成等,主要目的是根据图像生成一段文本描述。2016年,Kelvin Xu 等人提出了经典的CNN+RNN with Attention结构来解决这一问题,原文链接为:原文地址,本篇博文侧重于对该模型的原理进行分析。在介绍模型前,我们有必要先回顾一下经典的Encoder-Decoder结构,并了解该结构在机器翻译问题上的应用。


Encoder-Decoder结构

    顾名思义,Encoder-Decoder结构由一个Encoder和一个Decoder构成,Encoder对输入数据进行编码,而Decoder对编码进行解码。该结构的一个典型应用就是自编码器(Auto-Encoder),其结构如下图所示。

    AutoEncoder的主要功能是特征提取,以图像数据为例,其工作过程为:Encoder将输入图像编码为一个特征矢量,而Decoder将特征矢量恢复为一幅图像,我们期望输入图像和解码图像尽可能一致。若模型能够实现对压缩数据的复原,我们就认为Encoder得到的特征矢量表示了原图像不可忽略的特征。原理上,AutoEncoder提取到的图像特征可用于分类器模型的训练。


机器翻译问题

    机器翻译的目的是将一种语言的文本翻译成另一种语言的文本,也可以使用Encoder-Decoder结构进行解决。

基本模型结构

    解决机器翻译问题的基本模型结构如下图所示。Encoder部分由一系列LSTM单元实现,对包括起始符和结束符的句子进行编码,得到表示原文本全局信息的特征矢量(图中黑色实线)。Decoder部分也由一系列LSTM单元实现,实现对特征矢量的逐步解码。Decoder部分每个LSTM单元的输入是Encoder编码矢量(图中黑色实线)和前一个LSTM单元输出矢量(图中红色实线)的串联,当解码至终止符时停止解码。

注意力机制

    观察上面的模型结构可以发现,EncoderDecoder之间只使用了一个代表原文本全局信息的特征矢量进行连接,这将严重的影响解码效果。若原文本的长度过长,Decoder很难根据原文本的全局信息实现逐个单词的精确解码。
    实际上,人类在进行翻译的时候往往不是读完整个句子再进行翻译,而是边读边翻译,即翻译每个单词的时候只关注原文本的一些局部信息就可以完成精确翻译。假设我们要将原文本 “I love you” 翻译为“我爱你”,在翻译‘我’时,我们仅需要关注 ‘I’ 而不需要关注其他单词,在翻译‘爱’时,我们仅需要关注 ‘love’ 而不需要关注其他单词。实际上,只关注某些局部信息进行解码就是我们常说的注意力机制,带注意力机制的机器翻译模型如下图所示。

    从模型中可以看到,EncoderDecoder不再使用单一的特征矢量进行连接,而是在Decoder部分引入了注意力机制。Encoder部分仍然使用一系列LSTM单元对原文本进行编码,而Decoder在每一步解码时关注原文本的不同部分进行解码。Decoder部分每个LSTM单元的输入为注意力单元的输出(图中黑色实线)和上一个LSTM单元输出矢量(图中红色实线,第一个LSTM单元使用起始符的编码矢量)的串联。而每个注意力单元的输出是Encoder每个LSTM单元输出矢量的加权平均(图中紫色实线)和Decoder前一个LSTM单元隐层矢量(图中黄色实线)的叠加,其中每条紫色实线的权值代表不同的注意力大小。


Image Caption Generation

基本模型结构

    Image Caption Generation问题的基本模型与机器翻译问题的基本模型十分相似,也由一个Encoder和一个Decoder组成,模型结构如下图所示。

    Encoder部分通常使用CNN(例如Inception结构、Resnet结构等)将输入图像转换为一系列特征图像,以ResNet-101网络(不包括最后的池化层和全连接层)为例,它可以将299×299的输入图像转换为204814×14的特征图,通过reshape操作,我们可以得到一个表示图像全局信息的特征矢量。Decoder部分仍使用一系列LSTM单元实现,每个LSTM单元的输入是Encoder编码矢量(图中黑色实线)和前一个LSTM单元输出矢量(图中红色实线)的串联。

注意力机制

    与机器翻译问题类似,在每一步解码时关注图像的不同局部进行解码能从一定程度上提高解码精度,引入注意力机制的模型如下图所示。在原模型的基础上,Decoder部分每个LSTM单元的输入变为注意力单元的输出(图中黑色实线)和前一个LSTM单元输出矢量(图中红色实线)的串联,而每个注意力单元的输入是若干个特征图的加权平均(图中紫色实线)和Decoder部分上一个LSTM单元的隐层矢量(图中黄色实线)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/857231
推荐阅读
相关标签
  

闽ICP备14008679号