原理解析-过拟合与正则化

什么是过拟合

本来关于过拟合与正则化,我是不打算写一篇文章的,今晚想了想,还是写一篇吧。

一是直接写带正则化的线性回归代码,显得有些突兀;
二是这个东西确实比较重要,我这里会尽量简单的讲清楚。

什么是过拟合?
我们都知道,目前我们在讲的线性回归,是监督学习里面的一种,通过对样本的学习训练,得出合适的参数,使得损失函数在这些样本上最小,即在样本上表现良好,但是我们之所以训练模型,是为了让它在未知样本上,同样表现良好(所以正常的我们做机器学习,会把样本分成训练集、测试集,当模型在训练集、测试集表现稳定,效果也很好时,我们的这次机器学习训练才算成功,这个模型才有泛化能力)。

下面看一张很经典的图:
在这里插入图片描述
图二就是正常拟合,符合数据的趋势,
而图三,虽然在训练集上拟合得很好,但是出现未知数据时,比如Size很大时,根据目前拟合来看,可能得到的结果很小,与实际误差会很大。

因此,我们仅仅使得损失函数在样本上最小,是不够的,我们来看监督机器学习的核心原理公式:(这个LaTeX 数学公式必须手打了,毕竟核心公式)

m i n 1 M ∑ i = 1 M L ( y i , f ( x i ) ) + λ J ( f ) min\frac{1}{M}\sum_{i=1}^{M} L(y_i,f(x_i)) + \lambda{J(f)} minM1i=1ML(yi,f(xi))+λJ(f)

以上才是监督算法的损失函数的完整形式, 1 M ∑ i = 1 M L ( y i , f ( x i ) ) \frac{1}{M}\sum_{i=1}^{M} L(y_i,f(x_i)) M1i=1ML(yi,f(xi))这个部分代表经验误差函数,即在样本上训练的损失,
而后面部分 λJ(f) 代表结构误差函数,也称为正则项,惩罚项,正则化参数的同时,最小化经验误差函数,最小化经验误差是为了极大程度的拟合训练数据,正则化参数是为了防止过分的拟合训练数据,因此对系数进行一定的惩罚。

OK,过拟合应该讲得很清楚了,接下来讲线性回归三种形式的正则化。

线性回归中,正则化一般怎么实现?

L0正则化解析

L0是指向量中非0的元素的个数。如果用L0来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。换句话说,让参数W是稀疏的。

L0正则化的最优化问题是一个NP hard问题,L1正则化是L0正则化的最优凸近似,这里我们不展开L0的讨论,大家知道有这么个东西就可以了。

L1正则化解析

带L1正则化的线性回归也叫Lasso回归,其全称是The Least Absolute Shrinkage and Selectionator operator,直译过来就是最小绝对值收缩和选择算子,表现形式为:
λ ∑ j = 1 n ∣ ∣ θ j ∣ ∣ \lambda{\sum_{j=1}^{n}}\vert\vert{\theta_j}\vert\vert λj=1nθj
代表向量中各个元素绝对值之和,λ为正则化系数。

L1正则化为什么可以防止过拟合?

L1正则化之所以可以防止过拟合,是因为L1范数就是各个参数的绝对值相加得到的,参数值大小和模型复杂度是成正比的。因此如果拟合出一个复杂的模型(即出现了过拟合),其L1范数就大,这样L1正则化惩罚就高,整体损失函数就没有收敛,
所以最终不会选择这些过拟合的参数。
同时,L1正则化会使得参数稀疏,一部分参数的系数会变为0。

问题:稀疏的参数代表模型越简单吗?
回答:是的,模型简化,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,
那么可以对训练数据可以预测的很好,但是对测试数据就很差了。参数变少也可以使整个模型获得更好的可解释性。

问题:参数值越小代表模型越简单吗?
回答:是的。为什么参数越小,说明模型越简单呢,这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,
甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,
而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

为什么L1正则化会使得参数稀疏,一部分参数的系数会变为0?

1.从数学角度来看,我们手写一下
在这里插入图片描述
2、从图像来看,
在这里插入图片描述
假设有2个参数,暂且用w1,w2来表示,y = |w1| + |w2| ,函数图像如上图的四边形,圆圈表示w1,w2取不同值时整个正则化项的值的等高线,很明显很容易在顶点处相交,此时w1=0

后面会用实例来展示L1可以防止过拟合,也会使系数稀疏。

