论文阅读笔记《Improved Few-Shot Visual Classification》
核心思想
本文提出一种基于度量学习小样本分类算法,在CNAPS算法的基础上,对分类器部分进行改进,引入一种新的距离度量方式,减少了参数数量并且提高了分类的准确率。下面我们首先介绍CNAPS算法。
如上图所示,CNAPS算法包含两个部分:特征提取器(黑色虚线框内的部分)和分类器(红色框内的部分)。其中特征提取器是由带有FiLM层的ResNet-18网络构成的,如下图所示
FiLM层的作用是将BN层输出的特征图进行一个仿射变换,,然后再进入**函数层。而和两个参数则是利用特征提取器自适应模块生成的,该模块也包含两个部分:和。由一个深层网络构成,根据支持集生成对应的任务表征,而则是根据任务表征生成每个残差块对应的和参数。经过该特征提取网络后得到查询图像和支持集图像对应的特征和。对于支持集中每幅图像的特征按照类别通过平均池化的方式得到每类图像对应的类别特征,然后再经过类别自适应模块,生成分类器中每各类别对应的权重和偏置。最后利用下式得到查询集图像属于各个类别的概率值
本文保留了CNAPS算法中特征提取的部分,但改进了分类器部分,使用一种新的距离度量方式取代了CNAPS算法中的类别自适应模块,查询集图像属于各个类别的概率值计算过程如下
式中是针对类别和任务的协方差矩阵,其计算过程如下
式中表示任务中类别内各个图像间的协方差矩阵,计算过程如下
而表示任务中所有类别的图像之间的协方差矩阵,计算过程与相似,只不过将改为。表示正则化参数,权重计算过程如下
当每个类别仅包含一张图像,即时,,则主要依赖于正则化参数的取值,而随着每个类别中包含的图像越多,的值越接近于1,且任务中类别内各个图像间的协方差矩阵估计的约准确,则主要依赖于。作者指出该方法不仅减少了大量的网络参数(相对于CNAPS的分类器部分),且能够关注到不同类别图像之间的分布情况,之前采用的欧式距离度量方式是假设所有类别图像的协方差是统一的,而本文采用的方式则是考虑到不同类别的图像其协方差是不同的,更加接近于真实情况,如下图所示
实现过程
网络结构
特征提取网络是由带有FiLM层的ResNet-18网络构成,分类器部分不需要网络结构。
创新点
- 设计了新的距离度量方式,考虑不同类别图像之间的协方差关系,取代了CNAPS算法中分类器部分
算法评价
本文是在对CNAPS算法进行的改进,虽然CNAPS算法对应的这篇文章《Fast and flexible multi-task classification using conditional neural adaptive processes》我并没有读过,但在本文中做了非常详细的说明。相对于CNAPS算法,本文主要是改进了分类器部分,用一种无参数的距离度量方式取代原有的分类器网络,在减少参数数量的同时,提高了分类的效果。而且本文中有一幅图非常有趣,利用一个散点图表示出各种类型的小样本学习算法之间的关系,如下图所示
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。