Zero-Shot Learning零样本学习 学习进展汇总

基本概念

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

什么是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.

最大后验概率

最大后验估计MAP是最常用的几个参数点估计之一,基本原理由贝叶斯定理而来,先看贝叶斯公式:
P ( θ ∣ x ) = P ( x ∣ θ ) P ( θ ) P ( x ) P\left(\theta \mid \boldsymbol x\right)=\frac{P\left(\boldsymbol x \mid \theta\right) P\left(\theta\right)}{P(\boldsymbol x)} P(θx)=P(x)P(xθ)P(θ)
其中,我们将 P ( θ ) P\left(\theta\right) P(θ)称为先验概率,即在事情发生之前,根据以往的经验等推测未来此事件发生的概率;将 P ( θ ∣ x ) P\left(\theta\right|\boldsymbol x) P(θx)称为后验概率,即在事情发生之后,分析由各种原因导致发生的概率。
P ( x ∣ θ ) P\left(\boldsymbol x \mid \theta\right) P(xθ)就是极大似然估计MLE的式子。
贝叶斯分类器就是根据先验概率利用贝叶斯公式计算出各种分类的后验概率,选择最大的后验概率所对应的分类结果。
贝叶斯公式可以形象的写成:
后验概率 = 似然函数 ⋅ 先验概率 数据分布 \text{后验概率}=\frac{\text{似然函数}\cdot\text{先验概率}}{\text{数据分布}} 后验概率=数据分布似然函数先验概率
最大后验估计MAP就是将后验概率取得最大值时待估参数 θ \theta θ的值 θ ^ \hat\theta θ^作为参数的点估计。
这里 P ( X ) P(X) P(X)与参数 θ \theta θ没有关系,因此我们只要求分子最大即可,即
θ ^ M A P = argmax ⁡ θ p ( X ∣ θ ) p ( θ ) p ( X ) = argmax ⁡ θ p ( X ∣ θ ) p ( θ ) = argmax ⁡ θ { L ( θ ∣ X ) + log ⁡ p ( θ ) } = argmax ⁡ θ { ∑ x ∈ X log ⁡ p ( x ∣ θ ) + log ⁡ p ( θ ) } \begin{aligned} \hat{\theta}_{M A P} &=\operatorname{argmax}_{\theta} \frac{p(X \mid \theta) p(\theta)}{p(X)} \\ &=\operatorname{argmax}_{\theta} p(X \mid \theta) p(\theta) \\ &=\operatorname{argmax}_{\theta}\{L(\theta \mid X)+\log p(\theta)\} \\ &=\operatorname{argmax}_{\theta}\left\{\sum_{x \in X} \log p(x \mid \theta)+\log p(\theta)\right\} \end{aligned} θ^MAP=argmaxθp(X)p(Xθ)p(θ)=argmaxθp(Xθ)p(θ)=argmaxθ{ L(θX)+logp(θ)}=argmaxθ{ xXlogp(xθ)+logp(θ)}

论文阅读(一)DAP&IAP

Learning to detect unseen object classes by between-class attribute这篇文章首次提出了Zero-shot Learning这一问题的概念,并给出了基于物体属性的解决方法。

算法概要

前提

( x 1 , l 1 ) , ⋯   , ( x n , l n ) (x_1,l_1),\cdots,(x_n,l_n) (x1,l1),,(xn,ln)为训练样本 x x x和相应类别标签 l l l,这样的成对数据共有 n n n组, l l l中一共有 K K K类,用 Y = { y 1 , ⋯   , y K } Y=\{y_1,\cdots,y_K\} Y={ y1,,yK}表示, Z = { z 1 , ⋯   , z L } Z=\{z_1,\cdots,z_L\} Z={ z1,,zL} 为测试集中所包含的 L L L个类别,这里 Y Y Y Z Z Z就分别是可见类和不可见类,二者之间没有交集.

目标

学习一个分类器: f : X → Z f:X\rightarrow Z f:XZ,也就是通过学习分类器,找到训练数据 x x x和相应可见类别标签 l l l与位置类别标签 Z Z Z之间的关系。

思路

通过建立一个人工定义的属性层A,这个属性层是高维的、可以表征训练样本的各项特征,比如颜色、条纹等,目的是将基于图片的低维特征分类器转化到一个表征高维语义特征的属性层。这样可以使得分类器分类能力更广,具备突破类别边界的可能。
基于这个思路,作者提出了两种方法,分别是DAP和IAP.

具体原理

DAP(Directed attribute prediction)

如下图,DAP在样本和训练类别标签之间加入了一个属性表示层A, a a a M M M维属性向量 ( a 1 , ⋯   , a M ) (a_1,\cdots,a_M) (a1,,aM),每一维代表一个属性,且在 { 0 , 1 } \{0,1\} { 0,1}之间取值,对于每个标签都对应一个M维向量作为其属性向量(原型)。通过训练集 X X X的对应属性进行训练,学习得到属性层的参数 β \beta β,之后便可以得到 P ( a ∣ x ) P(a|x) P(ax)
将输入测试实例x输出的标签作为待估计的参数,对于测试实例x,即可利用MAP的思想,找出概率最大的类为输出的估计类。

MAP的原理见此链接https://blog.csdn.net/River_J777/article/details/111500068

