文中涉及的概念
Few-shot learning
每个类只有很少的可见例子(一般小于10),训练一个模型对其分类。
Zero-shot learning
现有一些可见的例子和一些不可见的例子,使用可见的例子训练模型能够对不可见的例子进行分类。
Generalized zero-shot learning
现有一些可见的例子和一些不可见的例子,使用可见的例子训练模型能够对所有的例子进行分类。
Multi-modal alignment
多模态对齐,寻找不同模态(如图像、文字、语音)中的属性的对应关系,文中主要是指多个VAE中的latent space的属性的对齐。
本文主要的工作贡献
- 训练了多个VAE从不同模态,如图像和类属性,中加密和解密特征,得到隐特征
- 通过对齐参数分布和减小跨模态重构损失来使隐特征多模态对齐
- CADA-VAE证明了用于广义零镜头学习的交叉模态嵌入模型比数据生成方法具有更好的性能,建立了新的state-of-the-art。
主要的难点详解
数据增强的方式
不是增强数据本身而是增强数据的表达(隐特征)
VAE
变分自编码是自编码的一种,其学习得到的特征能够用于生成更多的数据。也就是我们想通过很多可观测到的X图像分布来构造出z特征,通过调整z的属性来得到更多不同的X1图像分布,所以我们的任务可以描述为:
- 使用X通过编码器计算得到z
- 通过z通过解码器计算得到X1
- 让q(z)与p(z|X)近可能的相似
这里的q(z)与p(z|X)是两个概率分布,通常计算两个概率分布的距离公式采用KL散度:
训练VAE的损失函数:
模态对齐的方式
这里两种模态的特征都是用VAE生成的,第一个模态的特征z_1是使用图像生成的,第二个模态的特征z_2是使用类属性生成的,要使他们的属性对齐文中采用了两种损失函数。
交叉对齐损失
实际上就是将一张图像x与其类属性分别通过编码器E_1、E_2后得到的z_1、z_2交叉通过解码器D_1、D_2得到的x'计算欧式距离
分布对齐损失
这里实际上是在计算z_1、z_2的概率分布的相似程度,采用的是Wasserstein距离:
而分布对齐损失就是所有组合情况的Wasserstein距离之和:
整体的损失函数
就是上述三个损失函数的加权求和:
总结
作者提出的zero-shot learning的思想主要是如何将图像通过一个VAE得到的特征与该图像对应的类属性通过另一个VAE得到的特征对应起来,这样就可以将类属性提取的特征可以与图像提取的特征进行比较,当一个未知图像进入模型后就能计算出它的特征与各个类属性的特征之间的距离,根据各个距离之间的比例就能实现zero-shot learning。