2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019
2001年,Sepp Hochreiter和AS Younger&PR Conwell基于Long短期记忆RNN建立了一个成功的监督元学习者。它通过反向传播学习了二次函数的学习算法,该算法比反向传播快得多。
Deepmind的研究人员(Marcin Andrychowicz等人)在2017年将这种方法扩展到优化。[9]Learning to learn by gradient descent by gradient descent
目录
摘要
文章介绍了梯度下降法在元学习中的应用。元学习是指用于改进或发现新学习算法,有着广泛的应用前景。先前的元学习大多基于进化模型(遗传算法),因此只能用于只带少量参数的小模型。文章通过使用RNN以及其“伴随学习例程attendant learning routines”帮助元学习应用到大型系统中。本文还证明了该方法具有非平稳时间序列预估( non-stationary time series predition.)的能力。
1 介绍
文章介绍了一种生活场景,比如遇见新事物有经验的人指出“这有点像...那啥”,这比没经验的人能更快的适应新鲜事物。现在的机器学习算法大多不能用到类似的先验信息。使用先验信息称为“知识迁移”。
元学习用于为特定学习任务“学习合适的算法”,为了找到这个学习算法,需要引入一个监督模型。监督模型有更大的搜索范围,需要一种方法能够搜寻长时间的系统性的信息。希望能找到一种自动算法,能根据经验调整模型。这种算法需要一个目标:用于判定学习算法的性能。元学习在强化学习领域性能卓著。
文章介绍的模型包括一个监督模型和一个从属模型(subordinate learning algorithms)(文章使用了RNN网络),如上图左边。图右边是一个图灵测试机制,任何对这个程序的改变都是在改变rnn学习算法??。但由于输出是离散不可导的。因此文章使用RNN来替代图灵测试机制,得到可导的输出。有了可导的输出就能使用梯度下降法提升模型性能。文章从一个随机初始点开始优化学习器的参数。
也有研究建议subordinate learning algorithms使用遗传算法,文章认为遗传算法要求的计算量太大而不可行。文章选择使用RNN作为subordinate learning algorithms模块,并用SGD来优化RNN元学习器。
2.1节介绍到元学习模型的特性只由特别的输入目标序列决定;
第3节介绍到BPTT和RTRL算法用于优化标准RNN元学习器性能不佳,2.2节介绍了性能不佳的原因,并介绍了LSTM模型用于解决。
2.3节介绍了为什么元学习的知识迁移能取得好的效果。
最后一节用实验阐述如何用文章提出的元学习系统,对不同的问题学到不同的方案。
2 理论分析
2.1 基于RNN网络的元学习模型-数据格式设置
训练数据是一个序列{sk},sk与目标fk对应。在处理序列sk的时刻j:目标是,输入是当前时刻输入
以及上一时刻输出
,上图1展示了模型的输入和输出。
在每个时刻元学习器得到一个损失,这使得元学习器变得更准确和快速。图二展示了测试序列。模型的最终性能由序列长度、error方程和网路结构决定。
2.2 为元学习器选择一个RNN架构(从各种不同的RNN)
首先定义了一些符号:输入X,目标Y,输出O(O;X)(输出由当前输入和上一输出决定?)。最后一个输出,最后一项表示扰动。H(A)表示A的熵,条件熵H(A|B)。我们假设有噪声的映射来避免无限熵。忽略扰动,有:
,|*|是g的绝对值的行列式。
sj是隐藏层状态,i<j<J。有:
(说明输出与过去几个时刻的隐藏层状态有关?)。这里交换i和j的输入对结果没有影响,既
,扰动也有这个性质。学习开始时要初始化如下权重参数:
.因为i和j时刻输入对输出等价,因此有:
。u限制了从sl到sl+1的映射应该是体积守恒的。一个包含这种体积守恒子结构的结构应该优于其他结构。满足这一需求的架构是LSTM(???没懂)。
2.3 元学习的贝叶斯观点
元学习可以看作时不断适应和转变超参数的过程。实验证明,元学习器学习先验知识依赖于数据,因此不同的先验数据输入会导致不同的当前输出。
3 实验
对于监督学习器文章使用了均方误差。所有网络都有3个输入和1个非当前输出单元,所有非输入单元包括偏置和sigmoid激活函数,权重参数在[-0.1-0.1]内随机初始化。所有网络在每一个序列表示之后都会重置。
3.1 布尔函数
这里我们考虑所有布尔函数的集合B16,它有两个参数和一个结果.B14(B14 = B16 \ {XOR;非XOR})是一个线性可分的布尔函数集,常用来评估元学习框架。
B14实验在数据集B14下测试了Elman网络、标准RNN、LSTM。只有LSTM取得了理想的结果。细节:LSTM元胞输入使用sigmoid压缩到[-2,2],输出[-1,1].输入门的偏置为-1.
B16实验
使用B16数据集的均方误差比B14的小,因为B16的样本更多,从而新函数开始时的较大误差随着示例的增多而减小。图中在点513, 770, and1027处误差突增是因为在此处切换了函数。实验结果如下图:
3.2 半线性函数(Semi-linear Function)
参数在[-1,1]初始化,输入向量x=(x1,x2),输出函数,在下图展示不同方法的拟合效果。使用更多样本训练变慢但准确率可以得到提升。
3.3 二次函数
文章介绍了这样一个LSTM模型,我们在LSTM体系结构中引入了另一个隐层,它接收来自第一个标准LSTM隐层的传入连接,并具有输出连接到输出和第一个隐层。第一个隐藏层没有输出构造。第二个隐层可以作为模型,而第一个隐层可以看到模型。标准的LSTM学习算法是在错误被传播回第一个隐藏层之后使用的。。。???
3.4 模型总结
实验表明模型自动学到了一种自学习算法,并具有高效的性能。训练集中,包含了数据分布变化大的样本,模型能够学到这些差异,并在测试序列取得好的结果。
4 结论
先前的模型不能很好处理参数多的问题,本文使用梯度下降法并使用循环网络构建了元学习器,并用实验证明了它的性能。这个带有LSTM结构的元学习系统只需要35个样本就能拟合任意的二次函数。
5 值得注意的参考文献
[1] learning many related tasks at the same time with backpropagation 1995
[2] the ecolution of learning: An experiment in genetic connectionism 1990 遗传学习-学习革命
[3] Fixed-weight networks can learn 1990
[4] learning to learn 1997