论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》

核心思想

  本文提出一种利用变分自动编码器(VAE)生成原型图像(Prototypical Images),并利用最近邻算法解决小样本的图标或标志分类问题的算法。整个算法思想很简单,首先作者指出实际中我们拍摄采集到的图片通常都会有背景模糊,形状或光照干扰等因素,用这些图片做小样本分类的话自然效果很差。于是作者提出了原型图像的概念(Prototypical Images与原型网络 Prototypical Network中原型的概念完全不同,请注意区分),就是那种标准的,没有任何形变和模糊的图像,类似于下图
论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》
  如果用这种图像做分类,那效果应该好很多。作者按照这个思路提出了一种基于变分自编码器(VAE)的原型图像生成网络,关于VAE我在另一篇博客中介绍过(点击此处),此处就不再详细介绍了。大体的过程就是将一个图片xx输入编码器,得到一个隐藏变量zz,然后经过解码器重构得到x^\hat{x},但注意本文的方法略有不同,本文不是想得到重构的x^\hat{x},而是对应的原型图像tt,这就形成一种图像迁移的效果,输入xx,输出tt。经过训练之后,网络编码器具备了将图像转化为具有表征能力的特征向量,在测试时只需要将支持集和查询集的图像都转化为对应的特征向量,然后按照最近邻方法进行分类(距离度量采用欧式距离),就能得到对应类别了。训练和测试过程如下图所示
论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》

实现过程

网络结构

  如下图所示
论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》

损失函数

  与一般的VAE损失函数略有不同,本文要比较原型图像tt和输入图像xx之间的重构差异
论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》
对于重构损失pθp_{\theta}本文采用的是二元交叉熵损失函数BCE。

创新点

  • 引入原型图像的概念,利用VAE结构生成原型图像

算法评价

  本文利用VAE结构生成原型图像,并利用编码器作为特征提取器,通过比较隐藏向量之间的欧氏距离寻找最为接近的样本,实现分类任务。正如作者自己左说,这个VAE结构可以看做一种降噪网络,把图像中的干扰信息排除,保留最直观最重要的原型图像。但本文无论是采用的VAE生成式模型还是利用隐藏空间中的特征向量进行最近邻分类都不是非常新颖的想法,唯一的创新可能就是原型图像这一概念了吧,但这一概念也并不具备普遍性,如果数据集图像质量普遍较高,这一做法就退化为一个简单的最近邻分类了。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images》