链接: 手写算法-python代码实现Lasso回归与实例展示

L2正则化解析

带L2正则化的线性回归也叫岭回归,Ridge回归,也叫它“权值衰减weight decay”,表现形式为:
λ ∑ j = 1 n θ j 2 \lambda{\sum_{j=1}^{n}}{\theta_j}^2 λj=1nθj2
代表向量中各个元素平方之和,λ为正则化系数。

L2正则化为什么可以防止过拟合?

L2正则化会使得参数接近于0。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。
同样的,如果拟合出一个复杂的模型(即出现了过拟合),其L2范数就大,这样L2正则化惩罚就高,整体损失函数就没有收敛,
所以最终不会选择这些过拟合的参数。

为什么L2正则化会使得参数接近0,而不会变为0?

1、从数学角度来看,
在这里插入图片描述
2、从图像来看,
在这里插入图片描述
假设有2个参数,暂且用w1,w2来表示,y = w1^2 + w2^2 ,函数图像就是一个圆形,圆圈表示w1,w2取不同值时整个正则化项的值的等高线,很明显不容易在顶点处相交,因此参数不会变为0,只会接近0。

后面会用实例来展示L2可以防止过拟合,也会使系数趋近于0。

链接: 手写算法-python代码实现Ridge(L2正则项)回归

总结

L1、L2应该讲清楚了,其实还有一种正则化,弹性网Elastic Net,就是L1和L2结合在一起,L1、l2理解了,弹性网就能理解。介于两者之间
在这里插入图片描述
接下来会写2种正则化回归Python代码,里面会用实例展示效果。

  • 30
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 正则化是一种用于限制模型复杂度的正则化技术,它使学习算法更健壮,更稳定,更可靠。它通过向模型添加附加项(正则化项),以降低模型复杂度。正则化项可以是L1正则化(Lasso正则化)或L2正则化(Ridge正则化)等。 ### 回答2: 在机器学习中,正则化是一种通过在模型的损失函数中引入惩罚项来避免过拟合的技术。其原理是通过约束模型的复杂度,使得模型更加简单而具有较好的泛化能力。 正则化主要有两种形式:L1正则化和L2正则化。L1正则化引入了模型参数的绝对值之和作为惩罚项,即通过最小化损失函数和正则化项的和来寻找最优解。L2正则化则引入了模型参数的平方和作为惩罚项,即通过最小化损失函数和正则化项的和来寻找最优解。 正则化原理是通过对模型参数进行约束,可以使得某些参数趋近于0,从而实现特征选择和降低模型复杂度的目的。L1正则化倾向于产生稀疏解,即只有部分参数非0,从而实现特征选择,有助于模型的解释性。而L2正则化则倾向于参数趋近于0而非完全为0,可以降低模型的复杂度,并避免过拟合正则化可以有效地控制模型的复杂度,在训练过程中通过平衡拟合程度和模型复杂度来选择最优解。当正则化力度较大时,模型会更加关注减小正则化项,从而更加趋向于简单的模型。当正则化力度较小时,模型会更加关注拟合训练数据,可能导致过拟合。 总之,正则化机器学习中用于避免过拟合、提高模型泛化能力的重要技术。通过限制模型的复杂度,正则化可以提高模型的性能和稳定性。 ### 回答3: 机器学习中的正则化是一种通过添加惩罚项来控制模型复杂度的技术。正则化的目的是防止模型过拟合(overfitting),即在训练数据上表现优秀但在新数据上表现较差的情况。 正则化原理是在模型的损失函数中,加入一个额外的惩罚项,以限制模型参数的取值范围。这个惩罚项可以是L1正则化(L1 regularization)或者L2正则化(L2 regularization)。 L1正则化通过在损失函数中加入模型参数的绝对值之和乘以一个超参数lambda的惩罚项,使得模型参数趋向于稀疏化。通过L1正则化,可以使得模型自动选择重要的特征,并且减少不相关或冗余特征的影响。 L2正则化通过在损失函数中加入模型参数的平方之和乘以一个超参数lambda的惩罚项,使得模型参数的取值更加平滑。通过L2正则化,可以减小模型参数的大小,并且降低模型对训练数据中的噪声的敏感性。 正则化原理是在训练模型时,通过调整惩罚项的权重,平衡拟合训练数据和控制模型复杂度之间的关系。正则化在一定程度上约束了模型的自由度,使得模型更加稳定、泛化能力更强,从而能够更好地适应新数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值