强化学习博客链接
深度强化学习博客链接
自动机器学习博客链接
自研一第二学期以来,研究元学习有小半年时间,但是出于某种不可抗力,我的研究方向突然变更为自动机器学习(Auto ML)。粗略上来讲,自动学习包含了元学习、强化学习、自动超参数优化等内容。
所以,这篇算是给自己这段时间的研究的一个交代吧…(祭奠一下…)
文章归档
github上有专门的元学习文章管理了:链接
元学习定义
元学习系统必须包括一个用来学习经验的(adapt with experience)学习子系统。
通过利用提取的元知识获得经验:在单个数据集的预先学习(a previous learning episode on a single dataset)且/或 来自不同的领域的问题(from different domains or problems)
元学习一般有两级:<第一级>快速地获得每个任务中的知识,<第二级>较慢地提取所有任务中学到的信息
时代因素
在Machine Learning时代,复杂一点的分类问题效果就不好了
Deep Learning的出现基本上解决了一对一映射的问题,比如说图像分类,一个输入对一个输出,因此出现了AlexNet这样的里程碑式的成果。
但如果输出对下一个输入还有影响呢?也就是sequential decision making的问题,单一的深度学习就解决不了了。
这个时候Reinforcement Learning强化学习就出来了,Deep Learning + Reinforcement Learning = Deep Reinforcement Learning深度强化学习。有了深度强化学习,序列决策初步取得成效,因此,出现了AlphaGo这样的里程碑式的成果。
但是,新的问题又出来了,深度强化学习太依赖于巨量的训练,并且需要精确的Reward,对于现实世界的很多问题,比如机器人学习,没有好的reward,也没办法无限量训练,怎么办?这就需要能够快速学习。
人类之所以能够快速学习的关键是人类具备学会学习的能力,能够充分的利用以往的知识经验来指导新任务的学习,因此Meta Learning成为新的攻克的方向。
2015年前的发展
从《Metalearning: a survey of trends and technologies》中整理而得
集成方法和基础学习器的组合
stacking(1992)
级联泛化(2000)
算法推荐 Algorithm recommendation
不同的参数设置的影响(Vanschoren 2010)
混合元学习和基于搜索的技术(Gomes等2012)
学习参数的遗传算法(Reif等2012b)
根据训练复杂度对算法进行排序(Jankowski和Grabczewski2009)
试图将概念推广到其他领域,包括回归,排序,约束满足和优化Smith-Miles(2008)
动态偏差选择 Dynamic bias selection
在经典算法推荐中,偏差取决于所选择的可用学习算法,并且不会动态修改。动态偏差选择通常与连续的训练样本流(数据流)有关。
定义基于规则的质量信息(quality information)(Vilalta和Drissi2002a)
非常快速的决策树(Very fast decision trees,VFDT)用新的传入示例动态调整它们的偏差(Domingos和Hulten2000)
Learned Topology Gating Artificial Neural Networks(LTGANN)(Kadlec和Gabrys(2008)
归纳转移 Inductive transfer
主要用于较小的多个相关学习任务的选择,其实就是迁移学习的前身
使用神经网络的例子区分两种主要的知识转移形式(Brazdil等2009)
使用支持向量机和正则化网络的例子讨论了核方法中的归纳传递 (Evgeniou等2005)
通过学习内核变换链来学习线性Hebbian分类器的合适核矩阵(Aiolli 2012)
从贝叶斯的角度来看待主题,使用包含潜在变量的框架来对不同学习场景之间的共享结构进行建模(zhang等2008)
使用具有针对不同任务的额外上下文输入的神经网络(Silver等人2008)
元学习系统 Metalearning systems
元挖掘”本体概念和数据挖掘工作流的元知识驱动推荐(Nguyen 2011)
多标准决策过程(Bonissone2012)
关于电力负荷预测的问题(Abbasi等2013)
财务欺诈检测(2012)
破产预测(Tsai和Hsu 2013)
2016年后的发展
站在现在的角度,其实给我留下印象最深的只有两篇论文。
MAML
一篇是 Chelsea Finn 等人在 ICML 2017 发表的《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks》用于快速适应深度网络的模型无关的元学习(简称MAML, 是元学习领域中标志性文章与代码框架):
快速学习是人类智能的一个标志,无论它涉及从几个示例中识别对象,还是在仅仅几分钟的经验后快速学习新技能。 我们的人工智能应该能够做到这一点,只需几个例子即可快速学习和调整,并随着更多数据的可用而继续适应。
这种快速且灵活的学习是具有挑战性的,因为必须将其以前的经验与少量新信息结合起来,同时避免过度适应新数据。 此外,先前的经验和新数据的形式将取决于任务。
用通俗的话来讲,MAML相比于梯度下降的基步长,新增了一个用SGD优化的元步长,总结起来就是双层的梯度下降,从而实现了跨任务的元优化。
Meta Networks
另一篇是 Tsendsuren Munkhdalai 等人在 ICML 2017 发表的《Meta Networks》元网络:
标准的深度神经网络缺乏持续学习能力或逐步学习新概念,不会忘记或破坏以前学过的模式。 相比之下,人类可以从相同概念的几个例子中快速学习和概括。 人类在增量(即连续)学习方面也非常擅长。 这些能力主要是通过大脑中的元学习(即学习如何学习)过程来解释的(Harlow,1949)。 元级学习的目标是获取不同任务的通用知识,然后将知识传递给基础学习器,以便在单个任务的背景下提供泛化。
在这项工作中,我们介绍一种称为MetaNet(用于元网络)的元学习模型,该模型通过允许神经网络学习并通过一个实例实现一个新任务或概念来支持元级连续学习。
MetNet组件:基础学习器、元学习器,外部存储器。
学习发生在不同空间的两个层次上(即元空间和任务空间)。
基础学习器在输入任务空间中执行(通过捕获任务目标在每个任务内执行任务),而元学习器在任务不可知的元空间中运行(负责通过跨任务进行快速权重生成)。
通过在抽象元空间中操作,元学习器支持持续学习并执行元知识获取跨越不同的任务。
为此,基础学习器首先分析输入任务,然后基础学习器以高阶元信息的形式向元学习器提供反馈,以解释其在当前任务空间中的状态。生成的快速权重被集成到基础学习器和元学习器中,以改善学习器的归纳偏差。
MetaNet通过处理更高阶的元信息,学习快速参数化底层神经网络以实现快速泛化,从而形成灵活的AI模型,可以适应可能具有不同输入和输出分布的任务序列。
最新研究思路
1. 基于记忆Memory的方法
基本思路:既然要通过以往的经验来学习,那么是不是可以通过在神经网络上添加Memory来实现呢?
[1] Santoro, Adam, Bartunov, Sergey, Botvinick, Matthew, Wierstra, Daan, and Lillicrap, Timothy. Meta-learning with memory-augmented neural networks. In Proceedings of The 33rd International Conference on Machine Learning, pp. 1842–1850, 2016.
[2] Munkhdalai T, Yu H. Meta Networks. arXiv preprint arXiv:1703.00837, 2017.
2. 基于预测梯度的方法
基本思路:既然Meta Learning的目的是实现快速学习,而快速学习的关键一点是神经网络的梯度下降要准,要快,那么是不是可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测得准,那么学习得就会更快了?
[1]Andrychowicz, Marcin, Denil, Misha, Gomez, Sergio, Hoffman, Matthew W, Pfau, David, Schaul, Tom, and de Freitas, Nando. Learning to learn by gradient descent by gradient descent. In Advances in Neural Information Processing Systems, pp. 3981–3989, 2016
3. 利用Attention注意力机制的方法
基本思路:人的注意力是可以利用以往的经验来实现提升的,比如我们看一个性感图片,我们会很自然的把注意力集中在关键位置。那么,能不能利用以往的任务来训练一个Attention模型,从而面对新的任务,能够直接关注最重要的部分。
[1]Vinyals, Oriol, Blundell, Charles, Lillicrap, Tim, Wierstra, Daan, et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pp. 3630–3638, 2016.
4. 借鉴LSTM的方法
基本思路:LSTM内部的更新非常类似于梯度下降的更新,那么,能否利用LSTM的结构训练出一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数?这个想法非常巧妙。
[1] Ravi, Sachin and Larochelle, Hugo. Optimization as a model for few-shot learning. In International Conference on Learning Representations (ICLR), 2017.
5. 面向RL的Meta Learning方法
基本思路:既然Meta Learning可以用在监督学习,那么增强学习上又可以怎么做呢?能否通过增加一些外部信息的输入比如reward,之前的action来实现?
[1] Wang J X, Kurth-Nelson Z, Tirumala D, et al. Learning to reinforcement learn. arXiv preprint arXiv:1611.05763, 2016. [2] Y. Duan, J. Schulman, X. Chen, P. Bartlett, I. Sutskever, and P. Abbeel. Rl2: Fast reinforcement learning via slow reinforcement learning. Technical report, UC Berkeley and OpenAI, 2016.
6. 通过训练一个好的base model的方法,并且同时应用到监督学习和增强学习
基本思路:之前的方法都只能局限在或者监督学习或者增强学习上,能不能搞个更通用的呢?是不是相比finetune学习一个更好的base model就能work?
[1]Finn, C., Abbeel, P., & Levine, S. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. arXiv preprint arXiv:1703.03400.
7. 利用WaveNet的方法
基本思路:WaveNet的网络每次都利用了之前的数据,那么是否可以照搬WaveNet的方式来实现Meta Learning呢?就是充分利用以往的数据?
[1] Mishra N, Rohaninejad M, Chen X, et al. Meta-Learning with Temporal Convolutions. arXiv preprint arXiv:1707.03141, 2017.
8. 预测Loss的方法
基本思路:要让学习的速度更快,除了更好的梯度,如果有更好的loss,那么学习的速度也会更快,因此,是不是可以构造一个模型利用以往的任务来学习如何预测Loss呢?
[1] Flood Sung, Zhang L, Xiang T, Hospedales T, et al. Learning to Learn: Meta-Critic Networks for Sample Efficient Learning. arXiv preprint arXiv:1706.09529, 2017.
总结
从上面的论文来看,大家在采用各种不同的meta角度去思考问题,构造出新的meta xxx来研究。但是Meta RL相对于Meta Learning for Few Shot Learning研究门槛要高很多,实验难度大很多,也因此我们看到Meta RL的研究基本上被Sergey Levine团队给包了,而Meta Learning在Few Shot Learning(少样本图像分类)上研究最多。
总的来说,可以Meta的东西很多,Meta Model也好,Meta Reward也好,Meta HyperParameters也好,或者直接Meta Learning algorithm,都能有助于提升算法面对新task的适应能力,从而提升效果。