机器学习笔记(三)——元学习

前言

这几天在看小样本学习(few-shot learning),里面经常涉及一个元学习,作为菜鸡的我当然不太清楚,于是打算先研究研究元学习,再来看看小样本学习~
机器学习笔记(三)——元学习

参考

最前沿:百家争鸣的Meta Learning/Learning to learn
当小样本遇上机器学习 fewshot learning

什么是元学习?

Meta Learning 元学习或者叫做Learning to Learn 学会学习,已经成为继Reinforcement Learning强化学习之后又一个重要的研究分支

Artificial Intelligence --> Machine Learning --> Deep Learning --> Deep Reinforcement Learning --> Deep Meta Learning

它是要"学会如何学习",即利用以往的知识经验来指导新任务的学习,具有学会学习的能力

当前的深度学习大部分情况下只能从头开始训练。使用Finetune来学习新任务,效果往往不好,而Meta Learning 就是研究如何让神经玩两个很好的利用以往的知识,使得能根据新任务的调整自己研究情况

基本上目前的学会学习研究还是从基本的图像识别入手,希望能够实现快速的图像实现。

研究思路

递归记忆模型 (Memory-Augmented Neural Networks)

基本思路:既然要通过以往的经验来学习,那么是不是可以通过神经网络上添加Memory来实现呢?
基于记忆的神经网络方法,早在2001年被证明可以用于meta-lerning。他们通过权重更新来调节bias,并且通过学习将表达快速缓存到记忆中来调节输出。然而利用循环神经网络的内部记忆单元无法扩展到需要对大量新信息进行编码的新任务上。因此,我们需要让存储在记忆中的表达既要稳定,又要是元素粒度访问的,前者是说当需要时就能可靠地访问,后者是说可选择性地访问相关信息。另外参数数量不能被内存的大小束缚 eg:神经图灵机(NTMs)和记忆网络
代表文章:

[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.

以Meta-Learning with memory-augmented neural networks这篇文章为例,我们看一下他的网络结构:
机器学习笔记(三)——元学习
文章基于神经网络机(NTMs)的思想,因为NTMs能通过外部存储(external memory)进行短时记忆,并能通过缓慢权值更新来进行长时记忆。文章基于LSTM等RNN模型,将网络的输入把上一次的y label也作为输入,并且添加了external memory存储上一次的x输入,这使得下一次输入后进行反向传播时,可以让y label 和x建立联系,使得之后的x能够通过外部记忆获取相关图像进行对比来实现更好的预测,这里的RNN就是meta-lerner.

基于预测梯度的方法

基本思路:既然Meta Leaning的目的是实现快速学习,而快速学习的关键一点是神经网络的梯度下降要快要准。那么是不是可以让神经网络利用以往的任务学习如何预测梯度,这样面对新任务时,只要梯度预测得准,那么学习得就会更快了

代表文章:

[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

机器学习笔记(三)——元学习
文章通过训练一个通用的神经网络来预测梯度,用一元二次方程的回归问题来训练,然后这种方法得到的神经网络优化器比Adam,RMSProp还要好,这样显然加快了训练

利用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.

机器学习笔记(三)——元学习
这篇文章构造一个attention机制,也就是最后的label判断是通过attention的叠加得到的:
机器学习笔记(三)——元学习
attention a则通过g和f得到。基本目的就是利用已有任务训练出一个好的attention model。

优化器学习 (meta-learning 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.

机器学习笔记(三)——元学习
对meta-learner的训练过程进行可视化,把gate的值画出来,观察其在不同的数据之间是否存在变化。在1-shot上,meta learner学了10步,5-shot上学了5步。对于遗忘门,meta-leanrer采用一个简单的权值衰减策略,而且每层都比较一致。输入门在不同数据上的变化比较大,说明meta learner没有采用一个固定的优化策略,而且1-shot和5-shot的表现也不同,说明meta learner对两者采用了不同的方法。
机器学习笔记(三)——元学习

面向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.

两篇文章思路一致,就是额外增加reward和之前action的输入,从而强制让神经网络学习一些任务级别的信息:
机器学习笔记(三)——元学习

模型无关自适应(Model-Agnostic)

基本思路:之前的方法都只能局限在或者监督学习或者增强学习上,能不能搞个更通用的呢?是不是相比finetune学习一个更好的base model就能工作

[1] Finn, C., Abbeel, P., & Levine, S. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. arXiv preprint arXiv:1703.03400.

机器学习笔记(三)——元学习
这篇文章的基本思路是同时启动多个任务,然后获取不同任务学习的合成梯度方向来更新,从而学习一个共同的最佳base。

利用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.

机器学习笔记(三)——元学习
直接利用之前的历史数据,思路极其简单,效果极其之好,是omniglot,mini imagenet图像识别思想不错的方向。

预测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-Critic Network(包含Meta Value Network和Task-Actor Encoder)来学习预测Actor Network的Loss。对于Reinforcement Learning而言,这个Loss就是Q Value。

相关文章: