learn to learn
让机器学习如何去学习,例如机器学习之前学习了 100 个不同的 task(语音识别/图像识别),最后一个task是文本分类相关的,在学习前一百个任务之后,机器在文本分类任务也可以学习的更好。 life long:one model for all tasks Meta learning: how to learn a new model 可以公式表示为:
机器学习和元学习
- machine learning step 1)找到一个 f 的集合 2)找到一个判别 f 的方法 (loss function) 3)在这个集合中寻找最好的函数 f
- Meta learning step 1)找到一个 learning algorithm 的集合; 2)之后寻找到一个判别 learning algorithm 好坏的方法 3)最后得到一个最好的 learning algorithm 作为 F
如何去做
- 首先需要定义一个函数的好坏
其中,l 表示每个单个子任务,我们的目标就是让所有子任务总的损失函数最小的函数 F:
简单应用
对于多分类问题,可以划分为 N-ways K-shot classification 任务,也就是从 N 个全部种类中,sample 出来 n 个类目,每个类目下面 k 个样本。可以理解为把测试集划分为 M 个集合,每个集合都是由support set 和 query set 组合而成,也就是一个子集作为一个 task 的训练数据,划分为 train 和 test。总体的训练过程是: 优化所有 task 的损失函数最小,在此条件下,筛选出一组全局最优的参数。
技术种类
MAML arxiv.org/pdf/1703.03… Meta learning 最终的目的是要让模型获得一个良好的初始化参数。这个初始化参数在训练 task 上表现或许并不出色,但以这个参数为起点,去学习新的 task 时,学的会又快又好,而普通的 learning,则是着眼于解决当前的 task,不会考虑如何面对新的 task。损失函数的奥秘:初始化参数掌控全场,分任务参数各自为营。
Metal-learning in transfer learning
- 文章一: transfer learning based few-shot learning optimization as a model for few-shot learning
本文的问题
常用的基于梯度的优化方法面对少样本学习问题会崩溃。
本文的思路
学习一种新的优化方法(更新规则),来在少样本学习任务上使用少量的样本和少量的更新迭代可以产生好的效果。同时一个额外的好处就是有一个好的初始化,可以将这个初始化作为训练起点,这样只需要少量的梯度更新就可以收敛到一个好的解决方案。
本文提出的方法
元学习建议将学习问题制定为两层: 。任务学习者(task-learner,或者文中的learner):在每个独立的任务之中快速获取知识。 ·元学习者(meta-learner):从大量的任务中缓慢的学习和提取信息,这些信息用于指导任务学习者学习。 本文提出基于LSTM的元学习: LSTM-based meta-learner to optimize learner neural network classifier
- Short-term knowledge within a task
- Long-term knowledge common among all the tasks
- Learn a task-common initialization which captures fundamental knowledge
模型框架
总结
提出了一个基于 LSTM 的 元学习者(meta-learner) 用以学习一个用于训练另一个在少样本情况下的 学习者(learner) 神经网络分类器的优化算法。我们模型的参数化允许我们的模型学习恰当的、专门用于只能进行一定量更新的参数更新方法。同时我们的模型为 学习者(learner)网络,也就是分类器网络学习了一个通用的初始化,这个初始化可以帮助 学习者(learner)网络在训练的时候快速收敛。
Reference
blog.csdn.net/weixin 37589575/article/details/96995985
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 30 天,点击查看活动详情