Show, Attend and Tell: Neural Image Caption Generation with Visual Attention 阅读笔记

0 模型在做什么

图0-0 Image Caption效果简介

本文介绍的模型,将图片信息与相应的文本信息进行结合,在预测文本中相应单词的时候不同的图像区域被激活

如在图0-0 第一对图片中,当用于生成句子中的dog单词时,图片中狗相关的区域变的高亮

类似的第二张图中的stop标志,第三张图的人们,以及第四张图的树

图0-1 错误案例

当然在依赖图片生成文本的时候也会出现错误的情况,如在图0-1中把第一张图片的两只长颈鹿误认为鸟,第二张图片女性衣服的logo误认为钟表,第三张图把帆误认成冲浪板,把第四章的小摊视作了披萨。

1 介绍

1.1 模型作用

受到机器翻译与物体识别相关领域学科发展的影响,论文作者们尝试一种能够自动学习描述图片的模型(拿我们龙哥的话说,就是看图说话~),这种模型主要是基于attention技术。

模型优化主要基于反向传播技术,同时文中作者用可视化的方式,展现了模型如何聚焦用于生成文本的有效对象。

1.2 背景介绍

自动描述图片,是计算机视觉的核心目标--场景理解的主要任务,在描述图片的任务中,模型不仅需要足够准确的图片中包含了哪些物体,同时需要捕捉到物体之间的关系,并使用语言进行表述。正因上述原因,描述图片任务一直被视为一个极具挑战的问题。同时该任务中,模型人类将大量数据额信息压缩到可描述的语言信息,因此图片描述机器学习算法的重要挑战。

2 模型结构

2.1主要框架

                                                                          图1 整体框架

图1所示,主要流程如下

  1. Image Caption(图片描述)模型中,输入为图片数据(第一步)
  2. 经过CNN进行卷积提取图片特征信息最终形成图片的特征图信息(第二部,属于encode过程)
  3. attention对提取的特征图进行加强与抑制,作为后续进入LSTM模型的输入数据,不同时刻的attention数据会受到上一时刻LSTM模型输出数据而有所调整(第三部分,后面会详述attention 与 隐藏状态ht 以及输出yt的关系)
  4. LSTM模型最终输出文本信息(第四部分)

2.2 模型细节--encoder部分

Image Caption(图片描述)模型的最终输出为一个长度为C的句子,其中yi指句子中的第i个词,这个词属于一个k维实数的词向量,其中K是词典长度(这么看输出应该是一个one-hot的词向量)

在encoder阶段,文中使用的是CNN(卷积神经网络),用于提取特征图向量集合,这些特征图向量后续会被作为注释向量( annotation  vectors注释向量啥意思啊~哈哈哈)使用。

通过CNN会提取L个特征图向量,命名为a,每一个都是D维向量用来代表图片的一部分。同时为了保留特征图与2维图片的关系,本文中的特征来自于较浅的卷积层(不像其他研究中使用了全连接层),这么操作可以保证后续的decoder阶段,能够通过选取所有特征图的子集而选择性聚焦到图片的部分位置。

2.3 模型细节--decoder部分

在decoder阶段模型使用的是 long short-term memory (LSTM,长短时记忆模型)network,图片的说明文字由本模型生成,在预测每一个词的时候都会需要使用背景向量(前面提到的特征图的变体,后续会详细讲述)、前一时刻的隐藏层向量、前一时刻的词。

                                                                     图2 LSTM cell内部计算框架

                                                                     图3 LSTM cell内部相应算式

decoder节段是一个标准的LSTM过程,如图2中所示,每个LSTM需要以下输入

  1. 背景变量Z,来源于图片经过CNN提取特征后,再使用attention进行过滤后的向量
  2. 前一时刻的隐藏层向量h
  3. 前一时刻的词向量E,此时的词被转化为embeding向量

图3中表示LSTM具体的计算公式,这里暂不赘述,如果后续有时间会丰富下此处的细节,仅当复习LSTM

2.4 模型细节--背景向量Z的计算

背景向量Z的含义,Z是在t时刻,输入图片数据的动态表达,也就是说,

  1. Z是基于输入图片数据的,后续的加工依赖于注释向量a
  2. 随着时间的不同,Z向量是有变化的,导致Z变化的原因是前一时刻输出的y

图4 attention系数计算

图5 计算背景向量

具体计算

  1. 图4通过att函数计算第i张特征图ai与上一时刻隐藏向量ht-1的关系eti(具体的att函数也是本文的探讨重点之一会后续介绍)
  2. 图4中使用归一化,将eti转化为概率值,成为attention系数αti,αt既是指t时刻attention的集合
  3. 图5说是特征图集合a中元素分别于attention系数中αti计算得到t时刻背景向量Zt

3 两种attention机制--hard attention 与 soft attention

上面提到计算特征图与隐藏向量间关系时用到了att函数,本文中作者提到了两种att函数分别是hard attention 与 soft attention

3.1 Stochastic “Hard” Attention

图6 hard attention计算公式

所谓的hard attention实际上是使用一种随机的方法计算attention系数α.

首先先设定一个t时刻的位置变量st,st是指在t时刻生成词的时候模型需要聚焦于图片的哪些位置.

在hard-attention 模型中,st是一个one-hot编码向量,st,i中最大的值为1,其余均为0.结合图6中第二个公式,可以看出,会把与生成下一个词最相关的特征图提取出来其他特征图抛弃。

基于整体模型得出目标函数,及优化函数如图7所示

图7 目标函数与优化函数

……后续补下目标函数与优化函数的推导,这东西实在让我头大啊~

在优化函数过程中(图7的第二个公式),本文使用了 Monte Carlo based sampling (这个具体咋做实在不太清楚,不敢瞎翻译啊,有大神求指点,多谢!)来逼近模型中相关参数的梯度。使用 Monte Carlo based sampling可以从一个多项式分布中抽取位置变量st。因此优化函数变化如图8

图8 使用了Monte Carlo based sampling后的优化函数

为了降低蒙特卡洛方法计算梯度的变异性,使用了 moving average baseline (这个概念也不太懂,啊啊啊!!!),在第k批次数据进入模型时,moving average baseline通过累加前一批次的指数衰减后的log似然,如图9所示

图9 计算moving average baseline

为了再次降低计算时的变异,多项式分布的熵H会被加入到优化函数中,最终优化函数如图10所示

图10 hard attention 模型下的最终优化函数

3.2 Deterministic “Soft” Attention 

“Neural machine translation by jointly learning to align and translate”这篇论文提出的算法具体可参考https://arxiv.org/pdf/1409.0473.pdf

3.3 hard 与 soft 的对比

图11 hard attention 集中效果

图12 soft attention 集中效果

对比两种attention的集中位置的可视化效果来看,soft-attention 更能表达图片与文本间的关系(尤其是soft的名词部分)

参考资料:https://arxiv.org/pdf/1502.03044.pdf

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值