Simple CNAPS
文章来源:CVPR2020
文章地址:https://arxiv.org/pdf/1912.03432.pdf
1、contribution:
文章采用了Mahalanobis距离进行分类,可改进非线性分类器的决策边界,似乎是用在了embedding空间中,此前的观点认为在embedding空间中使用什么度量标准没有那么重要,但是此文章通过实验证明了其重要性。
2、文章提及了欧式距离用于特征分类的合理性和其存在的问题(特征维度不一致,方差相同),对S-CNAPS模型分别使用了欧氏距离和马氏距离,发现欧式距离效果差一些
3、鲁棒性实验提高了6.1%,使用了新的距离度量Mahalanobis距离,最后进行了分类
4、惊喜的发现了我们可以在小样本的情况下估计出一种适合的度量方式
5、一种新的“Simple CNAPS”架构,尽管从原始的CNAPS架构中删除了788,485个参数(占总数的3.2%-9.2%),但仍然实现了这种性能,取而代之的是固定的、非学习的、确定性协方差估计和马氏距离计算。
6、CNN特征提取器足够复杂,可以适应任何最终度量(无论是余弦相似度/点积还是其他),对此观点存疑。
7、CNAPS采用的点积距离,作者采用Mahalanobis距离
8、文章工作相较于CNAPS的区别:
- 作者证明不需要设计自适应分类器仍能达到好的效果
- 作者证明提高Bregman散度的选择可以有效地提高准确率
9、实际网络模型
稍微解释下模型差别:
- CNAPS使用的是经过训练的自适应线性分类器,S-CNAPS使用的是可微但是确定的参数自由的确定距离进行分类
- CNAPS自适应分类器需要778K参数,S-CNAPS不需要那么多参数
10、CNAPS的结构
- 特征提取器
- 在Imagenet数据集上预训练过的Resnet18模型作为特征提取器,并且使用FiLM层对Resnet18模型进行了增强
- 支持及编码后跟着film layer层参数生产
- 一旦设置了flim参数,特征提取器就适应了任务
- CNAPS的一个变体为AR-CNAPS。是通过自适应方法链接先前的adaptor和下一个adaptor
- 分类器
- 分类器是由自适应任务的线性分类器来实现的,将查询图像的概率用softmax函数计算,其中权重W和参数b是由分类自适应网络计算出来的,计算每个class的W和b,然后取均值产生
11、Simple CNAPS
- 特征提取器
- 同样采用预训练的Resnet18模型作为特征提取,
- 分类器
- CNAPS采用任务特殊自适应机制来调整模型,S-CNAPS采用固定的其中dk(马氏距离的平方,矩阵转置算)也是一个固定的计算式Qkt是用特定于任务和类的协方差矩阵估计来的,可见下面公式,其中协方差矩阵是由St标记为k的数据来用特征embedding器来计算得到的作者规定了特定的,当为一个high-shot任务的时候,λ会趋近于1,这时候的Q就主要由决定,如果是low-shot任务的时候,Q由多个因素组合完成。
12、数据集上面的效果体现
- 背景概念:in-domain、out-domain与open-domain
假设数据集A(报纸上的文本数据),B(维基百科上的文本数据),利用A训练一个模型,然后利用A,B分别作为输入去做测试,此时A就是域内数据in-domain,B叫out-domain,而open-domain就更加广泛随意了,例如将AB混合起来成为数据集C,C去用作模型的测试输入,这时C就是open-domain。