正则化(Regularization):机器学习中为损失函数加一个额外项,一般为参数w的L1范数和L2范数,这种行为被称作正则化.
额外项是L1范数叫L1正则化:形式如下图(C0为原损失函数,lamda为正则化系数)
![](https://i-blog.csdnimg.cn/blog_migrate/a7733e6a4ca74bf27fb6ae179591d38b.jpeg)
额外项是L2范数叫L2正则化:形式如下图
![](https://i-blog.csdnimg.cn/blog_migrate/07f94e42b79aa0d013deff494b8a06a9.webp?x-image-process=image/format,png)
为什么正则化能减少过拟合?
过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers. 正则化则是对模型参数添加先验,使得模型复杂度较小,对于噪声以及outliers的输入扰动相对较小。
过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
避免过拟合的方法有很多:
- early stopping
- 数据集扩增(Data augmentation)
- 正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay)
- dropout。
这里只说了正则化
参考文章
- 正则化为什么能防止过拟合(重点地方标红了) - alexanderkun - 博客园
- [机器学习]正规化_for justice-CSDN博客_正规化
- 机器学习中正则化项L1和L2的直观理解_小平子的专栏-CSDN博客_l1和l2正则化