小样本学习总结(二)

举报
Deep_Rookie 发表于 2020/10/22 20:38:53 2020/10/22
【摘要】 上一篇文章总结了常见的几种基于元学习的小样本学习算法,不过很多学者任务元学习太过玄学,ICLR2019中的一篇文章A Closer Look at Few-shot Classification,建立了两个普通简单的baseline,发现在CUB和miniImageNet上的性能足以和当前最先进的基于元学习的方法媲美。Pretraining + Fine Tuning该文章提出首先在大规模数...

上一篇文章总结了常见的几种基于元学习的小样本学习算法,不过很多学者任务元学习太过玄学,ICLR2019中的一篇文章A Closer Look at Few-shot Classification,建立了两个普通简单的baseline,发现在CUB和miniImageNet上的性能足以和当前最先进的基于元学习的方法媲美。

Pretraining + Fine Tuning

该文章提出首先在大规模数据集上预训练模型,然后在小规模的support set 上面做fine tuning。

通过一个大数据集来预训练一个神经网络,这个神经网络主要是用来从图片中提取特征,在做few shot预测的时候,要用到这个神经网络,将训练以及测试样本都映射成特征向量,随后比较他们在特征空间中的相似度,比如计算两两之间的cosine similarity。

image.png

其中f()是一个去掉全连接层的神经网络,就是用来对图片提取特征的。通过构建support set,使用f()提取特征向量,将K shot个样本的特征向量做均值和归一化。使用query向量与N 个向量做对比,训练分类器。

fine tuning时,固定f(),使用少量的标签样本,通过最小化交叉熵,训练一个新的分类器,最终对小样本任务进行分类。

在 CUB 和 miniImageNet 两个数据集上做实验时,使用四层 CNN 作为 encoder

可以看到,baseline++ 模型和元学习模型相比并没有很大的差距,在一些情况下比 SOTA 的模型还要好。baseline++ 模型仅仅是对 baseline 模型的一个简单修改,所以作者说 baseline 模型的能力被显著地低估了。

image.png

image.png


结论

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,对于最终的结果起到非常关键的作用。




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。