LO,L1和L2范式
监督机器学习问题无非就是再规则化参数的同时最小化误差。
- *最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据
规则化参数的作用:
- *使得模型简单,且具有好的泛化性能(也就是测试误差小)
- *将人对这个模型的先验知识融入到模型的学习当中,使得模型具有稀疏、低秩、平滑等等特性。
规则化符合奥卡姆剃刀原理
- *思想:在所有可能选择的模型中,我们应该选择很好地解释已知数据并且十分简单的模型。规则化是结构风险最小化策略的实现,是在经验风险上加了一个正则化项(regularizer)或者惩罚项(penalty term).
一般监督学习可以看做最小化下面的目标函数:
- *机器学习大部分模型目标函数基本都是如此,无非就是变换这两项而已。
-第一项LOSS函数:
– square loss, 那就是最小二乘;
– log-Loss, 那就是Logistic Regression;
–Hinge Loss, 那就是SVM;
–exp-Losss, 那就是牛逼的Boosting了;
Lo,L1和L2范式的介绍如下:
L0:计算非零个数,用于产生稀疏性,但是在实际研究中很少用,因为L0范数很难优化求解,是一个NP-hard问题,因此更多情况下我们是使用L1范数
L1:计算绝对值之和,用以产生稀疏性,因为它是L0范式的一个最优凸近似,容易优化求解
L2:计算平方和再开根号,L2范数更多是防止过拟合,并且让优化求解变得稳定很快速(这是因为加入了L2范式之后,满足了强凸)。
计算方式分别是:L1:计算绝对值之和,用以产生稀疏性,因为它是L0范式的一个最优凸近似,容易优化求解
L2:计算平方和再开根号,L2范数更多是防止过拟合,并且让优化求解变得稳定很快速(这是因为加入了L2范式之后,满足了强凸)。
L1范数:
L2范数:
,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方
上图中,蓝色的圆圈表示原问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于2范数解范围是圆,所以相切的点有很大可能不在坐标轴上(感谢评论区@临熙指出表述错误),而由于1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,1范数可以导致稀疏解,2范数导致稠密解。那么为什么不用0范数呢,理论上它是求稀疏解最好的规范项了。然而在机器学习中,特征的维度往往很大,解0范数又是NP-hard问题,所以在实际中不可行。但是用1范数解是可行的,并且也可以得到稀疏解,所以实际稀疏模型中用1范数约束。
至此,我们总结一下,在机器学习中,以0范数和1范数作为正则项,可以求得稀疏解,但是0范数的求解是NP-hard问题; 以2范数作为正则项可以得到稠密解,并且由于其良好的性质,其解的定义很好,往往可以得到闭式解,所以用的很多。
为什么L1正则项可以做到把权重参数调整为0,实现稀疏化: https://liam0205.me/2017/03/30/L1-and-L2-regularizer/ 这篇文章讲的不错