Preliminary
Few-Shot Learning 很简单,但是却能达到比较高的准确度,相反一些复杂的模型反而不能达到很高的准确率
1. Cosine Similarity
余弦相似度可以衡量两个向量的相似度
- 假设两个向量的长度都是1:那么它们余弦相似度的计算方法如下
- 若长度不等于 1 ,则需要先对它们做一个归一化:
2. Softmax Function
- Softmax 函数的输入是任意 k 维的向量
- 把向量的每个元素做指数变换,得到 k 个大于 0 的数
- 对所有元素做归一化,使其总和为 1
- 输入为 k 维,输出也为 k 维,输出是一个概率分布
- Softmax示例:Softmax会让最大的值变大,其余的值变小
- Softmax 的名字很形象,是更为 soft 的 max
3. Softmax Classifier
- 假设类别有 k 个,那么输出就是 k 维的:
- W 有 k 行,每一行对应一个类别
Few-Shot Prediction using Pretrained CNN
- 我们用一个 CNN 来提取图片的特征,可以用各种方法来预训练这个 CNN,但是不同的训练方法的效果不同
- 对 Query 的图片用 CNN 提取特征向量后进行归一化,它的二范数等于一。对 Support 的三个向量也做相同的操作,然后让 q 对 Support Set的三个特征向量分别求余弦相似度后取 Softmax,显然 q 离
μ
1
\mu_1
μ1 最近,所以模型判断 Query 和 Support Set 的第一张图是一样的:
Fine-Tuning
- 研究表明预训练后再做 Fine-Tuning 能大幅度提高准确率