SPL:自步学习
现有机器学习方法都需要解决非凸优化问题,例如学习感知机或深度置信网,传统的优化方法在避免非凸优化问题陷入较差局部解时,往往采用多次随机初始化方式训练模型,然后选择其中效果最好的初始化结果构建模型。然而这种方法计算代价过高。课程学习和自步学习最开始就是作为解决非凸优化问题而提出的。Bengio教授在2009年ICML上提出课程学习,而自步学习则是在课程学习的基础上,由Koller教授团队在2010年NIPS上将该思想建立为具有理论基础的数学表达形式。课程学习和自步学习的核心思想是通过模拟人的认知机理,首先学习简单的、普适性的知识结构,然后逐渐增加难度,过渡到学习更复杂、更专业化的知识。
接下来主要介绍Koller教授[10]的自步学习(SPL)文章,下篇博文会重点介绍Lu Jiang的SPLD文章。
假设训练集D=(xi,yi),…,(xi,yi)D=(xi,yi),…,(xi,yi)存在nn个样本,每个样本xixi代表一个样本,yiyi表示对应样本的类别标签,ww表示对应模型的待优化参数,参数ww的正则项记为r(w)r(w),模型的损失函数记为f(xi,yi,w)f(xi,yi,w)。传统机器学习方法的目标函数记为:
wt+1=argmin(r(w)+∑i=1nf(xi,yi,w)).wt+1=argmin(r(w)+∑i=1nf(xi,yi,w)).
自步学习核心思想是在每次迭代过程中倾向于从所有样本中选择具有很小的训练误差、高似然值的样本,然后更新模型参数。每次迭代选择样本的数量由权重参数确定,该参数通过逐次衰减实现引入更多的样本,当所有样本已被选择或者代价函数无法再降低则停止迭代。
因此,自步学习在传统机器学习目标函数中引入二分变量(binary variable)vivi,用于表征每个样本是否被选择,或是否为简单样本,例如:似然值高的、远离分类边界的点。因此,仅有vi=1vi=1的样本被纳入目标函数计算中,其目标函数可以改为:
(wt+1,vt+1)=argmin(r(w)+∑i=1nvif(xi,yi,w)−1K∑i=1nvi).(wt+1,vt+1)=argmin(r(w)+∑i=1nvif(xi,yi,w)−1K∑i=1nvi).
其中,KK为自步学习参数,用于决定哪些样本被选入自步学习中。如果KK值较大,目标函数优化过程则倾向于选择损失f(⋅)f(⋅)很小的样本。随着迭代次数的增加,我们逐渐减小KK的值,当KK值趋近于0时,越来越多的样本被选择。此时,自步学习训练过程则退化为传统机器学习训练过程。因此,自步学习的过程可以理解为从开始少量“简单”样本开始,逐渐引入更多样本,直至所有样本被选择进入模型。
最基本的SPL的优化过程很简单。当f(xi,yi,w)≤1/Kf(xi,yi,w)≤1/K时,vi=1vi=1,当f(xi,yi,w)>1/Kf(xi,yi,w)>1/K时,vi=0vi=0。特别地,当f(⋅)f(⋅)和r(⋅)r(⋅)均为凸函数时,上述自步学习的优化问题可以转化为双凸优化问题(biconvex optimization problem)。双凸优化问题是指对于待优化参数集合zz而言,参数集合可以被划分为互斥的两个集合z1z1和z2z2。如果任意一个参数集合zizi固定一组参数值时,另一组参数的优化问题可以看做是凸优化问题,那么该问题可以视为双凸优化问题。例如,在上述表达式中存在两组参数ww和vv,我们可以交替固定ww求得vv的最优解,然后固定vv求ww的最优解,该优化方法可以称为alternative convex search (ACS)方法,可以保证求得函数的局部最优解。
与其他方法的区别
机器学习方法中也存在相关方法用于选择样本,例如:主动学习(active learning)和协同训练(co-training)。自步学习与二者的区别在于自步学习中所有样本的标签是完全存在的,在每次迭代过程中,我们可以通过计算预测值和标签的差别来选择置信度高的样本。而主动学习和协同训练往往应用于半监督学习框架,其中主动学习倾向于选择当前模型下确定性或置信度低的样本,而协同训练则是从无标签数据中选择分类器认为置信度可能高的样本,选择的样本并没有标签,无法断定估计结果是否准确。相比之下,自步学习则是选择预测值与真实值接近的、即分类器可以分辨的置信度真的高的样本。