元学习Meta Learning入门及相关论文Meta Learning，其实也叫做Learning to Learn，就是学会学习，即拥有学习的能力。
当前人工智能模型大多都是学习某一种分布，而元学习的目标说起来有点拗口，是让模型学会学习特定分布。
一篇综述：Meta-Learning: A Survey
常用方法
1、基于记忆
[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、基于预测梯度
Dynamic matrix recovery from incomplete observations under an exact low-rank constraint (neurips.cc)
3、基于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
[1] Ravi, Sachin and Larochelle, Hugo. Optimization as a model for few-shot learning. In International Conference on Learning Representations (ICLR), 2017.
5、面向强化学习RL
[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的方法，并且同时应用到监督学习和增强学习
[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
[1] Mishra N, Rohaninejad M, Chen X, et al. Meta-Learning with Temporal Convolutions. arXiv preprint arXiv:1707.03141, 2017.
8、微分凸优化元学习
Meta-Learning with Differentiable Convex Optimization
此论文建议在小样本的情况下，使用经过判别式训练的线性预测器作为基础学习器，来处理小样本学习任务。目标是在线性分类规则下，学习新类别的特征嵌入。
利用了线性分类器的两个性质：凸问题最优性条件的隐微分、优化问题的对偶公式。
这使得模型能够使用高维嵌入，并在适当增加计算开销的情况下改进泛化性能。方法名为MetaOptNet，在miniImageNet、tieredImageNet、CIFAR-FS和FC100小样本学习基准数据集上取得了最先进的结果。
9、无监督元学习
Unsupervised Learning Via Meta-Learning
10、在线元学习
Online Meta-Learning
11、预测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.
原文：Learning to Learn: Meta-Critic Networks for Sample Efficient Learning
此文提出了一种新的且灵活的元学习方法，所提出的框架可以应用于强化和监督学习。
关键的想法是构建一种以行动价值为目标函数的神经网络，使模型在面对新的任务时，可以利用已有的这个核心价值网络来加快学习速度！此模型名叫Meta-Critic Network，下图为其结构示意图。

论文以CartPole任务做分析，希望AI在学习了各种长度杆的任务后，面对一个新的长度的杆，能够快速学习，掌握让杆保持平衡的诀窍。
做法如下：
对每一个训练任务都构造一个行动网络（Actor Network），但是只有一个核心指导网络（Meta-Critic Network），这个网络包含两部分：一个是核心价值网络（Meta Value Network），另一个是任务行为编码器（Task-Actor Encoder）。
用多个任务同时训练这个Meta Critic Network。训练方式可以是常见的Actor-Critic。训练时最关键的就是Task-Actor Encoder，输入任务的历史经验（包括状态state、动作action、回馈reward），然后得到一个任务的表示信息 z z z，将 z z z和一般价值网络（MVN）的输入（状态 s s s和动作 a a a）连接起来，输入到MVN中。
通过这种方式，可以训练出一个Meta Critic Network。面对新的长度杆的任务，新建一个行动网络Actor Network，但是却保持Meta Critic Network不变，然后同样使用Actor-Critic方法进行训练。这个时候就可以学的非常快：

上面左图中的紫色学习曲线，reward上升速度非常快，standard是完全的Actor-Critic训练，基本是平的（一般对于CartPole任务需要训练几千次才能收敛到195的得分通过任务）。右边的第三个图中，在仅仅玩100个杆训练后，Meta-Critic方法就能够达到25%通过任务的成功率，而其他方法与之相差甚远。实际上paper也没有显示的一个结果是基于Meta Critic Network训练300步可以让任务通过率基本达到100%。
那么任务行为编码器（Task-Actor Encoder）到底学到了什么？作者把不同任务的 z z z提取出来用t-SNE（一种用于降维的机器学习算法，非常适用于高维数据降到2维或者3维）显示出来，如下面中间图所示。发现 z z z的分布和CartPole杆的长度是直接相关的，这意味着任务行为编码器确实可以利用以往的经验来理解一个任务的配置信息。

作者使用基本的函数拟合来查看其快速学习的能力。上图是只用4个样本来训练的结果。作者设置了两种拟合任务：第一种是拟合sin函数；第二种拟合sin或者线性函数。
上图中的第一个图是第一种任务的情况，可以看到使用Meta-Critic的拟合效果非常好，而一般的监督学习训练（黄线表示）基本没有拟合成功！MAML是目前元学习很新的一个研究，但是效果相对Meta-Critic有差距。第二种任务的难度变大了，可以看到第二和第三个图，Meta-Critic对于sin和线性函数都做的不错，但是MAML效果较差。MAML的思想是构建一个好的初始网络然后fine tuning，显然很难适应不同类型的任务，而Meta-Critic由于有任务行为编码器（Task-Actor Encoder）的存在，可以应对各种不同类型的任务。
总结：Meta-Critic Network作为一种全新的Meta Learning方法，通过训练出一个核心指导网络，能够指导新任务的快速学习，具备非常大的潜力。在未来的工作中，可以将其应用到更复杂的任务中。
参考原文：
学会学习Learning to Learn：让AI拥有核心价值观从而实现快速学习 - 知乎 (zhihu.com)
元学习Meta Learning/Learning to learn_深藏功与名-CSDN博客