Zero-shot Learning零样本学习 论文阅读(一)——Learning to detect unseen object classes by between-class attribute transfer
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:X→Z,也就是通过学习分类器,找到训练数据 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(a∣x),
将输入测试实例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(z∣x)=<