Zero-shot Learning零样本学习 论文阅读(五)——DeViSE:A Deep Visual-Semantic Embedding Model
Zero-shot Learning零样本学习 论文阅读(五)——DeViSE:A Deep Visual-Semantic Embedding Model
- 背景
- Skip-gram
- 算法
- 算法思路
- 原理
这篇2013年的文章提出了DeViSE这种方法,主要是综合了传统视觉识别的神经网络和词向量处理(word2vec)中的skip-gram模型,实现了一个视觉和语义兼顾的ZSL模型,取得了较好的效果,时至今日准确率仍然可以排在前面。
背景
Skip-gram
Skip-gram是Word2Vec模型中的一种,给定一个input word来预测上下文,训练之后的模型的目的并不是用这个模型来预测,而是为了得到这模型隐层中学得的权重参数。
首先,我们构建一个完整的神经网络,包含输入层、隐层、输出层。
例如,对于一个句子“I want to eat an apple.” 选取一个词作为输入,这里选择"eat",再定义一个参数skip-window,它代表着我们从当前input word的一侧(左边或右边)选取词的数量。如果我们设置skip_window=2skip\_window=2skip_window=2,就代表选取输入词左边2个和右边2个单词进入窗口[“want”,“to”,“an”,“apple”];另外一个参数num-skips,代表我们从窗口中选取多少个不同的词,作为我们的output,当skip_window=1,skip_num=2skip\_window=1,skip\_num=2skip_window=1,skip_num=2时,我们将会得到两组 (input word, output word) 形式的训练数据,即 (“eat”, “to”),(“eat”, “I”).
神经网络基于这些训练数据将会输出一个概率分布,这个概率代表着我们词典中的每个词是output word的可能性。例如,上面我们得到两组数据。我们先用一组数据('来训练神经网络,那么模型通过前面学习这个训练样本,会告诉我们词汇表中其他单词的概率大小和“eat”的概率大小。
具体地,因为神经网络的的输入必须为数值,所以我们会首先将词汇表中的单词进行one-hot编码,隐层不使用任何激活函数,但是输出层用softmax.
算法
算法思路
分别预训练一个视觉网络和一个词向量skip-gram网络,再结合两个网络进行训练。
原理
预训练一个视觉模型如下图:
和一个skip-gram模型,如下:
将两个模型整合:
具体:
- 语义模型
通过Skip-gram对模型进行训练,Skip-gram为通过单词来预测单词的上下文,训练模型最后得到一个权重矩阵,该矩阵即为需要的Embedding矩阵。 - 视觉模型
采用了1,000-class ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 这篇文章提出的模型,并将结果作为benchmark。 - Deep Visual Semantic Embedding Model
即本文提出的模型。输出层去掉了之前的softmax,换成了一个将4096维向量(图像)映射到500或1000维(词向量)的线性映射transformation。 - 损失函数:使用点积相似性(dot-product similarity)和铰链损失函数(hinge rank loss)结合来作为该模型的损失函数,这可以使得在图像模型的输出和该图像对应的正确的标签的向量表示之间的点积相似性,要比不正确的其他标签的向量与该图像的相似性高。
定义:对于输入的image, core visual model的输出为 vˉ(\bar{v}(vˉ(image))) ,transformation模块的线性映射参数为 MMM,标签label,经过skip-gram模型的输出为 tˉlabel\bar{t}_{\text {label}}tˉlabel 其中 image对应label,相似性度量为点积度量,同时结合了hinge rank loss,而未采用 l2l_{2}l2 loss论文的 解释为分类问题(最近邻问题)本质为排名问题,即正确的标签排名应高于错误的标签,而 l2l_{2}l2 loss仅 仅是考虑了让预测向量与正确的向量尽可能接近,却忽略了预测向量与其它错误向量的距离,实验 结果也证明 l2l_{2}l2 loss效果不如hinge rank loss, 因此loss为:
l(image,label)=∑j≠labelmax[0,margin−(tˉlabelMvˉ(image)−tˉjMvˉ(image))]l(\text {image,label})=\sum_{j \neq l a b e l} \max \left[0, \operatorname{margin}-\left(\bar{t}_{\text {label}} M \bar{v}(\text {image})-\bar{t}_{j} M \bar{v}(\text {image})\right)\right] l(image,label)=j=label∑max[0,margin−(tˉlabelMvˉ(image)−tˉjMvˉ(image))]
其中margin为超参数,实验中设置为0.1
Zero-shot Learning零样本学习 论文阅读(五)——DeViSE:A Deep Visual-Semantic Embedding Model相关推荐
- Zero-shot Learning零样本学习 论文阅读(一)——Learning to detect unseen object classes by between-class attribute
Zero-shot Learning零样本学习 论文阅读(一)--Learning to detect unseen object classes by between-class attribute ...
- DeepLearning | Zero shot learning 零样本学习AWA2 图像数据集预处理
因为有打算想要写一组关于零样本学习算法的博客,需要用到AWA2数据集作为demo演示 之前想只展示算法部分的代码就好了,但是如果只展示算法部分的代码可能不方便初学者复现,所以这里把我数据预处理的方法也 ...
- DeepLearning | Zero Shot Learning 零样本学习(扩展内容、模型、数据集)
之前写过一篇关于零样本学习的博客,当时写的比较浅.后来导师让我弄个ppt去给本科生做一个关于Zero Shot Learning 的报告,我重新总结了一下,添加了一些新的内容,讲课的效果应该还不错,这 ...
- 近期必读的6篇NeurIPS 2019零样本学习论文
来源 | 专知(ID:Quan_Zhuanzhi) [导读]NeurIPS 是全球最受瞩目的AI.机器学习顶级学术会议之一,每年全球的人工智能爱好者和科学家都会在这里聚集,发布最新研究.NIPS 20 ...
- 近期必读的6篇 NeurIPS 2019 的零样本学习(Zero-Shot Learning)论文
近期必读的6篇 NeurIPS 2019 的零样本学习(Zero-Shot Learning)论文 PS:转发自"专知"公众号 [导读]NeurIPS 是全球最受瞩目的AI.机器学 ...
- 论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述
随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题.零样本学习(Zero-Shot Learning, ZSL)的提 ...
- 论文浅尝 - SWJ | 基于知识图谱和注意力图卷积神经网络的可解释零样本学习
论文题目:Explainable Zero-shot Learning via Attentive Graph Convolutional Network and Knowledge Graphs 本 ...
- 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》
深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...
- few-shot learning 1.1——零样本学习
few-shot learning 1.1--初识零样本学习 1. 什么是few-shot learning 小样本学习问题是指只给定目标少量训练样本的条件下,如何训练一个可以有效地识别这些目标的机器 ...
最新文章
- sap内表 table_LINE
- python散点图图例只显示一个标记点_python – Matplotlib图例:如何分配多个散点值...
- android 弹起键盘把ui顶上去的解决办法
- 快报:Java跌惨!Python背后或有推手?网友:心态已崩!
- 攻防世界web新手区解题 /cookie / disabled_button / weak_auth
- 是否有必要使用外键?为什么不用外键?
- macOS 使用手册
- 无需担心架构演变 入云的Teradata无处不在
- DCMTK: DcmSCP, error:QueryRetrieveLevel larger remaining bytes
- 以二进制输出64位类型的数据_Java入门第五课:Java基本数据类型与变量的声明...
- 关于架设流媒体服务器与DRM加密问题
- 问题四十八:怎么用ray tracing画superhyperboloid(超级双曲面)
- web本地开发环境集成工具:​​​​MAMP Pro
- java 32位无符号整数_Java中32位无符号数的取法
- 微信小程序视频自定义进度条
- 解决Linux内核问题实用技巧之-dev/mem的新玩法
- 百词斩不复习_不背单词,墨墨背单词和百词斩哪个好啊?
- 计算机的来源知识,计算机的由来计算机从诞生到现在才不过50多年的时间,可是发展却很快,已先后经历了四代,可以说是人丁兴旺。世界上第一台电子计算机1946年诞生于美国,名为埃尼阿克(ENIAC)...
- 华为 eNSP 模拟器配置动态路由(ospf)
- 我用Python实现自动化办公,美女同事投来羡慕的眼神,而后···
热门文章
- Chrome浏览器:分享几个好用的谷歌浏览器拓展程序
- [分享]SQl语句学习专题
- 用eclipse和androidstudio和基于高德地图API开发的附近购平台的java服务端和android客户端数据库用mysql包括程序设计图
- word2016 卡顿_word2016经常发生卡顿现象
- Pycharm2099破解
- 高可用解决方案:同城双活?异地双活?异地多活?怎么实现?
- matlab fabs能用吗,为什么使用abs()或fabs()代替条件否定?
- 有幸认识了龙王和参谋长
- POWERBUILDER12.6开发实验室管理系统[LIS](一),迈瑞三分类血球仪 BC-20S\BC-30S接收、解析数据
- 机器学习中的Encoder和Decoder到底是什么