【零样本学习】Zero-Shot Learning via Class-Conditioned Deep Generative Models

Motivations

ZSL问题为了能够泛化到unseen class,通常做了类别辅助信息可用性的假设(辅助信息可以帮助从seen class迁移知识到unseen class)。辅助信息可以是类别属性、词向量等或者是unseen class和每个seen class的相似度。
现有的大多数ZSL方法假设每个类别可以用语义空间中的一个固定点表示,而一个点不足以解释类内方差。而生成模型有很多优势:可以通过特征学习来揭示数据的复杂结构;生成数据的能力可以将ZSL问题扩展为transductive/semi-supervised形式;在seen class的数据很少,而seen/unseen classes的无标记数据很多的情况下,或许也很有用( few-shot learning )。
受此启发,设计了一种深度生成模型来解决ZSL问题。模型学习attribute-specific的潜在空间分布( pψ(z|a),服从高斯分布),作为VAE模型的先验分布,有助于VAE学习判别性更强的特征表示(相当于构造更好的生成器??)。此外,
模型的生成能力使其能够扩展为transductive/semi-supervised形式(通过无监督学习)。模型参数是由seen class的标记数据端到端地学习得到的。(在semi-supervised/transductive也可以用无标记数据)
测试时,对于给定的输入x,首先通过VAE的识别模型 qφ (z | x) 将x映射到隐变量空间z,然后寻找能够使得VAE的下界(对数似然函数变分下界)最大化的a ,根据a可以得到对应的标签y 。这相当于寻找pψ(z|a)来使得与qφ (z | x)的KL散度最小。

Method

在这里插入图片描述
Note :我们的框架利用attribute-specific的潜在空间分布 pψ(z|a) 来作为隐变量z(关于某个x)的先验分布。(Class-Conditioned的含义)

Variational Autoencoder
VAE可以通过隐变量学习数据的复杂模型。VAE的目标是利用识别模型qφ (z | x)来近似隐变量的后验分布pθ (z | x),通过最大化变分下界来实现:
在这里插入图片描述
假定qφ (z | x)是服从高斯分布的。

Inductive ZSL
不同于标准VAE的隐变量z的先验分布是服从标准正态分布,我们假设每个zn是从attribute-specific的高斯分布 pψ(z|a) 中得到的
在这里插入图片描述
所以,变分下界变为:
在这里插入图片描述
Trick: Margin Regularizer
上述目标函数让 qφ (z | x) 与 pψ(z|a) 尽可能接近,但是我们的目标是分类,所以引入最大化间隔准则来促使qφ (z | x)与其他类别的 pψ(z|Ac) 越远越好。所以,将−KL( qφ(z|x) || pψ(z|a) ) 用 −[KL( qφ(z|x) || pψ(z|a) ) − R ] 代替。其中R表示qφ (z | x)与其他类别的 pψ(z|Ac) 的最小KL散度。
在这里插入图片描述
正则化项−[KL( qφ(z|x) || pψ(z|a) ) − R ] 使得真实类别与最易混淆的那个类别( the next best class)能尽可能分离开。但是R是不可微分的,导致优化困难,所以用以下近似:
在这里插入图片描述
因此,最大化R,等价于最大化R的上界,最终目标函数为:
在这里插入图片描述
测试时,对于给定的输入x,首先通过VAE的识别模型 qφ (z | x) 将x映射到隐变量空间z,然后寻找能够使得VAE的下界(对数似然函数变分下界)最大化的a ,根据a可以得到对应的标签y
在这里插入图片描述
相比于传统的ZSL方法通过计算测试样本x的embedding向量与所有类别class prototypes(也是一个点)的欧式距离,我们的方法考虑了类别分布,因此预测效果更好(特别是在类内方差较大的情况下)

Transductive ZSL
在Transductive ZSL场景下,有unseen class的无标记数据,所以提出无监督方法利用这些数据来refine the inductive ZSL。
可以用重构误差来利用无标记数据:
在这里插入图片描述
但是,该方法完全忽视了类别信息,效果不理想。由于 inductive ZSL模型能够为unseen class提供有一定置信度的预测结果(通过计算测试类别分布),而这些分布可以指导测试样例。
对于unseen class的测试样例,应用inductive ZSL模型:
在这里插入图片描述
为了使得在这里插入图片描述更加sharper(对于unseen class的测试样例,最有可能的类应该占在这里插入图片描述的主导地位)
在这里插入图片描述
其中,在这里插入图片描述
Note:sharper是在这里插入图片描述中的平方项实现的,用在这里插入图片描述来对概率标准化,能够防止大的类别扭曲隐空间。
然后,用KL散度来使得在这里插入图片描述在这里插入图片描述尽可能接近:
在这里插入图片描述
结合之前的重构误差,可以得到unseen class无标记数据的目标函数:
在这里插入图片描述
再与inductive ZSL模型相结合,得到Transductive ZSL的目标函数:
在这里插入图片描述
前者用seen class的标记数据训练,后者用unseen class的无标记数据训练。

我们的框架还能够直接应用到few-shot learning(unseen class有少数样本)中,直接在unseen class上优化在这里插入图片描述即可。


版权声明:本文为x124612原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。