A Survey of Deep Meta-Learning:深度元学习综述

2021-02-04 15:23:39 浏览数 (1)

作者 | 何文嘉 编辑 | 李仲深

  • 摘要
  • 文章介绍
    • 引入背景
    • 文章结构
    • 本文说明
    • 元学习概述
  • 理论基础
    • 监督学习数据集的构造
    • 元学习数据集的构造
    • 常规的监督学习
    • 有监督的元学习
    • 与其他领域的对比
  • 主流方法
    • 基于度量的方法
    • 基于模型的方法
    • 基于梯度的方法
  • 未来挑战

摘要

论文链接:https://arxiv.org/abs/2010.03522

文章介绍

引入背景

神经网络(DNN)的缺点:

  • 在拥有大量数据集和足够的计算资源时,才能够取得很好的效果。即依赖大量的数据与巨大的计算资源。 过去的成功很大一部分是数据量大的成功,但显然很多领域中数据相对稀缺的,如生物信息领域。
  • 快速学习新概念方面的能力很有限。即学习一个任务通常需要从头学习,需要迭代很多次,收敛较慢。 传统机器学习中只能做规定任务内的事情,一旦跳脱出用于训练的任务,表现很很糟糕。比如训练时是学习分辨猫和狗,那模型就真的只能分辨猫和狗,不会分辨猫和兔。

元学习的优势:

  • 是解决上述缺陷的方法之一,它能使神经网络学会怎样去学习(Learn to learn)。 这里其实也可以说是参考了人类学习的经验,即人类学习懂得举一反三,学习了这个任务后,能够在新的任务中利用先前任务的先验知识。比如当理解信息熵这个概念时会联系热力学中熵所代表的“混乱程度”来帮助自己的理解。

文章结构

A Survey of Deep Meta-Learning的文章结构分为三部分

  • 理论基础。
  • 总结和归纳关键的方法,这些方法主要分为以下三种:
    • 基于度量的方法。
    • 基于模型的方法。
    • 基于优化的方法。
  • 未来挑战。

本文说明

由于原论文篇幅很长,内容很丰富,在本推文中无法全部给大家展现出来,所以本文只挑选了原论文中比较重要和核心的内容进行介绍,更详细的内容请参考原论文。比如,本文只会提及元监督学习,有关强化学习和元强化学习的内容并没有提及。

元学习概述

关键思想:agent能够随着时间的推移,提高自身的学习能力,即学会学习(Learn to learn)。学习过程主要和任务(一组观察结果)有关。它发生于两个不同的层次上:内层和外层。在内层中,当有新任务产生,元学习会尝试从训练观察中快速学习相关的概念。在外层中,早期任务已经积累了一些信息,它促进了这种学习的快速实现。因此,内层涉及单个任务,外层涉及多个任务。

元学习这个术语已经在多个范围内使用了。广义来说,它封装了能充分利用先验知识的所有系统,所以能够快速地学习新任务。这种广义概念包括传统的算法选择和用于机器学习的超参数优化技术。

在本篇论文中,专注于元学习领域的一个子领域——深度元学习,着重于实现元学习的过程来提高神经网络的准确性。

元学习旨在掌握一种学习的能力, 使得智能体可以掌握很多任务。如果用数学公式表达, 这就好比先学习一个函数

F(x)

,代表一种抽象的学习能力, 再此基础上学习

f(x)

对应具体的任务。机器学习是学习某个数据分布

X

到另一个分布

Y

的映射。而元学习学习的是某个任务集合

D

到每个任务对应的最优函数

f(x)

的映射,从任务到学习函数的映射。 ——许铁-巡洋舰科技

理论基础

监督学习数据集的构造

训练集

测试集

测试集构造和训练集的模式一样,都是由

的样本对构成

测试集中的样本都不会在训练集中出现,因为这样才能衡量模型的泛化能力,即模型在未见过的数据上的表现。

泛化能力差往往代表模型只是记住了样本(死记硬背),而不是学习到了数据的一些共同特征(举一反三)。

元学习数据集的构造

一般的,mate-learning可以简单地分为meta-train和meta-test两个阶段,类比监督学习中的train和test阶段。

构造k-way n-shot的task的方式

元学习数据集的形象化表示:

常规的监督学习

本质上学习的就是一个函数

f_{theta}: X rightarrow Y

x_{i} in X

映射到

y_{i} in Y

theta

是模型的参数

给模型

m

个观察数据:

D=left{left(x_{i}, y_{i}right)right} x_{i=1}^{m}

寻找到满足经验损失函数

L_D

最小化的参数集

theta_{SL}

:

theta_{S L}:=arg min _{theta} L_{D}(theta)

为了寻找

theta_{SL}

的近似解,可以利用先验知识

omega

通过特定的算法如梯度下降算法对参数进行更新:

theta_{S L} approx g_{omega}left(D, L_{D}right)

两式合并得:

theta_{S L}:=arg min _{theta} L_{tau}(g_{omega}left(D, L_{D}right))

其中

tau

是指任务,一个任务对应一个训练集和测试集。

有监督的元学习

监督型元学习并不需要给定的先验知识

omega

因为元学习的目的就是找到最好的先验知识

omega

,来帮助原来监督学习任务的学习,所以才叫学会学习。数学描述:

omega^{*}:=arg min _{omega} E_{tau_{j} sim p(tau)}left[L_{tau_{j}}left(g_{omega}left(tau_{j}, L tau_{j}right)right)right]

其中

E_{tau_{j} sim p(tau)}[·]

对应与外层,学习多个任务之间的信息,

L_{tau_{j}}left(g_{omega}left(tau_{j}, L tau_{j}right)right)

对应于内层学习特定任务的信息,外层学习到的多个任务之间的信息体现在参数

omega

中,它能使内层对于任务

tau_j

进行快速学习,从而使模型能学会怎样去学习。

比如,如果没有

omega

可能学习任务

tau_j

需要迭代50个epoch,准确率为70%,有了

omega

后可能只需要迭代5个epoch,准确率可达75%。

与其他领域的对比

  • 迁移学习
    • 相似点:迁移学习试图将以前任务的知识转移到新的的任务,这一点与元学习相同,因为元学习中也试图利用元知识更快地学习新任务。
    • 不同点:元学习技术的一个关键特性是元目标,它明确地旨在优化任务分配的性能,这一点迁移学习中不一定是必须的。比如pre-train和finetune的范式中通常不需要考虑任务空间。

借鉴知乎大佬的回答:

从目标上看元学习和迁移学习并无本质区分都是增加学习器在多任务的泛化能力, 但元学习更偏重于任务和数据的双重采样, 任务和数据一样是需要采样的,而学习到的

F(x)

可以帮助在未见过的任务

f(x)

里迅速建立映射。而迁移学习更多是指从一个任务到其它任务的能力迁移,不太强调任务空间的概念。 ——许铁-巡洋舰科技

多任务学习

  • 多任务学习中,联合训练一个模型,以在多个固定的任务上表现良好。相比之下,元学习的目的是找到一个模型,可以快速学习新的任务

主流方法

基于度量的方法

Example
Siamese Network

训练

测试

对Query Set中的一个样本进行预测时,孪生网络将在Support Set中与测试样本相似度最高的样本的标签作为该测试样本的标签。

Matching Network
Prototypical Network
Relation Network

基于模型的方法

Memory-Augmented Neural Network

基于梯度的方法

Model-agnostic meta-learning

未来挑战

0 人点赞