Zero-shot learning via attribute regression and calss prototype rectification论文解读

本论文由Changzhi Luo,2018年发表于IEEE。zero-shot learning问题即是,在训练集中存在seen类和unseen类,在测试时,我们要区分出unseen类,并给出标签。seen类代表那些在训练集中有类原型,也有样本的类。unseen类指那些,只有类原型,或者说,只有语义描述,但是没有真实样本的类。

论文创新点:

  • 提出了一种类原型修正方法,将seen类和unseen类连接了起来,解决了投影域偏移的问题。
  • 提出了一种交替学习策略,即交替执行属性回归模型训练和类原型修正模型训练
  • 提出了一种新的目标函数,兼顾了属性回归模型精度和类原型差别
引子

现有的zero-shot learning (ZSL)问题都是利用中间级信息(如属性等),将信息从seen类传到unseen类。比如,从seen类中训练得到seen类样本和其标签之间的映射关系,再将这样的映射关系应用到unseen类。但是这样的方法,不可避免会造成两个问题:投影域偏移和hubness问题。根源在于,训练模型的时候,只使用了seen类,而忽视了unseen类。因此,本文也沿用了将ZSL问题视为属性回归问题,不过,在学习回归模型是,考虑所有类的数据分布,包括unseen类,从而对类原型进行修正,用修正过的数据重新训练模型。如此迭代往复,实验证明,这种方法可以缓解甚至解决投影域偏移和hubness问题。
投影域偏移问题:由seen类训练得到的投影模型和unseen类训练得到的投影模型不兼容。
hubness问题:有的样本会出现在其他类样本的最近邻列表里面,会导致精度下降。

类原型修正

类原型是一个类的向量表示方法,也被称之为类中心或者类范例。seen类存在样本,有其类原型。unseen类没有样本,但是也有其对应的类原型。在这里插入图片描述如上图所示,蓝色的代表一个样本,红色的代表类原型。相同形状的代表属于同一类。可以看到圆形,正方形,三角形,菱形有样本,也有对应的类原型,就是seen类。因为训练集中有其对应的样本。反之,剩下三个多边形只有类原型,没有样本,就为unseen类,训练集中没有其对应的样本。
之前的方法为只利用了seen类训练模型,在测试时,用的unseen类。换言之,测试标签和训练标签是互斥的,就算seen类和unseen类再相似,也会产生投影域偏移的问题。因此,我们必须引入一些额外的信息,称之为,side information,也被称为类的中级语义信息。即,我们可以通过一些映射,将类原型映射到语义空间去(就是通过一些函数,把样本变个样子,seen类和unseen类都有类原型,所以都可以映射)。这样的目的是,使得两个不同的类距离远一些,这样来了一个测试样本,我们按照同样的映射方式,将这个样本映射到语义空间。它离哪个类原型近,就是哪个类。但是用最邻近很容易产生hubness问题。因此,作者提出了类原型修正的方法,用在训练回归模型时,不断修正类(包括unseen类)原型。为了解决域偏移的问题,将unseen类和seen类一起训练模型。这样,用不断修正的所有类的类原型训练回归模型,既解决了投影域偏移的问题,也解决了hubness问题。
由于seen类有自己的样本,因此,可以用它的样本来修正类原型:
s ^ p = μ 1 s p + α 1 n ∑ i = 1 n s p ( i ) \hat s_p= \mu_1s_p + \alpha \frac{1}{n} \sum_{i=1}^ns_p^{(i)} s^p=μ1sp+αn1i=1nsp(i)
μ \mu μ类似于冲量,防止震荡或发散; α \alpha α是权重参数,权衡人类标注类原型和语义表达均值。
对于unseen类,因为没有样本,所以不能用样本的语义表达均值修正类原型。本文采用了unseen类周围的seen类原型的关系,来修正unseen类原型。
s ^ p = μ 2 s p + β 1 k ∑ s j ∈ N k ( s q ) g ( s q , s j ) s j \hat s_p= \mu_2s_p + \beta \frac{1}{k} \sum_{s_j\in N_k(s_q)}g(s_q,s_j)s_j s^p=μ2sp+βk1sjNk(sq)g(sq,sj)sj
其中, β \beta β类似于 α \alpha α;
μ 2 \mu_2 μ2类似于 μ 1 \mu_1 μ1;
g ( A , B ) = A ∗ B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ g(A,B)=\frac{A*B}{||A||||B||} g(A,B)=ABAB;
N k ( s k ) N_k(s_k) Nk(sk)代表 s q s_q sq周围的k个邻近类

损失函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值