小样本学习总结(二)
上一篇文章总结了常见的几种基于元学习的小样本学习算法,不过很多学者任务元学习太过玄学,ICLR2019中的一篇文章A Closer Look at Few-shot Classification,建立了两个普通简单的baseline,发现在CUB和miniImageNet上的性能足以和当前最先进的基于元学习的方法媲美。
Pretraining + Fine Tuning
该文章提出首先在大规模数据集上预训练模型,然后在小规模的support set 上面做fine tuning。
通过一个大数据集来预训练一个神经网络,这个神经网络主要是用来从图片中提取特征,在做few shot预测的时候,要用到这个神经网络,将训练以及测试样本都映射成特征向量,随后比较他们在特征空间中的相似度,比如计算两两之间的cosine similarity。
其中f()是一个去掉全连接层的神经网络,就是用来对图片提取特征的。通过构建support set,使用f()提取特征向量,将K shot个样本的特征向量做均值和归一化。使用query向量与N 个向量做对比,训练分类器。
fine tuning时,固定f(),使用少量的标签样本,通过最小化交叉熵,训练一个新的分类器,最终对小样本任务进行分类。
在 CUB 和 miniImageNet 两个数据集上做实验时,使用四层 CNN 作为 encoder
可以看到,baseline++ 模型和元学习模型相比并没有很大的差距,在一些情况下比 SOTA 的模型还要好。baseline++ 模型仅仅是对 baseline 模型的一个简单修改,所以作者说 baseline 模型的能力被显著地低估了。
结论
1、training set 中需要有足够多的类别,虽然每类的数据可以不多,因此 Few-Shot Learning 并不是真的只需要很少的数据
2、Few-Shot Learning 本来想要去解决新类别的学习问题,但是基于元学习的方法领域迁移能力看起来不够好。
3、Pretraining + Fine Tuning的框架中,通过Fine Tuning可以大幅提升准确率 2%~7% for 5-way 1-shot,1.5%~4% for 5-way 5-shot
4、好的encoder,对于最终的结果起到非常关键的作用。
- 点赞
- 收藏
- 关注作者
评论(0)