论文阅读:Leveraging the Invariant Side of Generative Zero-Shot Learning
动机
基于GAN的ZSL方法,通过生成样本的方式,将ZSL问题转换成全监督问题
本文的动机是利用(域)边的信息的GAN来生成特征,而不是生成样本。
生成特征比生成样本好在那里?
generative ZSL不变的方面是每个类的soul sample,变的方面是每一个生成的样本,具体来说,seen类,每个生成样本是2048维的Resnet特征,而soul sample是seen类所有特征的均值
GAN-based方法的主要问题:
- diversity多样性:怎么保证有限(一个)或者详细的属性条件下的生成多样性
- reliability可靠性(discrimination判别性):怎么确保每个生成样本和真实样本及其语义描述高度相关?
方案
- 利用WGAN生成未见类特征,输入是随机噪声和语义描述
- 多个soul samples用来对生成器进行调整
- 利用信心分数的未见类样本微调最后的结果
问题定义
ZSL:f:Xu→Yu
GZSL: f:{X,Xu}→Y∪Yu
整体的想法
- 部署CWGAN是为了让类别嵌入(属性,语义描述)能够并入生成器G和判别器D
- 因为{A,Y} 和 {Au,Yu} 是有联系的,即 A 和 Au 有共同的语义空间,条件GAN如果能够为类生成高质量的样本,也可以期待它为unseen类生成高质量的样本
两个创新点
- 利用soul sample来调整生成器
- 利用高信心分数的unseen类样本来微调后面的unseen类样本
soul sample的好处
soul sample缓解了域漂移问题
训练
G的loss:
LG=−E[D(G(z,a))]−λE[logP(y∣G(z,a))]
其中,随机噪声z∼N(0,1),语义描述a。第一项是Wasserstein损失,第二项是监督分类损失。
D的loss:
LD=E[D(G(z,a))]−E[D(x)]−λ(E[logP(y∣G(z,a))])+E[logP(y∣x)]−βE[(∥∇x^D(x^)∥2−1)2]
最后一项是强制的Lipschitz约束,x^=μx+(1−μ)G(z,a),μ∼U(0,1)
k个soul sample
c类所有样本的均值就是c类的soul sample
每个类别c应该有多个soul sample来解决多视角问题
作者提出,将所有特征聚类成k个簇。为了简便,论文中k=3
每个类训练样本的soul sample的定义:
skc=∣Xkc∣1∑xi∈Xkcxi
每个类生成样本的soul sample的定义:
skc=∣X~kc∣1∑x~i∈X~kcx~i
其中,x~i=G(z,a)是生成特征。
两个正则项
每个生成样本至少要靠近某一个soul sample
LR1=n11∑i=1n1minj∈[1,k]∥∥x~i−sjc∥∥22
每个生成的soul sample必须靠近至少一个真实的soul sample
LR2=C1∑c=1Cminj∈[1,k]∥∥s~jc−sjc∥∥22
预测unseen类
论文训练一个softmax分类器,对生成样本进行分类
minθ−∣X∣1∑(x,y)∈(X,Y)logP(y∣x;θ)logP(y∣x;θ)=∑i=1Nexp(θiTx)exp(θyTx)
向量的熵可以用来测量结果的确定性。如果一个概率向量比较低的熵,我们对结果更有信心。
所以我们利用分类熵较低的样本,部署他们作为参考来对其他的未见类样本进行分类。
样本熵
E(y)=−∑c=1Cyclogyc
本文的模型包含两个分类器。第一个分类器用来评估分类信心,第二个分类器用来利用正确分类的样本。本文的领样本是杯中,第一个分类器是一个生成假样本上训练的softmax,第二个分类器可以是一个训练的分类器,比如softmax分类器,SVM,或者就是一个不用训练的最近邻分类器。