这篇文章是15年微软的工作,是和谷歌《show and tell》同时期的文章,它们都去参加了微软的Image Caption比赛(MS COCO caption challenge),总的结果是并列第一。

文章的框架不是我们常见的encoder-decoder类型,但是仍然有启发意义。

文章生成caption的思路是

(1)给出一幅图像,首先使用视觉检测器提取出图像中可能存在的单词。

(2)提取完单词后,采用传统的方法,而不是lstm来进行语言建模。得到若干预测的captions.

(3)使用DMSM模型(deep multimodal similarity model)计算captions和图像的相似度 ,取最相似的一个caption作为最终的预测结果。

实现细节如下:

(0)准备工作

作者首先在所有的captions中提取了1000个单词,它们占到了所有单词出现次数的92%以上。

按照我们的想法,首先我们要提取图像中可能存在的词汇,对于 cat  dog 等这一类名词,使用BBs框出来是比较容易的,但是一些抽象的词,比如 beautiful 没办法限定在图像特定的区域上。 作者使用的方法是使用弱监督的多实例学习(MIL)。

下面简单的介绍一下多实例学习(Multiple Instance Learning,MIL)

首先来简单介绍下多示例学习。多示例学习实际是一种半监督算法。考虑这样一种训练数据:我们有很多个数据包(bag),每个数据包中有很多个示例(instance)。我们只有对bag的正负类标记,而没有对instance的正负例标记。当一个bag被标记为正时,这个包里一定有一个instance是正类,但也有可能其他instance是负类,当一个bag被标记为负类时,它里面的所有instance一定是负类。我们的目标是训练一个分类器,可以对instance的正负进行判别。

多示例学习在现实中其实很常见。如一篇文章违禁时通常是因为该文章具有某些违禁词,但我们可能无法知道具体是哪个词违禁。在这个例子中,bag就是文章,instance就是单词。又如在医学图像领域,CT图被标定为有无病症,而一个人有病症是因为在CT图的某个区域被检测为病灶区域。我们往往只有CT图的标注,但没有CT图中每个区域的标注。这时,bag就是CT图像,而instance就是CT图中的小区域。

在这篇论文中,就是使用多示例学习来处理从图片出提取单词这一问题。对每一个单词来说,标注中含有该单词的图片就是正例的bag,图中的区域就是instance。

由此,我们使用多示例学习方法进行两步迭代,第一步是利用当前算法,选出正例bag中最有可能是正例的instance、以及负例bag的instance。这样,我们就有了大量instance的标签(1000个单词)。

第二步是利用选出的正例instance进行训练,更新训练,这就是一个监督学习的过程了。这样迭代下去,就可以对图片的区域进行分类。

这样给出一个图片的区域,我们就可以提取所需要的单词。文章采用的是针对目标检测改进版的多示例学习方法Noisy-OR MIL,来自(《Multiple instance boosting for object detection》)。

可以看出,最核心的两个问题是

怎么找最有可能时正例的instance(图像区域)和用什么网络架构对选出的instance进行训练。

测试的时候,给出一幅图像i,对每个区域j,计算该区域包含单词w的概率,计算出图像 i包含单词w的概率。

将图像输入训练好的全连接网络,输出12*12的特征图,特征图每个位置代表了图像上的一个区域(可能有重叠),利用这个特征图进一步产生词的概率。

训练的时候,我们把不同区域的特征输进网络,然后做一个多标签的预测。比如某一个标签是‘dog’,如果所有的区域特征输进网络,得到的结果都不是'dog;,我们判定该图像在‘dog’这个标签上是一个负包。否则是一个正包。根据图像对应的caption,我们可以知道图像在‘dog’上的gt究竟是正包还是负包。这就可以计算损失函数。

如果损失函数不为0,更新梯度值。

利用传统 的方法生成若干captions,这一部分没看懂。

建立DMSM模型计算captions和image的相似度。DMSM是一对神经网络。

将前面那个全卷积网络的最后fc表示叠加三个tanh非线性层,作为图像特征的表示。图像特征提取完成。(Q)

引入DSSM,将文本映射到特征空间。文本特征提取完成。(D)

采用余弦相似度计算二者的相似程度。

r是平滑因子。D是多个caption的集合。

经过这三部分,模型的框架搭建起来。不过不能实现端到端的训练,需要分阶段训练。这也是bottom_up机制存在的问题。

image caption笔记(八):《From Captions to Visual Concepts and Back》相关推荐

  1. 《From Captions to Visual Concepts and Back》阅读笔记

    在接触到image caption时,看的论文是<Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Cha ...

  2. 阅读小结:MSR:From Captions to Visual Concepts and Back

    阅读小结:MSR:From Captions to Visual Concepts and Back What How 人与人的根本区别在于自律能力. 作者:H. Fang et al. 题目:Fro ...

  3. WeaQA:Weak Supervision via Captions for Visual Question Answering 论文笔记

    WeaQA:Weak Supervision via Captions for Visual Question Answering论文笔记 一.Abstract 二.引言 三.相关工作 3.1 VQA ...

  4. ReactJS学习笔记八:动画

    ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...

  5. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  6. 吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

    吴恩达<机器学习>笔记八--逻辑回归(多分类)代码 导入模块及加载数据 sigmoid函数与假设函数 代价函数 梯度下降 一对多分类 预测验证 课程链接:https://www.bilib ...

  7. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  8. ROS学习笔记八:创建ROS msg和srv

    ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...

  9. 《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9360993 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. Junit 3 与 Junit 4写法
  2. linux教程 nfs,[原创]linux视频教程之NFS
  3. 【CyberSecurityLearning 39】逻辑卷以及格式化挂载、特殊权限(非常重要)
  4. arduino 入门套件_计算机视觉入门套件
  5. 为什么python工程师掌握这些就够了_Python工程师薪资飙升,Python这些技能你掌握了吗...
  6. MySQL5.7 安装(Redhat)
  7. 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
  8. python3 pygame 坦克自动移动
  9. linux pdf to txt,PDF转换为TXT
  10. Java程序员校招蚂蚁金服,大专生出身,做Java程序员真的没有春天吗
  11. Q138:PBRT-V3,伪随机数发生器(pseudo-random number generator,RNG)(A.1.2章节)
  12. 【语音处理】基于matlab语音去噪频谱分析【含Matlab源码 1019期】
  13. take android,Protake
  14. 从根源上解决libc.so.6版本问题 /lib64/libc.so.6:version 'GLIBC_XXX' not found
  15. Chrome浏览器断网时的小恐龙dino怎么一直玩?
  16. Ubuntu 搭建opengrok 流程
  17. 安装Android adb驱动
  18. smith 图中Q值和阻抗匹配
  19. 如何查看宇视科技摄相机是否支持反向供电
  20. jquery打印html页面自动分页,jQuery打印指定区域Html页面并自动分页

热门文章

  1. ThinkPad R480 C盘 固态128G 升级到 512G + 系统无缝迁移,不用重装软件
  2. 从零开始的神棍之路 ----模拟(细节)
  3. 数据分析出的 2000年以来高分华语电影前50名
  4. java生成二维码到文件,java生成二维码转成BASE64
  5. 数学建模重要算法简介及算法实现
  6. iphone更新运营商服务器,iphone更新运营商配置文件操作方法
  7. 本科毕业论文参考文献可以随便写吗?
  8. 一文了解百度信息流:百度电商直播、百青藤、观星盘
  9. 使用php解析url中出现\u002乱码问题的方法
  10. Fractions to Decimals