【零样本学习】Generalized Zero-Shot Learning via Synthesized Examples

Abstract

提出生成模型来解决generalized zero-shot learning问题。在条件变分自编码器的基础上,可以生成seen/unseen class的特征,然后可以用来训练分类器。我们的编码-解码结构的关键点是反馈驱动机制,其中判别器(多元回归器)学习将生成的特征映射到相应的类别属性向量,从而得到更好的生成器。我们的模型能够生成unseen class的特征,并且用来训练分类器,这有助于减缓GZSL问题中预测偏向于seen class的现象。

Motivation

现有的ZSL方法主要分为:
1)学习视觉特征空间到语义空间的映射,然后通过寻找与unseen class的测试实例最接近的语义向量,来预测其类别(也可以是语义空间到视觉特征空间的映射,或者学习共同的语义空间);
2)将每个unseen class的分类器定义为seen class的分类器的加权和,权重是unseen class和seen class的相似度;
3)学习每个seen class学习其概率分布,并利用语义信息来推断unseen class的分布
即使现有的ZSL方法取得了不错的效果,但他们在GZSL问题上效果很差,会容易偏向于预测为seen class。这是因为ZSL模型仅仅从seen class中学习的。

为了生成特征,基于conditional variational autoencoder构造了生成模型,判别器(多元回归器)则是学习所生成特征到其语义向量的映射。而反馈机制能够使得所生成的特征具有更强的判别性,从而得到更好的生成器。此外,判别器还能适应半监督场景(训练时可以有无标记样本)。
模型训练好后,就能用其为unseen class生成特征,然后训练分类器。由于分类器是从seen/unseen class中学习到的(seen class可以是原始数据也可以是用生成器数据增强后的),在GZSL场景下不会偏向于seen class。
值得注意的是,最后分类阶段是直接预测真实标签(如果是预测语义向量,还需要通过最近邻搜索来预测类别标签),这就可以避免最近邻搜索带来的hubness问题。

我们的模型基于conditional VAE,不同的是:
1、假设隐变量z和语义向量a是不相关的。每个样本 xn 受到隐变量z和语义向量a的影响,隐变量z表示xn与类别无关的非结构化部分(有类似于偏离中心点的方差的意思??),语义向量a表示特定于类别的判别信息(有类似于这个类别中心点的意思??)。由于能够被语义向量a指导学习,所生成特征具有较强的类别判定能力。
2、判别器(实质上是多元回归模型)学习所生成特征到语义向量的映射,有两个好处:为生成器提供反馈机制,使得所生成特征具有较强的判别能力;使得在训练过程中能够使用无标记数据(通过计算在类别语义向量上的概率分布p(a|x))
【零样本学习】Generalized Zero-Shot Learning via Synthesized Examples_第1张图片

Method

我们的模型基于conditional VAE(CVAE可以使得来自不同类别的生成特征易于区分),不同的是:
1、判别器(多元回归模型)学习图像特征到语义空间的映射,保证生成的特征能够表示相应的类别,从而改进了生成器;
2、判别器也使得我们的模型适用于半监督场景。例如,可以用p(a|x)代替语义向量;
3、重建损失确保生成特征与输入的真实特征尽可能接近,也就是说,在这里插入图片描述【零样本学习】Generalized Zero-Shot Learning via Synthesized Examples_第2张图片

整个训练过程是交替优化的,分别优化Discriminator/Regressor和Encoder and Conditional Generator

The Discriminator/Regressor
—— 学习Discriminator/Regressor

The regressor pR(a|x) is learned using two sources of data:
【零样本学习】Generalized Zero-Shot Learning via Synthesized Examples_第3张图片
The regressor的目标函数为:
在这里插入图片描述
上述优化问题是交替优化过程的第一步。它优化参数 θR ,使得即使对生成的伪特征也能正确分类。
Note:在这一步中,我们假设生成器分布在这里插入图片描述是固定的

The Encoder and Conditional Generator
—— 传统的CVAE方法,学习encoder 和 generator

由于生成器生成的特征会被用于后续分类,我们希望the conditional generator pG(x|z,a)近似于真实分布。
Denoting the VAE encoder as pE(z|x) with parameters θE , and the regressor output distribution as pR(a|x), the VAE loss function is given by (assuming the regressor to be fixed)
在这里插入图片描述
第一项是重建误差,第二项使得encoder pE(z|x)接近于先验分布p(z)
The VAE encoder pE(z|x), VAE conditional decoder/generator pG(x|z,a), and the regressor pR(a|x)都服从高斯分布
Note:隐变量(z,a)分解为 pE(z|x) 和 pR(a|x) , 与我们学习disentangled representation的想法一致

Discriminator-Driven Learning
—— 利用discriminator来改进generator

我们希望使用discriminator/regressor来改进generator,通过以下损失函数来实现:
1、假设regressor的参数已经是最优的,产生回归误差的原因是generator表现很差
在这里插入图片描述
这个loss促使generator的生成特征能够较准确地回归到语义向量
2、促使generator生成class-specific特征,即使是对于在先验分布p(z)中随机采样的z
在这里插入图片描述
这个loss确保了生成特征与真实数据一致(所生成特征会被用于后续分类,所以要求它的质量高)

Note: 上述两个loss增强了生成特征在这里插入图片描述与语义向量a的一致性,还需要迫使隐向量z和语义向量a不相关。

3、利用encoder来确保隐变量z采样分布与从生成特征中的采样分布相同
采样分布q(z)可以来自先验分布p(z)或者后验分布p(z|xn)
【零样本学习】Generalized Zero-Shot Learning via Synthesized Examples_第4张图片
所以,学习the generator and encoder的目标函数为(交替优化过程的第二步):
在这里插入图片描述

你可能感兴趣的:(Zero-Shot)