- 预训练 + 微调
在大规模数据集上预训练,在support set上微调。方法简单,准确率高。
- 预备知识
1.1 cosine similarity
投影的长度,在-1 和1 之间。
如果长度不同,则就进行归一化。
-
- softmax function
可以将一个向量,映射为一个概率分布
-
- softmax classifier
是一个全连接层 + softmax函数
-
- 概述
大部分的few-shot都是类似的想法,都是用一个大数据集来预训练一个神经网络,用来从图像中提取特征。做few-shot预测的时候,需要用到这个网络。
我们将query和support set中的图像,都映射为特征向量。
这样就可以比较,query和support,在特征空间上的相似度。
比例,计算两两之间的cosine similarity,最后选中相似度高的,作为query的分类结果。
- 预训练
用什么方法训练该网络,都可以。但是神经网络的结构和训练方法,会对结果产生影响。
对特征向量最平均,得到表征松鼠的特征向量,然后是三个特征向量做归一化,得到μ1,μ3.他们的二范数,全部为1.
μ1,μ2,μ3就是对这三个类别的表征。
分类的时候,需要拿query的特征向量,分别和μ1,μ2,μ3做对比,
有了从support中各个类别的特征向量,可以对query进行分类。
此处p为三元素向量,分别表示三个类别的概率。
- Fine-tuning
Fine-turning,可以大幅提高few-shot的准确率。
假设support 有三个类别,则W为三行;p的维度也是3.
Support 中有几个或者几十个标注的样本,每个样本,都对应一个cross entropy。
用support中所有的样本和标签来学习分类器。
Support 很小,因此要加正则化。防止过拟合。
- 训练技巧
4.1 初始化
4.2正则化
可以用entropy来衡量概率p的信息量。
4.3 cosine similarity + softmax classifier
区别:在内积之前,先做归一化。
- 总结