image caption笔记(八):《From Captions to Visual Concepts and Back》
这篇文章是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》相关推荐
- 《From Captions to Visual Concepts and Back》阅读笔记
在接触到image caption时,看的论文是<Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Cha ...
- 阅读小结:MSR:From Captions to Visual Concepts and Back
阅读小结:MSR:From Captions to Visual Concepts and Back What How 人与人的根本区别在于自律能力. 作者:H. Fang et al. 题目:Fro ...
- WeaQA:Weak Supervision via Captions for Visual Question Answering 论文笔记
WeaQA:Weak Supervision via Captions for Visual Question Answering论文笔记 一.Abstract 二.引言 三.相关工作 3.1 VQA ...
- ReactJS学习笔记八:动画
ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
- 吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码
吴恩达<机器学习>笔记八--逻辑回归(多分类)代码 导入模块及加载数据 sigmoid函数与假设函数 代价函数 梯度下降 一对多分类 预测验证 课程链接:https://www.bilib ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...
- ROS学习笔记八:创建ROS msg和srv
ROS学习笔记八:创建ROS msg和srv 本节主要讲述了如何创建和建立ROS msg和srv,同时使用命令行工具rosmsg.rossrv和roscp. msg和srv简介 msg:描述ROS m ...
- 《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9360993 作者:七十一雾央 新浪微博:http:// ...
最新文章
- Junit 3 与 Junit 4写法
- linux教程 nfs,[原创]linux视频教程之NFS
- 【CyberSecurityLearning 39】逻辑卷以及格式化挂载、特殊权限(非常重要)
- arduino 入门套件_计算机视觉入门套件
- 为什么python工程师掌握这些就够了_Python工程师薪资飙升,Python这些技能你掌握了吗...
- MySQL5.7 安装(Redhat)
- 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
- python3 pygame 坦克自动移动
- linux pdf to txt,PDF转换为TXT
- Java程序员校招蚂蚁金服,大专生出身,做Java程序员真的没有春天吗
- Q138:PBRT-V3,伪随机数发生器(pseudo-random number generator,RNG)(A.1.2章节)
- 【语音处理】基于matlab语音去噪频谱分析【含Matlab源码 1019期】
- take android,Protake
- 从根源上解决libc.so.6版本问题 /lib64/libc.so.6:version 'GLIBC_XXX' not found
- Chrome浏览器断网时的小恐龙dino怎么一直玩?
- Ubuntu 搭建opengrok 流程
- 安装Android adb驱动
- smith 图中Q值和阻抗匹配
- 如何查看宇视科技摄相机是否支持反向供电
- jquery打印html页面自动分页,jQuery打印指定区域Html页面并自动分页