【AndrewNg机器学习】正则化(Regularization)

本文探讨了过拟合问题及其在回归和分类任务中的表现。正则化作为一种有效的方法,通过在代价函数中加入惩罚项来防止模型过度复杂。介绍了正则化线性回归和逻辑回归的代价函数及对应的梯度下降算法,强调了正则化参数λ的选择对模型简化程度的影响。
摘要由CSDN通过智能技术生成

1 过拟合问题

如下图所示的回归问题,第一个模型是线性模型,欠拟合,不能很好地适应训练集;第三个模型就属于过拟合,太过于强调训练数据,而不能推广到新的数据,进行对新数据的预测。中间的模型最为合适。


在这里插入图片描述

同样的,在分类问题中也有这种现象:


在这里插入图片描述

如何处理过拟合问题:

  • 丢弃一些不能帮助我们正确预测的特征。可以手工选择保留哪些特征,或使用模型算法来帮忙
  • 正则化,保留所有的特征,但是减少参数的大小

2 正则化

在上面的回归问题中我们的过拟合模型为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4 hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
可以看出,正是高次项导致了过拟合的产生,如果我们能让这些高次项接近0的话,就可以解决这个问题。所以我们要在一定程度上减小 θ 3 , θ 4 \theta_3,\theta_4 θ3,θ4的大小,即在代价函数上进行修改,在 θ 3 , θ 4 \theta_3,\theta_4 θ3,θ4上设置惩罚: min ⁡ θ 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 θ 3 2 + 10000 θ 4 2 ] \min_\theta \frac{1}{2m}[ \sum_{i=1}^m (h_\theta(x^{(i)}) -y^{(i)} )^2 + 1000\theta_3^2 + 10000\theta_4^2 ] θmin2m1[i=1m(hθ(x(i))y(i))2+1000θ32+10000θ42]通过这样的代价函数,得到的 θ 3 , θ 4 \theta_3,\theta_4 θ3,θ4就会比以前的小很多。假如数据过多的话,我们就要对所有的特征进行惩罚: min ⁡ θ 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] \min_\theta \frac{1}{2m}[ \sum_{i=1}^m (h_\theta(x^{(i)}) -y^{(i)} )^2 + \lambda \sum_{j=1}^n \theta_j^2 ] θmin2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]其中 λ \lambda λ称为正则化参数(Regularization Parameter),根据惯例,我们不对 θ 0 \theta_0 θ0进行惩罚,经过正则化后,模型的前后对比如下图:


在这里插入图片描述

λ \lambda λ过大,则所有参数都会变小,模型就会变成 h θ ( x ) = θ 0 h_\theta(x)=\theta_0 hθ(x)=θ0,也就是图中红色直线的情况。

3 正则化应用

3.1 正则化线性回归

正则化线性回归的代价函数为: J ( θ ) = 1 2 m ∑ i = 1 m [ ( ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ) ] J ( \theta ) = \frac { 1 } { 2 m } \sum _ { i = 1 } ^ { m } \left[ \left( \left( h _ { \theta } ( x ^ { ( i ) } ) - y ^ { ( i ) } \right) ^ { 2 } + \lambda \sum _ { j = 1 } ^ { n } \theta _ { j } ^ { 2 } \right )\right ] J(θ)=2m1i=1m[((hθ(x(i))y(i))2+λj=1nθj2)]
然后进行梯度下降算法,由于我们没有对 θ 0 \theta_0 θ0进行正则化,所以梯度下降算法分为两种情形: θ 0 : = θ 0 − α 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x 0 ( i ) \theta _ { 0 } : = \theta _ { 0 } - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right] x _ { 0 } ^ { ( i ) } θ0:=θ0αm1i=1m[hθ(x(i))y(i)]x0(i) θ j : = θ j − α [ 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) + λ m θ j ] \theta _ { j } : = \theta _ { j } - \alpha \left[\frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right] x _ { j } ^ { ( i ) } + \frac { \lambda } { m } \theta _ { j } \right] θj:=θjα[m1i=1m[hθ(x(i))y(i)]xj(i)+mλθj]对上面的算法中 j =1,2,3…,n时的式子进行化简得: θ j : = θ j ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta _ { j } : = \theta _ { j } \left( 1 - \alpha \frac { \lambda } { m } \right) - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) x _ { j } ^ { ( i ) } θj:=θj(1αmλ)αm1i=1m(hθ(x(i))y(i))xj(i)

3.2 正则化逻辑回归模型

正则化逻辑回归得代价函数: J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J ( \theta ) = -\frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y ^ { ( i ) } \log \left( h _ { \theta } \left( x ^ { ( i ) } \right) \right) + \left( 1 - y ^ { ( i ) } \right) \log \left( 1 - h _ { \theta } \left( x ^ { ( i ) } \right) \right) \right] + \frac { \lambda } { 2 m } \sum _ { j = 1 } ^ { n } \theta _ { j } ^ { 2 } J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2
梯度下降算法为: θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 0 ( i ) ) \theta _ { 0 } : = \theta _ { 0 } - \alpha \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left( \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) \cdot x _ { 0 } ^ { ( i ) } \right) θ0:=θ0αm1i=1m((hθ(x(i))y(i))x0(i)) θ j : = θ j − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) + λ m θ j ) \theta _ { j } : = \theta _ { j } - \alpha \frac { 1} { m } \sum _ { i = 1 } ^ { m } \left( \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) \cdot x _ { j } ^ { ( i ) } + \frac { \lambda } { m } \theta _ { j } \right) θj:=θjαm1i=1m((hθ(x(i))y(i))xj(i)+mλθj)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值