内容简介:本文作者:Curry原文链接:https://zhuanlan.zhihu.com/p/149983811
点击上方“ 算法猿的成长 “, 关注公众号,选择加“星标“或“置顶”
本文作者:Curry
原文链接:https://zhuanlan.zhihu.com/p/149983811
本文已由原作者授权,不得擅自二次转载
小样本学习一般会简化为 N-way K-shot 问题,如图[1]。其中 N 代表类别数量,K 代表每一类中(支持集)的样本量;
图[1] N-way K-shot
解决分类问题,人们想到采用传统监督学习的方式,直接在训练集上进行训练,在测试集上进行测试,如图[2],但神经网络需要优化的参数量是巨大的,在少样本条件下,几乎都会发生过拟合;
图[2] 传统监督学习
为了解决上述问题,最先想到的是通过使用迁移学习+Fine-tune 的方式,利用 Base-classes 中的大量数据进行网络训练,得到的 Pre-trained 模型迁移到 Novel-classes 进行 Fine-tune,如图[3]。虽然是 Pre-trained 网络+Fine-tune 微调可以避免部分情况的过拟合问题,但是当数据量很少的时候,仍然存在较大过拟合的风险。
图[3] Pre-trained网络+Fine-tune微调
接下来讲的就是小样本学习中极具分量的 Meta-learning 方法,现阶段绝大部分的小样本学习都使用的是 Meta-learning 方法。
Meta-learning,即 learn to learn,翻译成中文是元学习。Meta-learning 共分为Training 和 Testing 两个阶段,Training 阶段的思路如图[4]。简单描述下流程:
1:将训练集采样成 Support set 和 Query set 两部分;
2:基于 Support set 生成一个分类模型 = ( );
3:利用模型对 Query set 进行分类预测生成 predict labels;
4:通过 query labels 和 predict labels 进行 Loss(e.g., cross entropy loss )计算,从而对分类模型 中的参数 θ 进行优化。
图[4] Meta-learning Training阶段思路
Testing 阶段的思路如图[5],利用 Training 阶段学来的分类模型 = ( ) 在Novel class 的 Support set 上进行进一步学习,学到的模型对 Novel class 的 Query set 进行预测。
图[5] Meta-learning Testing阶段思路
介绍到这里,Meta-learning 的整体流程的流程就介绍完了,如图[6];
现在反过来看,Meta-learning 核心点之一是如何通过少量样本来学习这个 = ( ) 这个分类模型,即图[6]中key部分。在这里引出了 Meta-learning 的两个主要方法:度量学习(Matrix-based Meta-learning)和 MAML(Optimization-based Meta-learning),本文简要介绍了二者的原理以及在处理小样本问题时的优缺点:
图[6] Meta-learning整体流程以及key point
首先介绍下度量学习(Metric Learning):度量学习是一种空间映射的方法,其能够学习到一种特征(Embedding)空间,在此空间中,所有的数据都被转换成一个特征向量,并且相似样本的特征向量之间距离小,不相似样本的特征向量之间距离大,从而对数据进行区分。
以经典的原型网络 Prototypical Networks 为例,如图[7]:将 Support set 投影到一个度量空间,且在这个空间中同类样本距离较近,异类样本的距离较远。为了对 Query set 中的 X 进行预测,则将样本 X 投影至这个空间并计算 X 距哪个类别较近,则认为 X 属于哪个类别。
图[7]原型网络Prototypical Networks
Meta-learner 这一步采用度量方法的好处是:在生成 = ( ) 这个阶段不需要进行参数优化。
ps:度量方法的思想来自机器学习算法(KNN,K-means,最近邻等算法)。
距离通常使用欧氏距离和 cos 距离,深度度量学习主要的关键点是损失函数的设计。损失函数相关可以参考 https://zhuanlan.zhihu.com/p/82199561,本文不重点介绍。
接下来介绍下 MAML(Model-Agnostic Meta-Learning)方法:与度量学习 = ( ) 使用度量方法构建不同,MAML 采用的是 = − ,( )梯度下降优化方法。如图[8].
图[8] MAML参数更新原理
MAML 的优点:
1:与标准的fine-tuning 方法一致
2:Model-agnostic: 适用于各种网络 backbone
缺点:
-
相比度量学习的投票方式,MAML 需要学习的参数量更多,需要更多的算力;
-
另外由于这个原因也导致没有办法训练大型网络;
-
与其说 MAML 是为了解决小样本问题而生的,不如说 MAML 更适用于小样本学习问题。
最后想补充两点自己对元学习的理解:
1:元学习是通过优化 loss 来拟合 query data,使得模型来逐渐适应这种小样本的学习方式;
2:从参数优化的角度来讲,模型学习的是一个通用的初始化参数,使得再遇到新任务时,通过训练可以快速收敛到最优解。
以上内容为个人总结,欢迎大家探讨交流。
可以点击文末阅读原文,跳转到原文中进行留言讨论交流。
欢迎关注我的微信公众号-- 算法猿的成长 ,或者扫描下方的二维码,大家一起交流,学习和进步!
如果觉得不错,在看、转发就是对小编的一个支持!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 【逼你学习】让自制力提升300%的时间管理方法、学习方法分享
- 学习方法模式续(200319)
- 投机取巧学习方法
- 统计学习方法-感知机笔记
- 统计学习方法-决策树笔记
- 《统计学习方法》 ( 李航 ) 读书笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。