Zero-Shot Learning零样本学习 入门 基本概念

Zero-Shot Learning零样本学习 入门 基本概念

  • 什么是zero-shot learning?
  • 基本概念
    • 定义
    • 语义空间(Semantic Spaces)
      • 工程语义空间(Engineered Semantic Spaces)
      • 学习语义空间(Learned Semantic Spaces)

最近刚入门学习零样本学习的相关内容,本次的笔记列出了一些零样本学习领域相关的概念,只有理解了这些概念才能更顺畅地阅读和理解文献。

什么是zero-shot learning?

一言以蔽之,zero-shot learning零样本学习就是让学习器对其从来没有见过的类别进行分类。比如:给学习器一堆马和老虎的图片进行训练,训练完毕后,我们输入一张斑马的照片,并希望学习器告诉我们“这是斑马!”。乍一听,这显然是不现实的。
但其实,我们输入的训练数据与希望识别的类别的并不会是完全无关的。显然,我们不会奢求学习器学习一些人脸、飞机等与斑马毫无关联的数据就可以在第一次看到斑马的图片的时候就能够识别出这是一匹斑马。另外,我们还会在零样本学习的过程中利用一些已有的知识,比如“斑马的外形像马,身上有条纹”。像这样,根据现有的马、老虎的照片以及“斑马的外形像马,身上有条纹”这条信息,我们尝试让学习器通过马的数据可以识别出马的外形,通过老虎的数据让学习器可以识别出动物身上的条纹,如果学习器发现一张输入的照片有马的外形+身上有条纹,那么学习器就有足够的信心认为这就是斑马,即使它之前从未见到过斑马的照片。怎么样,是不是刚才无厘头的ZSL任务,现在变得有了一些头绪~

基本概念

定义

上面用通俗易懂的语言介绍了ZSL,下面我们给出一些在正式学习之前需要了解的概念。

  1. 特征空间(feature space)
    输入的具体的实例通常用特征向量表示,所有特征向量存在的空间就称为特征空间.
  2. 可见类 & 不可见类(seen classes & unseen classes)
    在ZSL问题中,特征空间(feature space)包含一些带标签的训练实例,这些实例所涵盖的的类别就称为可见类(seen classes);同时,特征空间中还包含一些不带标签的测试实例,这些实例所属的类别称为不可见类(unseen classes).
    接着我们就可以给出ZSL的具体定义:
  3. Zero-Shot Learning
    对于给定属于可见类集合 S S S的测试实例 D t r D^{tr} Dtr以及属于不可见类集合 U U U的测试实例 X t e X^{te} Xte, Zero-Shot Learning目标是学习一个分类器 f u ( ⋅ ) : X → U f^u(\cdot):X\rightarrow U fu():XU,使得可以预测不可见类的测试实例的类别.

语义空间(Semantic Spaces)

Zero-Shot Learning中不可或缺的一部分就是有关类的语义信息,比如上文提到的“不可见类斑马的外形像马,身上有条纹”,这些有关类的语音信息构成了语义空间.我们可以将 Zero-Shot Learning中用到的语义空间根据构造方法分为工程语义空间学习语义空间

工程语义空间(Engineered Semantic Spaces)

在工程语义空间中,每个维度的信息都是由人工设计的,接下来是几个 Zero-Shot Learning经常用到的工程语义空间。

  1. 属性空间(Attribute spaces)
    属性空间是由一组属性构成的语义空间。在属性空间中,描述类的各种属性的术语列表被定义为属性。每个属性通常是短语或词语,如在动物识别的任务中,身体颜色(“黄色”“白色”等等)、栖息地(“陆地”“海洋”“沙漠”等等)都是属性,属性的集合就构成了属性空间。
    我们还能在论文中看到的一个词prototype,翻译过来是原型,对于每个类,对应原型的每个维度的值由该类是否具有对应的属性决定。比如,若我们构建的属性空间中包含三个属性,“有条纹”“生活在陆地”和“食草的”,那么对于“老虎”这一类三个属性的对应值分别为1、1、0,那么就可以构成原型[1,1,0].
  2. 词汇空间(Lexical Space)
    词汇空间是由一组词汇项构造的各种语义空间。 词汇空间基于可以提供语义信息的类和数据集的标签。 数据集可以是一些结构化的词汇数据库,例如WordNet.
  3. 文本关键字空间(Text-keyword Spaces)
    文本关键字空间是一种由从每个类的文本描述中提取的一组关键字构成。 在文本关键字空间中,文本描述的最常见来源是网站,包括维基百科等一般网站和特定于域的网站。 例如,任务是图像中的zero-shot flower识别,因此使用植物数据库和植物百科全书(其特定于植物)来获得每个花类的文本描述。 除了预定义的网站之外,还可以从搜索引擎获得这样的文本描述。
    此外,还有一些基于特定问题的空间(Some problem-specific spaces)。

基于以上工程语义空间的概念,我们可以发现工程语义空间的优点是通过语义空间和类原型的构建,灵活的编码人类领域知识;缺点是严重依赖人来执行语义空间和类原型工程。例如,在属性空间中,属性设计需要手工完成,这需要领域专家付出巨大努力。

学习语义空间(Learned Semantic Spaces)

在学习语义空间中,每个类的原型都是通过学习输出中获得。但是,在这些原型中,每个维度都没有明确的语义,而是语义信息包含在了整个原型中。用于提取原型的模型可以进行预先训练。

  1. 标签嵌入空间(Label-embedding Spaces)
    标签嵌入空间是一类通过嵌入类标签来获得类原型的语义空间。可以利用在NLP领域已经得到了广泛的发展和应用的单词嵌入技术。单词嵌入技术中,单词和短语作为向量被嵌入到实数空间中。
    有关词嵌入技术,可以看一下这个链接的介绍.
    https://www.pianshen.com/article/4510216822/
  2. 文本嵌入空间(Text-embedding spaces)
    文本嵌入空间通过嵌入每个类的文本描述来获得类原型的语义空间。与文本关键字空间类似,文本嵌入空间中的语义信息也来自文本描述。不同的是,文本嵌入空间是通过一些学习模型将每个类的文本描述用作模型的输入,输出向量被视为该类的原型。
  3. 图像表示空间(Image-representation spaces)
    图像表示空间是通过每个类的图像来获得类原型的语义空间。

学习语义空间的优势在于需要较少的人工介入,可以照顾到一些很可能被人类忽略的语音信息;不足之处也很明显,语义空间每个维度的语义都是隐式的。

本篇文章部分内容来自于2019年的一篇综述A Survey of Zero-Shot Learning: Settings, Methods, andApplications.

你可能感兴趣的:(Zero-Shot,Learning,python,机器学习,深度学习,算法)