图像描述中的注意力机制

图像描述(image caption)近几年来借助深度学习端到端的训练生成方式,得到了显著的发展。

总的来说图像描述一般有两种生成范式,一类是botton-up范式 ,一类是 top-down范式

botton-up是经典的范式,这一类模型监测图像中的 视觉概念、目标、属性、单词、等

然后再通过语言模型将这些属性连接到一起,从而生成图像描述的句子。(像小学语文给定散乱的字词,然后造句)

而目前应用的大多是top-down范式,这是一类更加现代的方法,这类范式的灵感来源于机器翻译的encode-decode结构。在机器翻译的模型任务将,工作原理是先一句起始序列A(如一句英语句子:I am a student)通过循环神经网络对其编码,然后再通过另外一个循环神经网络对其解码,从而生成目标语言的句子B(如汉语:我是一名学生)

 I  am a student   ---RNN编码--->(向量/矩阵)---RNN解码---> 我是一名学生

图像描述的模型结构完全雷同于机器翻译的这种encode-decode的结构 

只不过在编码的过程中对象不一样,机器翻译编码的对象是句子是序列,图像描述编码的是图像。

但是对于机器而言,他们在机算计表示的形式都是向量。

所以图像描述的编码器也只不过是把RNN换成了CNN而已。最具有代表的开山模型有 M-RNN,NIC,

虽然,这种编码-解码的模型结构比经典范式的简单,但是其表现出的效果确实意外的好。

但是这种简单的结构有一个缺点,就是它可能会忽视图片中潜在的、明显的,对图像描述而言可能有用的那些视觉信息。(上图,依次往右效果变差,图二明显忽略了一只狗)

因此Kelvin Xu 手注意力机制在 机器翻译 与 图像识别 应用上的成功,将注意力机制引入到了图像描述的任务中来。

注意力机制在图像描述中为什么表现的好?

        一般的图像描述编码时,将图像全体编码为一个包括全部图像视觉内容的向量h,这种方法的缺陷在于,当解码模型试着生成下一个词的时候(原本该词通常仅仅只是描述图片的某一部分)使用了整个图片的表示h来条件生成每个词,但是即使用了全部的h,不能对图片的不同部分有效地生成不同的词。

       而注意力机制能够起到‘视觉注意’的作用。 
   在注意力机制下,图片的编码将被分成n个部分,用CNN表示成h1,h2,,,,hnh1,h2,,,,hn(不是全连接层,而是卷积层,可能是dxdxc,所以n一般是等于dxd)。当RNN生成新词时,注意力总是集中到最相关的图片部分,所以解码器只是使用图片的特定部分来解码。

 

注意力权重a_ j 是第 j 个字对应的注意力权重。

=========== 

值得阅读的参考文献:

注意力机制:Recurrent Models of Visual Attention

机器翻译: Neural machine translation by jointly learning to align and translate. 

图像描述:Show and tell: A neural image caption generator. 

                    Explain Images with Multimodal Recurrent Neural Networks

有注意力机制的图像描述:

                    Show, attend and tell: Neural image caption generation with visual attention. 

                    Image Captioning with Semantic Attention

                    CNN+CNN: Convolutional Decoders for Image Captioning

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值