在这里插入图片描述
z的后验概率为:
p ( z ∣ x ) = ∑ a ∈ { 0 , 1 } M p ( z ∣ a ) p ( a ∣ x ) p(z \mid x)=\sum_{a \in\{0,1\}^{M}} p(z \mid a) p(a \mid x) p(zx)=a{ 0,1}Mp(za)p(ax)
根据贝叶斯公式:
= ∑ a ∈ { 0 , 1 } M p ( a ∣ z ) p ( z ) p ( a ) p ( a ∣ x ) =\sum_{a \in\{0,1\}^{M}} \frac{p(a \mid z) p(z)}{p(a)} p(a \mid x) =a{ 0,1}Mp(a)p(az)p(z)p(ax)
根据文章中的假设前提各个维度属性条件独立(这个假设有点过强也是DAP主要问题所在)
= ∑ a ∈ { 0 , 1 } M p ( a ∣ z ) p ( z ) p ( a ) ∏ m = 1 M p ( a m ∣ x ) =\sum_{a \in\{0,1\}^{M}} \frac{p(a \mid z) p(z)}{p(a)} \prod_{m=1}^{M} p\left(a_{m} \mid x\right) =a{ 0,1}Mp(a)p(az)p(z)m=1Mp(amx)
根据Iverson bracket [ [ x ] ] [[x]] [[x]],若其中语句为真则为1,否则为0,得 p ( a ∣ z ) = [ [ a = a z ] ] p(a \mid z)=\left[\left[a=a^{z}\right]\right] p(az)=[[a=az]] ,可得:
= ∑ a ∈ { 0 , 1 } M p ( z ) p ( a ) [ [ a = a z ] ] ∏ m = 1 M p ( a m ∣ x ) =\sum_{a \in\{0,1\}^{M}} \frac{p(z)}{p(a)}\left[\left[a=a^{z}\right]\right] \prod_{m=1}^{M} p\left(a_{m} \mid x\right) =a{ 0,1}Mp(a)p(z)[[a=az]]m=1Mp(amx)
由DAP的图模型知 p ( a z ) = p ( a ) p\left(a^{z}\right)=p(a) p(az)=p(a),可得:
= ∑ a ∈ { 0 , 1 } M p ( z ) p ( a z ) [ [ a = a z ] ] ∏ m = 1 M p ( a m ∣ x ) =\sum_{a \in\{0,1\}^{M}} \frac{p(z)}{p\left(a^{z}\right)}\left[\left[a=a^{z}\right]\right] \prod_{m=1}^{M} p\left(a_{m} \mid x\right) =a{ 0,1}Mp(az)p(z)[[a=az]]m=1Mp(amx)
整理得:
= p ( z ) p ( a z ) ∑ a ∈ { 0 , 1 } M [ [ a = a z ] ] ∏ m = 1 M p ( a m ∣ x ) =\frac{p(z)}{p\left(a^{z}\right)} \sum_{a \in\{0,1\}^{M}}\left[\left[a=a^{z}\right]\right] \prod_{m=1}^{M} p\left(a_{m} \mid x\right) =p(az)p(z)a{ 0,1}M[[a=az]]m=1Mp(amx)
省略掉为零的项:
= p ( z ) p ( a z ) ∏ m = 1 M p ( a m z ∣ x ) =\frac{p(z)}{p\left(a^{z}\right)} \prod_{m=1}^{M} p\left(a_{m}^{z} \mid x\right) =p(az)p(z)m=1Mp(amzx)
表示出z的后验概率后,对于输入测试实例x进入分类器后,分别测试不可见标签集 z 1 , ⋯   , z l z_1,\cdots,z_l z1,,zl,求最大:
f ( x ) = argmax ⁡ l = 1 , 2 , … … L p ( z ) p ( a z l ) ∏ m = 1 M p ( a m z l ∣ x ) f(x)=\operatorname{argmax}_{l=1,2, \ldots \ldots L \frac{p(z)}{p\left(a^{z_{l}}\right)}} \prod_{m=1}^{M} p\left(a_{m}^{z_{l}} \mid x\right) f(x)=argmaxl=1,2,Lp(azl)p(z)m=1Mp(amzlx)
根据属性之间独立:
= argmax ⁡ l = 1 , 2 , … . . L ∏ m = 1 M p ( a m z l ∣ x ) ∏ m = 1 M p ( a m z l ) =\operatorname{argmax}_{l=1,2, \ldots . . L} \frac{\prod_{m=1}^{M}p\left(a_{m}^{z_{l}} \mid x\right)}{\prod_{m=1}^{M}p\left(a_{m}^{z_{l}}\right)} =argmaxl=1,2,..Lm=1Mp(amzl)m=1Mp(amzlx)
= argmax ⁡ l = 1 , 2 , … . . L ∏ m = 1 M p ( a m z l ∣ x ) p ( a m z l ) =\operatorname{argmax}_{l=1,2, \ldots . . L} \prod_{m=1}^{M} \frac{p\left(a_{m}^{z_{l}} \mid x\right)}{p\left(a_{m}^{z_{l}}\right)} =argmaxl=1,2,..Lm=1Mp(amzl)p(amzlx)
f ( x ) f(x) f(x) 的输出即为对于输入x的预测标签.

IAP(Indirected attribute prediction)

区别于DAP,DAP的PGM中属性层是在实例层和标签层(包括可见和不可见)之间,而IAP则是将属性层置于可见标签层与不可见标签层之间,用来迁移可见类标签与实例的信息到不可见标签层。

在这里插入图片描述
原理和DAP类似,此时的后验概率为:
p ( a m ∣ x ) = ∑ i = 1 K p ( a m ∣ y k ) p ( y k ∣ x ) p\left(a_{m} \mid x\right)=\sum_{i=1}^{K} p\left(a_{m} \mid y_{k}\right) p\left(y_{k} \mid x\right) p(amx)=i=1Kp(a

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值