前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meta Learning 1: 基于度量的方法

Meta Learning 1: 基于度量的方法

作者头像
朴素人工智能
发布2021-01-27 12:44:09
1.8K0
发布2021-01-27 12:44:09
举报
文章被收录于专栏:朴素人工智能朴素人工智能

今天推出一个短篇系列文章,给大家介绍一下Meta Learning元学习。

普通的机器学习目前在学习具体任务的问题上可以达到很好的效果,比如车载场景的意图分类任务(导航,听音乐,查天气,打电话)。如果有足够的高质量的标注数据,可以训练出一个很强的分类模型。 在实际项目中,意图的类别经常会随着需求的变动发生改变,比如在车载场景中新增了【设置日程】的意图。为了保持意图分类的准确率,理想状态下,我们需要新意图类别【设置日程】的大量标注数据来重新训练模型;然而现实情况是,获取大量的标注数据成本很高,当需求频繁变更时,这甚至可以说是不可能完成的任务。

能不能设计一种模型,可以只用少量的数据就可以识别一个新意图,学会一项新任务呢?这就是Meta Learning要讨论的内容。 在系列文章中我们会分享Meta Learning的两类解决方案:

  1. 基于度量的方法 Metric-Based
  2. 基于优化的方法 Optimization-Based

本文为系列文章第一篇,主要介绍Meta Learning是什么,以及基于度量的方法中最经典的孪生网络。

什么是Meta Learning

Meta Learning,通常称为“learning to learn”,可以理解为掌握学习的方法。 普通的机器学习通常是让模型学习做一件具体的事,比如分辨车主是否需要导航;而Meta Learning想要让模型学会分辨的方法,可以分辨车主的任意指令。

回想我们从出生到现在的学习生涯,最宝贵的不是学会了什么具体的知识,而是拥有了日益强大的学习能力。小时候的我们在认识了很多小动物以后,假设从来没见过海獭,通过一次动物园的见面甚至是一张海獭的图片,我们就能认识它。一个精通C++的高级程序员,学习Python可以说是非常轻松。

Meta Learning的目标就是让机器学习模型也可以像人一样,拥有学习能力。

Meta Learning的训练思路

怎么样才能让模型拥有学习能力呢,让我们从想要达到的效果入手。 以下图的图像分类任务为例,我们的使用场景是已知一个2分类的训练集,每个类只有4张照片,用这个训练集训练神经网络模型,使模型可以对这2个类别对应的新照片进行准确识别。 (为了展示方便,本文的大部分例子和配图会是图像分类,文本分类的原理是与之相通的。)

2-way 4-shot 图像分类

如果按一般的监督学习思路来训练,一张照片作为一个样本,因为训练样本数过少,模型一定会过拟合。怎样可以让训练样本的数量变多呢,让我们转变一下对样本的定义。 Meta Learning的思路是将这整个2分类图像分类任务作为一个样本。虽然模型没有这2个类别的更多图片,但可以获取到其他类别的大量图片。通过采样,构造许许多多的2分类图像分类任务作为训练样本,从而在任意新的2分类图像分类任务上都可以有良好的表现。 这里的训练样本集为Meta-Train,测试样本集为Meta-Test。 为了避免Meta-Train/Meta-Test和任务样本中的Train/Test混淆,将任务样本中的Train/Test称为Support/Query Set,将Meta-Train/Meta-Test称为Train/Test Set。 这个训练思路在文献中通常被称为Episodic Training,一个任务样本为一个Episode。

Meta Learning的核心思路:一个任务作为一个样本

这里作为样本的任务可以是任何机器学习任务,比如监督学习,非监督学习,强化学习等等。 本系列仅介绍样本为监督学习任务时的情况,即少样本学习(Few-shot Learning)。

基于度量的方法

基于度量的Meta Learning解决方案分三步走:

  • 首先是对Support/Query Set中的数据(图片/文本等)进行编码,学习数据的向量表示。
  • 对同一个类别内的数据进行归纳,得到类向量。
  • 计算Query向量和类向量的相似度(度量),取相似度最高的类,即为分类结果。

基于度量的方法:编码Encode,归纳Induction,相似度Relation

上述的解决方案,使分类不再依赖于固定的类别。 对于任意的新类别,无需重新训练模型。通过编码和归纳得到新类别的类向量,计算出Query和它的相似度。比较Query和所有候选类别对应的相似度分数,从而可以找到与Query最相近的类别。

基于度量的方法可以很好的教会模型分辨数据类别的能力,满足少样本学习的目标。 但是需要注意的一点是,它不需要严格遵守Meta Learning一个任务作为一个样本的训练思路。构造任务样本进行训练通常可以得到更好的效果,但是对于基于度量的方法而言,它不是必须的--比如接下来要介绍的论文。

Siamese Neural Networks for One-shot Image Recognition (Koch, 2015)

这篇论文[1]采用孪生神经网络对图片进行One-shot的识别,即新类别只需要提供一张图片。

论文的训练任务是判断两张图片是否是同一类别的0/1分类。

训练任务

输入是待识别的两张图片,输出是两张图片是同一类别的概率。 若是,概率为1;若不是,概率为0。

孪生网络的模型结构

对于图片数据的编码,论文采用孪生网络的结构。如上图所示,孪生网络指的是两张图片数据输入两个完全相同的神经网络,网络结构相同,并且共享权重参数。 论文中共享参数的孪生网络部分的结构是CNN网络,将CNN网络结构换成BERT,即Sentence-BERT[2]--BERT时代文本语义相似度领域的State-Of-The-Art。

由于文章针对的是One-shot的图像识别,每个新类别只提供一张图片,所以不需要对类别进行归纳,新类别对应的唯一的图片向量即类向量。

Query向量和类向量的相似度的计算取绝对距离(L1距离),即两个向量的差的绝对值。绝对距离可以替换成任何可微分的距离公式。

在进行One-shot识别时,将待识别的Query图片分别与各候选类别的图片一起输入孪生网络模型,得到Query图片与各候选类别图片是否是同一类别的概率,取其中概率最大的类别,即为Query的类别。

One-shot识别

未完待续

本篇给大家介绍了Meta Learning是什么,以及基于度量的方法中经典的孪生网络。下一篇会介绍更多基于度量的方法,敬请期待。

参考资料

[1]

Siamese Neural Networks for One-shot Image Recognition: http://www.cs.toronto.edu/~gkoch/files/msc-thesis.pdf

[2]

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks: https://arxiv.org/pdf/1908.10084.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 朴素人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Meta Learning
  • Meta Learning的训练思路
  • 基于度量的方法
    • Siamese Neural Networks for One-shot Image Recognition (Koch, 2015)
    • 未完待续
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档