课程学习与自步学习Curriculum learning and self-paced learning:极简入门

Curriculum Learning

在谈论self-paced learning之前,我们需要先了解一下课程学习(curriculum learning)。

Bengio [1] 提出了课程学习的概念,其直觉来自于人类从易到难的学习过程:将数据看作模型所学习的内容的话,我们自然需要一个合理的课程(curriculum)来指导模型学习这些内容的方式。在课程学习中,数据被按照从易到难的顺序逐渐加入模型的训练集,在这个过程中训练集的熵也在不断提高(包含更多的信息)。
A model is learned by gradually including from easy to complex samples in training so as to increase the entropy of training samples.

课程学习的核心问题是得到一个ranking function,该函数能够对每一条数据样本给出其learning priority (学习该样本的优先程度)。一个确定的ranking function便能够确定一个“课程”:有更高rank的数据(i.e. small value)会被较早地学习。

通常情况下,一个特定问题的ranking function是由直觉的方式根据问题的先验知识确定的。(e.g. 在遥感图片中辨识地理地貌特征,那些地貌特征较为单一的图片被作为简单样本较早地学习)

直觉方式确定的、静态的curriculum与变化的问题、动态的训练过程之间有某种不连续性:不够elegant。课程的确定并没有用到模型训练过程中能够得到的反馈信息,self-paced learning用一种更加统一的形式包含了curriculum learning。

Self-paced Learning

自步学习(Self-paced Learning / SPL)由Kumar et al. 在2010年提出。为了解决CL存在的问题,SPL将curriculum设计为学习的目标函数中的一个正则化项。

这种将CL“embedding”到目标函数种的方式带来了:
1. 联合的优化形式使得模型能够同时优化original objective与curriculum design,这是一个统一的优化问题。
2. 该课程正则化项是独立的,不因task specific的目标函数/损失函数的改变而改变。

形式化来讲SPL的优化目标如下:其中L(…)代表计算模型预测值f(xi, w) 与 ground truth yi之间差别的Loss函数,w为模型的参数,v为一个长度为n的隐含的权重向量,其第i维的值vi为第i条数据样本的权重。

joint learning objective

SPL的优化目标即优化得到一组模型参数w与权重向量v,使得所有数据的加权Loss之和与负的权重向量v的L1范数最小(也存在同时使用L1L2范数的变体[3])。其中 λ 是一个控制参数,反映了当前学习所进行到的阶段(learning pace)。

直观来解释一下权重向量v,最常用的是binary (0/1)的形式:其实就是是否选择该数据进入训练/验证集。note that在Loss项前乘了因子vi,所以对于第i条数据,若vi=0则其产生的Loss对于该步的模型参数w更新没有影响。

对于Eq (1)具体的优化过程可以使用ACS(Alternative Convex Search)[4],这是一种迭代式的双凸(biconvex)优化方法。在该方法中所有优化目标变量被分为两个不相交的子集,每轮迭代中固定一个集合中的变量优化另一集合。在Eq (1)中,两个子集显然为{w}, {v}。

compute & update v in SPL

在模型参数w固定时,权重向量v (Binary) 的更新可以由右式的简单计算得到:考虑所有Loss小于某个阈值 λ 的样本 (i.e. small loss = easy sample),不考虑其他Loss大于该阈值 λ 的样本。随着训练过程的进行,阈值 λ 会逐渐从0接近1:在这个过程中那些更难的样本会被逐渐加入模型的训练过程中去。

上文所述的SPL实现策略都相当基础(但足够有效),并且作为CL的一种泛化,上述的SPL同样符合CL的直觉。但这种实现也存在一些小问题:由于训练过程完全由training loss决定,这种使用方法或多或少会面临overfitting的问题。又比如缺乏在具体问题中引入先验/专家知识的能力。

SPL已经有许多有趣的应用(如long-term tracking / event detection / domain adaptation 等等一切easy sample可以支持hard sample的问题)。此外SPL还有许多有趣的扩展工作,如具有CL引入领域先验知识的能力,又可以像SPL在训练过程中获取信息动态调整的Self-paced curriculum learning (SPCL) [5],以及在关注hardness(分类难易度)的同时关注diversity来降低overfitting风险的SPLD [3]。。有时间再写 = =

[1] Bengio, Yoshua, et al. “Curriculum learning.” Proceedings of the 26th annual international conference on machine learning. ACM, 2009.
[2] Kumar, M. Pawan, Benjamin Packer, and Daphne Koller. “Self-paced learning for latent variable models.” Advances in Neural Information Processing Systems. 2010.
[3] Jiang, Lu, et al. “Self-paced learning with diversity.” Advances in Neural Information Processing Systems. 2014.
[4] Gorski J, Pfeuffer F, Klamroth K. Biconvex sets and optimization with biconvex functions: a survey and extensions[J]. Mathematical methods of operations research, 2007, 66(3): 373-407.
[5] Jiang L, Meng D, Zhao Q, et al. Self-Paced Curriculum Learning[C]//AAAI. 2015, 2(5.4): 6.

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页