什么是零样本学习(zero-shot Learning)-A

2018/08/14 deep learning zero shot learning 共 2423 字,约 7 分钟

最近再进行Zero-Shot Learning关于知识图谱嵌入的研究,这篇文章开始将会从调研Zero-Shot Learning开始逐步记录整个类似问题做知识嵌入的研究过程。 本章80%翻译自一个公开的科学散记 也有本小弱观看去年CVPR的tutorial的个人见解,更多思考会在之后详细说明。

Introduction

在过去的几十年里,机器变得更加智能,但如果没有将机器所见训练数据集给予标记,它就无法区分两个存在某种联系的对象,说白了就是教的才会,不教的不会,哪怕不教的和已经教的关联性很近。另一方面,对于我们一直在训练机器能够具有人类的某种技能,人类能够识别大约30,000个基本类别,但是人学习过的肯定没有这么多,那么人类却有这样的能力。 在机器学习中,这被认为是零样本学习(ZSL)的问题。 我们考虑一个例子,如果一个孩子已经知道马长什么样子,并且知道斑马长得看起来像马,但有黑白条纹,这样他去判别一个斑马会丝毫没有问题。 从数学的角度,这类的学习可以被认为是(图摘自Half-day CVPR 2017 Tutorial | 26th July 2017 (afternoon))

零样本学习的数学定义

在机器的角度,ZSL(zero-shot learning)识别依赖于所学习到的类的标记训练集的存在以及关于每个未曾学习过的类如何在语义上与所学习到的类存在某些相关性的知识。

论文1

根据这篇研究论文,人类可以执行ZSL的原因是:我们人类现有的语言知识库,提供了对新的或未曾学习过的类(斑马)的高级描述,并在它与学习到的类以及视觉概念之间建立了联系。 (像马,有黑白条纹)。 受到这种人类自身的这个能力的启发,科学家和研究者们越来越关注ZSL以增强视觉识别的能力。

Zero-Shot Learning 101

一项研究表明,ZSL机器学习用于构建未标记为训练的未学习的目标类别的识别模型。它利用类属性作为附属信息,并从带有标记样本的源类传输信息。 ZSL分两个阶段完成

  • 训练:捕获有关属性的知识
  • 推理:然后使用知识对一组新类中的实例进行分类。

最近,由于包含元信息的数据的可用性,大家对属性的自动识别的兴趣激增。一篇研究论文声称这已被证明对识别图像特别有用。 一项研究声称,ZSL方法旨在学习中间语义层及其属性,并在推理时应用它们来预测新的数据所属的类。 Li zang的研究进一步解释说,ZSL还依赖于一个标记的训练集的存在和不能学习到的类。能学习到的和不能学习到的的类都与一个高维向量空间中相关,称为语义空间,其中来自所学习得到的类的知识可以转移到不能学习得到的类。 利用语义空间和图像内容的视觉特征表示,Li zang和他团队的研究人员分两步解决了ZSL:

  • 学习联合嵌入空间,其中可以投射语义向量(原型)和视觉特征向量。
  • 在该嵌入空间中执行最近邻(NN)搜索,以匹配图像特征向量的投影与学习不到的类原型的投影。

A joint embedding space is learned where both the semantic vectors (prototypes) and the visual feature vectors can be projected to. Nearest neighbour (NN) search is performed in this embedding space to match the projection of an image feature vector against that of an unseen class prototype.

Implementing Zero-Shot Learning

为了使ZSL有效,关键特征(图像和文本)被归类为矢量。 这意味着事先为项目寻找特定的向量。一旦被采集,它们就会有一个描述,使算法能够相应地对它们进行分类。对这些向量进行训练,这导致根据不同的类别进行分类。无论训练数据如何,测试阶段识别新输入并再次得到更新的类。

Steps Involved In Implementation

在一个tutorial中,Timothy Hospedales描述了在模型中实现零样本学习的三个步骤:

  • 通过以下方式获取类别向量V: 1、属性获取:它通过为其分配标记的视觉属性来描述概念或实例的视觉外观,并且可以轻松地将它们从看到的类转移到看不见的类。 2、词向量:它是对其他数据类型(如视频,文本和音频等)的直接应用。embedding的label tutorial1

  • 训练: 1、给出一些知道类别类别向量$V$和图像$X$。 2、通过将图像分类为矢量分类器或回归量来学习图像\(V=F(x)\)
  • 测试: 指定要识别的新类的向量$V$。 1、将测试数据$F(X)$映射到类别向量空间。 2、$V$与$F(X)$的NN匹配。

Deep Zero-shot learning

在较早的时代,ZSL使用手动探寻对象特征。在过去两年中,它们已经被从深度卷积神经网络(CNN)中特征提取所取代,用于视觉特征表示。这里,使用预先训练的CNN模型提取特征,Deep-CNN也用作其嵌入模型的输入。现有的基于DNN的ZSL研究工作在是否使用语义空间或中间空间作为嵌入空间方面存在分歧。

如何在深层模型中训练端到端的ZSL

  • 训练$E(X,Z)$对于机器配对来说很大,对于不匹配的对来说很小。
  • 设$E(X,Z)$是一个深层网络而不是双线性模型
  • 连接$(X,Z)$并馈入深层网络
  • 最好在$X$和$Z$上进行一些表示学习,然后再是内部网络(inner product)

A Simple Deep Network For ZSL As Explained In Timothy’s Tutorial

训练最大利润率的排名(max-margin ranker)或者让$Y=(1,0)$得到(匹配,不匹配对)的键值对。

deep-zsl

根据一项研究,尽管深度神经网络成功地学习了图像字幕等其他视觉问题中的文本和图像之间的端到端模型,但很少有深度ZSL模型的发布。深度ZSL模型与使用深度特征表示但不学习端到端嵌入的ZSL模型相比没什么优势。 这个也是未来的研究探索的一个小关键点。

文档信息

Search

    Table of Contents