Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images 论文笔记

摘要

生活中有多种多样的提示牌,指示着人们各种信息,这种我们人类很容易理解的信息表示对于机器来说却很难理解,作者正是从小样本学习的角度来来解决生活中的提示牌分类问题,本篇论文的主要创新点在于作者设计了一种变分原型编码器(variational prototyping-encoder, VPE)去学习真实世界的提示牌向提示牌对应的原型的转换。整体框架如下:


在这里插入图片描述

方法

作者利用one-shot的学习方法来解决路牌分类任务,核心思想即是利用VPE的来抽象出每个不同类别的路牌的编码空间,从而可以通过比对编码器提取出的特征来比对真实世界的路牌属于哪个类别。如上述框架图所示,模型的输入是真实世界的一个指示牌,输出则为其对应的类别的原型,即模型希望同一类别的真实世界的路牌均可以提取出一个统一的特征。

变分原型编码器(VPE)

作者设定输入的真实图集合卫X, 对应的原型图片为 t。作者采用和变分编码器(VAE)类似的方式,从一个一直的先验概览分布中采样得到编码z,本篇论文采用的依然是N(0,1)即均值为0方差为1的正太分布,那么模型需要优化的目标即为:


在这里插入图片描述
上面公式中即最大化每个编码对应的类别的概率,来实现真实图片像原型图片的转换。在实际的训练中,作者采用的损失函数为:

在这里插入图片描述
在训练完成以后,测试时,作者将直接计算输入的真实图片的编码与所有原型图片的编码的高斯距离,距离最近的即是真实图片所对应的类别。

实验结果

作者通过将同一类别的真实图片都转换为一张对应的原型图片,使其编码器较好的提取出了每一个类别的具有判别性的编码特征,以下为其不同类别所提取编码的可视化结果:


在这里插入图片描述
此外, 在分类准确度上,作者也较高的提升了已有算法对交通路牌分类的准确率:

在这里插入图片描述

总结

这篇论文已经开源了源代码,笔者也阅读了其源代码,其代码实现与VAE基本类似,较为简单易懂,作者提出的创新点也只是针对于路牌的识别,思路出发点较为简单,即通过约束条件来加大类间距离。但是扩展到其他的更大规模,多样的数据集的小样本分类问题效果未必会好。