23

小样本学习方法(FSL)演变过程

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzU5MDY5OTI5MA%3D%3D&%3Bmid=2247485700&%3Bidx=1&%3Bsn=8ef8ed9df7cd5323f749e1edc7060203
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

点击上方“ 算法猿的成长 “, 关注公众号,选择加“星标“或“置顶”

本文作者:Curry

原文链接:https://zhuanlan.zhihu.com/p/149983811

本文已由原作者授权,不得擅自二次转载

小样本学习一般会简化为 N-way K-shot 问题,如图[1]。其中 N 代表类别数量,K 代表每一类中(支持集)的样本量;

zqeMjiI.png!web

图[1] N-way K-shot

解决分类问题,人们想到采用传统监督学习的方式,直接在训练集上进行训练,在测试集上进行测试,如图[2],但神经网络需要优化的参数量是巨大的,在少样本条件下,几乎都会发生过拟合;

rmiaMzJ.png!web

图[2] 传统监督学习

为了解决上述问题,最先想到的是通过使用迁移学习+Fine-tune 的方式,利用 Base-classes 中的大量数据进行网络训练,得到的 Pre-trained 模型迁移到 Novel-classes 进行 Fine-tune,如图[3]。虽然是 Pre-trained 网络+Fine-tune 微调可以避免部分情况的过拟合问题,但是当数据量很少的时候,仍然存在较大过拟合的风险。

emmimi6.png!web

图[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 )计算,从而对分类模型 中的参数 θ 进行优化。

IZbeey3.png!web

图[4] Meta-learning Training阶段思路

Testing 阶段的思路如图[5],利用 Training 阶段学来的分类模型 = ( ) 在Novel class 的 Support set 上进行进一步学习,学到的模型对 Novel class 的 Query set 进行预测。

jI3YzqB.png!web

图[5] Meta-learning Testing阶段思路

介绍到这里,Meta-learning 的整体流程的流程就介绍完了,如图[6];

现在反过来看,Meta-learning 核心点之一是如何通过少量样本来学习这个 = ( ) 这个分类模型,即图[6]中key部分。在这里引出了 Meta-learning 的两个主要方法:度量学习(Matrix-based Meta-learning)和 MAML(Optimization-based Meta-learning),本文简要介绍了二者的原理以及在处理小样本问题时的优缺点:

7vI3uaR.png!web

图[6] Meta-learning整体流程以及key point

首先介绍下度量学习(Metric Learning):度量学习是一种空间映射的方法,其能够学习到一种特征(Embedding)空间,在此空间中,所有的数据都被转换成一个特征向量,并且相似样本的特征向量之间距离小,不相似样本的特征向量之间距离大,从而对数据进行区分。

以经典的原型网络 Prototypical Networks 为例,如图[7]:将 Support set 投影到一个度量空间,且在这个空间中同类样本距离较近,异类样本的距离较远。为了对 Query set 中的 X 进行预测,则将样本 X 投影至这个空间并计算 X 距哪个类别较近,则认为 X 属于哪个类别。

JbuEfyQ.png!web

图[7]原型网络Prototypical Networks

Meta-learner 这一步采用度量方法的好处是:在生成 = ( ) 这个阶段不需要进行参数优化。

ps:度量方法的思想来自机器学习算法(KNN,K-means,最近邻等算法)。

距离通常使用欧氏距离和 cos 距离,深度度量学习主要的关键点是损失函数的设计。损失函数相关可以参考 https://zhuanlan.zhihu.com/p/82199561,本文不重点介绍。

接下来介绍下 MAML(Model-Agnostic Meta-Learning)方法:与度量学习 = ( ) 使用度量方法构建不同,MAML 采用的是 = − ,( )梯度下降优化方法。如图[8].

uMR3EzN.png!web

图[8] MAML参数更新原理

MAML 的优点:

1:与标准的fine-tuning 方法一致

2:Model-agnostic: 适用于各种网络 backbone

缺点:

  • 相比度量学习的投票方式,MAML 需要学习的参数量更多,需要更多的算力;

  • 另外由于这个原因也导致没有办法训练大型网络;

  • 与其说 MAML 是为了解决小样本问题而生的,不如说 MAML 更适用于小样本学习问题。

最后想补充两点自己对元学习的理解:

1:元学习是通过优化 loss 来拟合 query data,使得模型来逐渐适应这种小样本的学习方式;

2:从参数优化的角度来讲,模型学习的是一个通用的初始化参数,使得再遇到新任务时,通过训练可以快速收敛到最优解。

以上内容为个人总结,欢迎大家探讨交流。

可以点击文末阅读原文,跳转到原文中进行留言讨论交流。

欢迎关注我的微信公众号-- 算法猿的成长 ,或者扫描下方的二维码,大家一起交流,学习和进步!

IbIfAnR.jpg!web

如果觉得不错,在看、转发就是对小编的一个支持!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK