文档章节

小样本问题该如何选择学习方法? - 知乎

o
 osc_cx8uhydz
发布于 07/01 10:43
字数 1112
阅读 47
收藏 0

精选30+云产品,助力企业轻松上云!>>>

文中会出现几组论文A Closer Look at Few-shot Classification[1]的实验结果,为了便于大家理解实验设置,在文末进行了极简的图文描述,详细内容可以参见原文。

https://arxiv.org/abs/1904.04232arxiv.org

现阶段绝大多数小样本学习任务会转化成本n-way k-shot形式,下面提到的小样本学习默认为n-way k-shot问题。

对于目前刚接触小样本学习或者了解不深入的人来说通常会对小样本学习方法普遍存在这样一个认知:小样本方法在不依靠外部数据的情况下可以独立解决few shot问题,即当我们的样本量有限时,可以将现有样本构建成n-way k-shot的形式,利用(MAML、Reptile或者度量等)进行训练测试,得到一个不错的结果;对小样本学习算法和深度学习有过研究的人会发现这是一种错误的想法,如果这种方法行得通,那确实也就成了如这篇文章所说的悖论。Matrix-11:小样本学习的悖论

这里再次强调下,几乎当下所有的小样本学习方法都是迁移学习的一种形式(包括MAML、Reptile、原型网络、关系网络等),小样本学习方法需要借助外部信息做为先验知识,才能有效开展学习任务。这个外部信息在N-way K-shot任务中指的就是Base class,而我们手上有限的样本指的是Novel class,当然这个Base class不可以是任意的,需要和Novel class属于同一个或者接近的Domain(也就是说先验知识要和我们要学习的目标知识相近)。如果相差太大,会大大影响在Novel class上的测试结果,实验结果对比结果如图一。

图一:ResNet-18 backbone下不同domain5shot的学习结果

将CUB数据集切分成Base class和Novel class数据集进行学习,效果良好;在miniImageNet上切分成Base class和Novel class数据集进行实验,结果也还不错;但是当以miniImageNet做为Base class,CUB数据集做为Novel class时,学习效果会明显下降。其中Baseline在众多模型里受影响是最小的

在N-way K-shot任务中,随着N和K变化对实验结果的影响在上一篇文章中做过探讨,可参见下面链接。

Curry:小样本学习之N-way K-shotzhuanlan.zhihu.com图标

不同模型之间的对比结果在A Closer Look at Few-shot Classification这篇文论中也做过验证,如表一和表二所示。

表一: Meta-testing中准确率随N变化的实验结果 表二: shot=1和shot=5时不同backbone下的实验结果

随着样本类别数量N的增加,虽然各个模型的准确率都呈现不同程度的下滑,但是Baseline ++在大多数情况下都明显优于其他模型;随着每一类样本量K的增加,我们可以看到,1shot时,不同模型在不同backbone下各有优劣;当K值增加到5时,Baseline++在各个backbone下都成了最优的

总结:考虑到Base class和我们目标任务中Novel class没办法完全在同一个domain的情况,同时当我们手上的样本数量又有限时(这里不考虑transform和GAN等一系列数据增强方法),结合上述讨论以及实验结果:首先应该尝试的是pre-training + finetune方法(即Baseline和Baseline++),而不是元学习中MAML、度量学习等方法,例如:针对图片分类问题,可以使用基于ImageNet下的训练好的网络及其模型参数如:VGG、ResNet、Xception等进行finetune;针对音频分类问题,我们可以使用基于AudioSet的VGGish模型网络及参数进行finetune,其中ImageNet和AudioSet就是前面提到的先验知识。

以上内容存在或多或少片面的地方,仅代表个人想法。


图三:Baseline and Baseline++

  • Baseline = pre-training + fine-tuning(linear layer)
  • Baseline++ = pre-training + fine-tuning(Cosine distance)

图四:MatchingNet+ ProtoNet+ RelationNet+ MAML

  • MatchingNet = Meta Training + Meta Testing(Cosine distance)
  • ProtoNet = Meta Training + Meta Testing(classmean + 欧式距离)
  • RelationNet = Meta Training + Meta Testing(classmean + relation mudule)
  • MAML = Meta Training + Meta Testing(two-step gradient)
图三:Baseline and Baseline++ 图四:MatchingNet+ ProtoNet+ RelationNet+ MAML

参考

  1. ^A Closer Look at Few-shot Classification https://arxiv.org/abs/1904.04232
o
粉丝 0
博文 62
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SequoiaDB监控与开发实践分析

使用背景 公司近期上线了一个新应用,底层数据库采用了国产的分布式数据库 – SequoiaDB。 因为需要将 SequoiaDB 集群纳入到公司的整个监控体系中,所以需要对 SequoiaDB 的状态、性能指标等...

巨杉数据库
7分钟前
0
0
如何导入其他Python文件? - How to import other Python files?

问题: How do I import other files in Python? 如何在Python中导入其他文件? How exactly can I import a specific python file like import file.py ? 我究竟该如何导入特定的python文件......

fyin1314
16分钟前
14
0
小程序上传图片 返回的地址出现回车空格问题

不知怎么回事 ,今天写小程序上传图片 之前是没问题的,今天突然出现很多回车空格问题 那怎么办呢,处理呗 //去掉空格str = str.replace(/\ +/g,""); console.log(str);//"{'retmsg':'suc......

子枫Eric
26分钟前
6
0
Spring Boot + Spring Security自定义用户认证

自定义认证过程 自定义认证的过程需要实现Spring Security提供的UserDetailService接口 ,源码如下: public interface UserDetailsService { UserDetails loadUserByUsername(String use...

心田已荒
50分钟前
12
0
DateTime2与SQL Server中的DateTime - DateTime2 vs DateTime in SQL Server

问题: Which one: 哪一个: datetime datetime2 is the recommended way to store date and time in SQL Server 2008+? 是在SQL Server 2008+中存储日期和时间的推荐方法吗? I'm aware of......

富含淀粉
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部