看图说话——CNN和LSTM的联合应用

看图说话是深度学习波及的领域之一。其基本思想是利用卷积神经网络来做图像的特征提取,利用LSTM来生成描述。但这算是深度学习中热门的两大模型为数不多的联合应用了。

本文是参考文献[1]的笔记,论文是比较早的论文,15年就已经发表了,不新。但还是想写下来它的细节以备后用。

关于CNN(卷积神经网络)和LSTM(长短期记忆网络)的细节,本文不再赘述其细节。读者们需要了解的是:

  • 卷积神经网络是一种特别有效的提取图像特征的手段。一个在大数据集如ImageNet上预训练好的模型能够非常有效的提取图像的特征。
  • 长短期记忆网络能够处理长短不一的序列式数据,比如语言句子。给定一个输入,网络能够给出一个序列输出。

背景

在参考论文提出的模型之前,对于看图说话这个问题,解决方法主要有两个大类:

  • 利用一些预定义好的属性来进行生成,比如对于路况图像,可以判断路上多少车,然后判断路况堵不堵之后就可以生成描述。但这样不具有可扩展性,对于每种场景都需要定制。
  • 使用搜索排序的方法定义该问题,即对于每张图像,在已有的描述中选择最好的一个。这种方法的限制在于不能生成新的语句。

网络模型

图像到文字的问题可以看做是一种机器翻译,在现在的机器翻译模型中,以LSTM为基础的seq2seq模型成为主流,该模型的基本思想是,对于一个数据pair (A, B)。因为A和B表达的是同一个意思,所以存在某种隐含状态h,使得A和B都对应到h。于是seq2seq模型就先对A进行编码,得到一个数据表示,再基于这个数据表示去解码,生成目标语言的文字。

图像到文字也类似,假设存在某种隐含状态h,图像可以编码到h,而基于h可以生成目标语句。

用公式表示则是:
在这里插入图片描述

模型则如图示:
在这里插入图片描述

值得注意的是,在LSTM模型方面,训练和预测的时候是不一样的。

  • 在训练时,假设数据是<某张图像A, " 我 是 谁 ">,那么LSTM的输入S0到SN-1分别是、我、是、谁;而输出分别是 我、是、谁、。
  • 在预测时,对于数据是<某张图像A1, ???>,那么LSTM的输入S0为,S1到SN-1分别为上一步的输出。

实验

效果评价

使用三种评价指标:

  • 人工评价: 在Amazon Mechanical Turk平台上进行评测,每条数据可以由多个人打分。
  • BLEU:衡量预测结果和实际结果在N-gram上的精度。
  • Perplexity: 语言模型的常用指标,语句出现的概率,等于其句子中每个词出现的概率之积。METEOR和Cider是其变种。

训练细节

为了避免过拟合,采用了如下手段:

  • 使用在大数据集上预训练好的CNN模型。这样不止防止了过拟合,还会提升效果。
  • 预训练好的word embedding并不能提升效果,所以没用。
  • Dropout和Ensembling可以显著提升效果
  • 图像的文本描述数据部分都经过了预处理
    • 统计词语频度,只保留出现过5个以上的词语。

实验结果

在这里插入图片描述

  • 各个指标均显著变好。
  • 在Flickr30k和Flickr8k的类似数据上进行对比,发现大数据集可以显著提升效果
  • 在top-1的预测结果上,模型的输出有80%在训练集上出现过。而Top-15则只有50%的语句在训练集上出现过。

参考文献

[1]. Show and Tell: A Neural Image Caption Generator

公众号

更多关于Transformer、Bert、AutoML、架构等方面的知识欢迎关注公众号【雨石记】。

  • 18
    点赞
  • 219
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值