在机器学习中,正则化是相对于过拟合出现的一种特征选择的方法。在机器学习算法中使用的Loss项为最小化误差,而最小化误差是为了让我们的模型拟合我们的训练数据,此时,若参数过分拟合我们的训练数据就会形成过拟合的问题,而规则化参数的目的就是为看防止我们的模型过分拟合我们的训练数据。此时,我们会在Loss项之后加上正则项以约束模型中的参数:
其中,
为损失函数项,
为正则项。
正则化的方法主要有两种:
其中,L1正则和L2正则的形式如下:
其中,
为大于0的常数。
在很多讲解正则化的材料中都会有如下的一张图
(图片来自:http://www.zhihu.com/question/20700829)
左图是L2正则,右图为L1正则。当模型中只有两个参数,即
和
时,L2正则的约束空间是一个圆,而L1正则的约束空间为一个正方形,这样,基于L1正则的约束会产生稀疏解,如图所示,即图中某一维(
)为0。而L2正则只是将参数约束在接近0的很小的区间里,而不会正好为0。对于L1正则产生的稀疏解有很多的好处,如可以起到特征选择的作用,因为有些维的系数为0,说明这些维对于模型的作用很小。
对于带有L1正则的函数
对于
,若其符号确定后(即确定变量所在的象限(Orthant)),函数
即为线性函数,此时的函数是可导的函数。
基于以上L1正则的特点,微软提出了OWL-QN(Orthant-Wise Limited-Memory Quasi-Newton)算法,该算法是基于L-BFGS算法的可用于求解L1正则的算法。简单来讲,OWL-QN算法是指假定变量
的象限确定的条件下使用L-BFGS算法来更新,同时,使得更新前后变量在同一个象限中(使用映射来满足条件)。
在OWL-QN算法中,为了使得更新前后的变量在同一个象限中,定义了一些特殊的函数,用于求解L1正则的问题。
参考文献
[1] Scalable Training of L1-Regularized Log-Linear Models