Semantic Autoencoder for Zero-Shot Learning

前言

zero-shot learning(ZSL)是近几年研究的一个热点问题,每年在计算机视觉领域的顶级期刊都会有几篇典型的论文被刊登,比如CVPR。在传统的计算机视觉任务中,一般以多分类问题为基础,比如我们要识别出几个类别:狗、椅子、人,在训练分类模型时,我们会输入三种类别的图像数据去训练模型,对于给定的一个新图片,模型就可以给出一个标签(这张测试图像属于狗、椅子或人)。这个时候就有学者给出不同的想法:

 

  • 当训练样本的标签类别和测试样本的标签类别一致时,即测试样本的图像类别都是训练样本中出现过的,这属于我们常说的多分类任务。
  • 当测试样本的标签类别和训练样本不一致时,即测试样本的图像类别有一类或者更多类没有在训练样本中出现过,这个问题就属于zero-shot learning研究的范畴。

比如上述的多分类任务,突然待测图片是一张汽车,计算机识别的时候就有了困难,计算机通过模型学习得到知识中没有这个标签,但又不得不给出预测......而ZSL从一种新的角度来解决这种问题。在ZSL中,测试样本的某一类别在训练样本中未出现,但是可以通过某些方法提取这个类别的特征,然后通过语料知识库,可以将这个未知的样本描述出来。

zero-shot learning相对比计算机视觉的其他问题比如多分类、目标检测等,一个重要理论基础就是利用高维语义特征代替样本的低维特征,使得训练出来的模型具有迁移性。我们知道卷积神经网络具有将低维的图像特征(像素)抽象为高纬的语义特征,在ZSL研究领域,使用语义向量(词向量)表述高维语义特征,比如输入卷积神经网络的是一张汽车的图像,低维得特征就是一个个像素点(像素矩阵),通过卷积层的逐步加深,最终获得“轮子”、“车灯”等部分特征,这样一个汽车的高维语义为“有轮子,车灯,玻璃‘’那我们就可以根据对应的词向量预测类别。

论文《Semantic Autoencoder for Zero-Shot Learning 》的学习

现有的zero-shot learning(ZSL)模型通常学习从特征空间到语义嵌入空间(例如属性空间)的投影函数。然而,这样的投影函数只涉及预测看到的类语义表示(例如属性预测)或分类。将模型应用于测试数据时,如果测试数据中包含训练数据中不存在的类别,ZSL模型会涉及到训练集和测试集的领域漂移(domain shift)问题。作者基于学习一个语义自编码器一定程度上解决了domain shift问题。整个文章最核心的算法是在自编码器进行编码和解码时,使用原始数据对解码器施加额外的约束,即编码后的数据能够尽可能恢复为原来的数据,以此获取一个SAE模型。然后作者将这个方法应用在六个标准数据集和聚类问题中,效果很好,而且计算效率得到提高。

  • 自编码器结构                

Semantic Autoencoder for Zero-Shot Learning_第1张图片

上图为作者使用的自编码器,对原始样本进行编码,图中的X为样本,S为自编码器的隐层,X ̂为由隐层重建的X的表示。论文里的隐层S层为属性层,和普通的自编码隐层不同,它是原样本X的抽象语义特征表示。

  • SAL内容

1.设输入层到隐层的映射为W,隐层到输出层的映射为W*,W和W*是对称的,即有W*等于W的转置。由于我们希望输入和输出尽可能相似,则可设目标函数为:

2.作者希望中间层S能够具有抽象的语义,能表示样本属性或者类别标签,所以加入约束WX=S,其中S是数据特征X对应的attribute vector 。每个样本x都可以表示为一个向量s,这个s是训练集已有的。原本自编码器属于非监督学习,通过这一约束条件就成为了监督学习问题,此时目标函数可以表示为:

因为

所以上述优化变为:

为了对上式3进行优化求解,进一步转化为:

在WX = S 这一强约束条件下,对上面式子优化比较困难,作者采取了一个很nice的思路,将强约束条件转为下面的优化问题:

现在,上面的式子是一个标准的二次方程式,是一个凸函数,有全局最优解。接下来是对公式5的优化求解:利用矩阵迹的运算对公式5进行改写(Tr(X) = Tr(X转置) and Tr(W转置乘以S) = Tr(S转置乘以W))得到公式6:

对上式求导,并让导数等于0可得到:

这里作者假设:

最终得到:

上面式子可写成Sylvester 等式的形式,可以使用Bartels-Stewart算法进行求解,借助Matlab工具箱可以直接求解,如下:

Semantic Autoencoder for Zero-Shot Learning_第2张图片

文章需要学习的内容基本结束了,论文后面给出了算法在一些数据集的效果以及在监督聚类的表现。

总结

文章最大的亮点在于:1. 提出了一种新的用于ZSL的语义自编码模型(SAE);2. 提出了对模型进行高效的学习算法;3.算法可用于监督聚类问题。作者通过加入WX=S这一约束条件,将非监督的自编码器变为监督的自编码器的同时,也将图像特征X到语义向量S这一映射加入到模型中。然后通过对优化公式一系列的转化,变为Matlab可以高效求解的问题。

参考文献

[1] Kodirov E, Xiang T, Gong S. Semantic Autoencoder for Zero-Shot Learning[J]. 2017:4447-4456.

[2]论文的代码GitHub:https://elyorcv.github.io/projects/sae

 

 

 

 

 

你可能感兴趣的:(文献阅读)