共计 2791 个字符,预计需要花费 7 分钟才能阅读完成。
深度学习利用篇 - 元学习 [13]:元学习概念、学习期、工作原理、模型分类等
1. 元学习概述
1.1 元学习概念
元学习 (Meta-Learning) 通常被了解为“学会学习 (Learning-to-Learn)”,
指的是在多个学习阶段改良学习算法的过程。
在根底学习过程中,
外部(或上层 / 根底)学习算法解决由数据集和指标定义的工作。
在元学习过程中,内部(或下层 / 元)算法更新外部学习算法,使其学习的模型改良内部指标。
因而,元学习的外围想法是学习一个先验常识 (prior)。
1.2 元学习含意
元学习的含意有两层,
第一层是让机器学会学习,使其具备剖析和解决问题的能力,
机器通过实现工作获取教训,进步实现工作的能力;
第二层是让机器学习模型能够更好地泛化到新畛域中,
从而实现差别很大的新工作。
Few-Shot Learning 是 Meta-Learning 在监督学习畛域的利用。
在 Meta-training 阶段,
将数据集合成为不同的工作,去学习类别变动的状况下模型的泛化能力。
在 Meta-testing 阶段,
面对全新的类别,不须要变动已有的模型,只须要通过一部或者多数几步训练,就能够实现需要。
1.3 元学习单位
元学习的根本单元是工作,工作构造如图 1 所示。
元训练集 (Meta-Training Data)、元验证集 (Meta-Validation Data) 和元测试集 (Meta-Testing Data) 都是由抽样工作组成的工作汇合。
元训练集和元验证集中的工作用来训练元学习模型,
元测试集中的工作用来掂量元学习模型实现工作的成果。
在元学习中,之前学习的工作称为元训练任务 (meta-train task),
遇到的新工作称为元测试工作 (meta-test task)。
每个工作都有本人的训练集和测试集,
外部的训练集和测试集个别称为反对集 (Support Set) 和查问集 (Query Set)。
反对集又是一个 N-Way K-Shot 问题,即有 N 个类别,每个类有 K 个样例。
图 1 工作构造。
1.4 基学习器和元学习器
元学习实质上是档次优化问题 (双层优化问题 Bilevel Optimization Problem),
其中一个优化问题嵌套在另一个优化问题中。
内部优化问题和外部优化问题通常别离称为下层优化问题和上层优化问题,
如图 2 所示的 MAML。
图 2 双层优化元学习 MAML。
两层优化问题波及两个参加器:
1) 下层的参与者是元学习器,
2) 上层的参与者是基学习器。
元学习器的最优决策依赖于基学习器的反馈,基学习器本身会优化本人外部的决策。
这两个档次有各自不同的指标函数、约束条件和决策变量。
基学习器和元学习器的作用对象及性能如图 3 所示。
图 3 基学习器和元学习器。元学习器总结工作教训进行工作之间的共性学习,同时领导基学习器对新工作进行个性学习。
1.4.1 基学习器
基学习器 (Base-Learner),是根底层中的模型,
每次训练根底学习器时,思考的是单个工作上的数据集,其基本功能如下:
- 在单个工作上训练模型,学习工作个性,找到法则,答复工作须要解决的问题。
- 从元学习器获取对实现单个工作有帮忙的教训,包含初始模型和初始参数等。
- 应用单个工作中的训练数据集,构建适合的指标函数,
设计须要求解的优化问题,从初始模型和初始参数开始进行迭代更新。 - 在单个工作上训练实现后,将训练的模型和参数都反馈给元学习器。
1.4.2 元学习器
元学习器 (Meta-Learner),是元层中的模型,对所有工作上的训练教训进行演绎总结。
每次训练根底学习器后,元学习器都会综合新的教训,更新元学习器中的参数,其基本功能如下:
- 综合多个工作上基学习器训练的后果。
- 对多个工作的共性进行演绎,在新工作上进行疾速精确的推理,
并且将推理输送给基学习器,作为初始模型和初始参数值,
或者是其余能够减速基学习器训练的参数。 - 指引基学习器的最优行为或摸索某个特定的新工作。
- 提取工作上与模型和训练相干的特色。
1.5 元学习工作原理
元学习的次要目标是寻找元学习器 $F$,
在 $F$ 的领导下基学习器 $f$ 在反对集 (support set) $D^{\mathrm{tr}}$ 的作用下通过几步微调就能够失去适应以后新工作的最优状态 $f^{*}$。而 $F$ 的优化须要以后所有工作损失的累计和,
即 $\nabla\sum_{n=1}^{N} l \left(f_{n}^{*}, D_{n}^{\mathrm{te}} \right)$。
元学习工作原理如图 4 所示。
图 4 元学习工作原理。
1.5.1 元学习训练过程
以分类工作为例,元学习中 N-Way K-Shot 问题的具体训练过程:
首先提供一个 few-shot 的数据集,该数据集个别蕴含了很多的类别,
每个类别中又蕴含了很多个样本。
对训练集进行划分,随机选出若干类别作为训练集,残余类别作为测试集。
meta-train 阶段:
- 在训练集中随机抽取 N 个类,每个类 K 个样本,为反对集 (support set),
残余样本为查问集 (query set);
support set 和 query set 形成一个 task。 - 每次采样一个 task 进行训练,称为一个 episode;
一次性选取若干个 task,形成一个 batch; - 一次 meta-train 能够训练多个 batch;
- 遍历所有 batch 后实现训练。
meta-test 阶段:
- 在测试集中随机抽取 N 个类别,每个类别 K 个样本,作为 train set,
残余样本作为 test set。 - 用 support set 来 fine-tune 模型;
- 用 test set 来测试模型(这里的 test set 就是真正心愿模型可能用于分类的数据)。
上述训练过程中,每次训练 (episode) 都会采样失去不同 task,
所以总体来看,训练蕴含了不同的类别组合,
这种机制使得模型学会不同 task 中的共性局部,
比方如何提取重要特色及比拟样本类似等,忘掉 task 中 task 相干局部。
通过这种学习机制学到的模型,在面对新的未见过的 task 时,也能较好地进行分类。
1.6 元学习要害
元学习的关键在于发现不同问题之间的普适法则,通过推广普适法则解决末知难题。普适法则须要达到对问题共性和个性示意力的平衡。普适法则的寻找次要依赖于以下几点:
- 发现曾经解决的问题和新问题之间分割亲密的局部,提取曾经解决的问题的普适法则,用于新问题的解决;
- 将新问题合成,化繁为简,在曾经解决的问题中找到与新问题各个子工作分割严密的普适法则,以及这些法则的适用范围;
- 在新问题中学习推理逻辑,应用推理逻辑来对新问题进行示意,在这些示意中寻找法则,通过新问题本身各个局部之间的推理逻辑,找到解决新问题的方法。
1.7 元学习分类
- 基于优化的元学习:如 MAML, Reptile, LEO, …
- 基于度量的元学习:如 SNAIL, RN, PN, MN, …
- 基于模型的元学习:如 Learning to learn, Meta-learner LSTM, …
更多优质内容请关注公重号:汀丶人工智能