机器学习中的范数规则化之(一)L0、L1 与 L2 范数
监督机器学习问题就是“minimizeyour error while regularizing your parameters”,也就是在
规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规
则化参数是防止我们的模型过分拟合我们的训练数据。
然而参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会
很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是
能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得
到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来
实现的。
另外,规则项的使用还可以约束我们的模型的特性。这样就可以将人对这个模型的先验
知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、
平滑等等。要知道,有时候人的先验是非常重要的。对机器学习也是一样。
还有几种角度来看待规则化的。规则化符合奥卡姆剃刀(Occam's razor)原理:在所有可
能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单的模型。从贝叶斯估
计的角度来看,规则化项对应于模型的先验概率。民间还有个说法就是,规则化是结构风险
最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或惩罚项(penalty term)。
一般来说,监督学习可以看做最小化下面的目标函数:
其中,第一项 L(y
i
,f(x
i
;w))衡量我们的模型(分类或者回归)对第 i 个样本的预测值 f(x
i
;w)
和真实的标签 y
i
之前的误差。因为我们的模型是要拟合我们的训练样本的,所以我们要求
这一项最小,也就是要求我们的模型尽量的拟合我们的训练数据。但要保证训练误差最小和
模型测试误差小,所以我们需要加上第二项,也就是对参数 w 的规则化函数 Ω(w)去约束我
们的模型尽量的简单。
其实,机器学习的大部分带参模型都和这个不但形似,而且神似。是的,其实大部分无
非就是变换这两项而已。对于第一项 Loss 函数,如果是 Square loss,那就是最小二乘了;
如果是 Hinge Loss,那就是著名的 SVM 了;如果是 exp-Loss,那就是牛逼的 Boosting 了;
如果是 log-Loss,那就是 Logistic Regression 了;还有等等。不同的 loss 函数,具有不同的
拟合特性,得就具体问题具体分析的。
评论4