公式书写的问题测试 @WRITE站点

七、正则化(Regularization)

7.1 过拟合的问题

参考视频 : 7 - 1 - The Problem of Overfitting (10 min).mkv

我们目前学习了线性回归和逻辑回归算法,它们能有效地解决问题,但将其应用到特定的机器学习应用是,会遇到过拟合(over-fitting)的问题,导致模型的预测效果变差。

用线性回归中的预测房价举例:
over fitting
第一个模型是一个线性模型,属于欠拟合;第三个是一个四次方的模型,过分地拟合了原始数据,丢失了算法的本质:预测新数据,它预测新数据的表现一定会很差!

分类问题举例:
over fitting2

以多项式理解,x的次数越高,拟合的越好,但相应的预测新数据的能力就变得很差!

发现了过拟合问题,我们应该如何处理?
1. 丢弃一些不能帮助我们正确预测的特征。可以手工选择保留那些特征,或使用一些模型选择的算法(PCA等)来帮助清洗数据
2. 正则化。保留所有的特征,但是减小参数的大小(magnitude)

7.2 代价函数

参考视频 : 7 - 2 - Cost Function (10 min).mkv

在回归问题中假设模型是: hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 + θ 4 x 4 4 ,我们可以看出来:正是那些高次项导致了过拟合的产生。所以如果我们能让这些高次项的系数接近于0的话,我们就能很好的拟合了。

如何减小高次项的系数 θ θ 值呢?这就是正则化的基本方法。如果要减小 θ3,θ4 θ 3 , θ 4 ,我们需要修改代价函数,为 θ3,θ4 θ 3 , θ 4 设置惩罚项。修改后的代价函数如下:

J(θ)=12mi=1m(hθ(x(i))y(i))2+10000θ23+10000θ24minθJ(θ) J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 10000 θ 3 2 + 10000 θ 4 2 m i n θ J ( θ )
之后在最小化代价函数时也会把惩罚项考虑在内,导致选择较小的 θ3,θ4 θ 3 , θ 4

假如我们有非常多的特征,而且不知道哪些特征需要进行惩罚,我们将对所有的特征进行惩罚,一般化的代价函数如下:

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λj=1nθ2j] J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ]
其中 λ λ 称为正则化参数(Regularization Parameter)。注:根据惯例,我们不对 θ0 θ 0 进行惩罚。经过正则化出里的模型与原模型的可能对比如下图所示:
这里写图片描述
如果选择的正则化参数过大,则会把所有的参数都最小化了,导致模型变成 hθ(x)=θ0 h θ ( x ) = θ 0 ,也就是上图中的红色直线,是欠拟合。

所以对于正则化,我们要取一个合理的正则化参数值,这样才能取得比较好的效果。

7.3 正则化线性回归

之前介绍过两种求解线性回归的算法:一种基于梯度下降,一种基于正规方程。

(一)基于梯度下降求解正则化线性回归:

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λj=1nθ2j]minθJ(θ) J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] m i n θ J ( θ )

梯度下降算法为:

Repeat{ θj:=θjαθjJ(θ) } R e p e a t {   θ j := θ j − α ∂ ∂ θ j J ( θ )   }

求偏导数,分为j=0无惩罚和j≠0有惩罚:

j=0,θ0J(θ)=1mmi=1(hθ(x(i))y(i))x(i)0j0,θjJ(θ)=1m[mi=1(hθ(x(i))y(i))x(i)j+λθj] { j = 0 , ∂ ∂ θ 0 J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 0 ( i ) j ≠ 0 , ∂ ∂ θ j J ( θ ) = 1 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) + λ θ j ]

所以正则化线性回归的梯度下降算法为:
Repeat{ R e p e a t {

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0θj:=θjα1m[i=1m(hθ(x(i))y(i))x(i)j+λθj] θ 0 := θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 0 ( i ) θ j := θ j − α 1 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) + λ θ j ]
} }

(二)基于正规方程求解正则化线性回归:

θ=XTX+λ01111XTy θ = ( X T X + λ [ 0 1 1 1 ] ) − 1 X T y
其中矩阵大小为(n+1)*(n+1)

7.4 正规化逻辑回归

参考视频:7 - 4 - Regularized Logistic Regression (9 min).mkv

这里写图片描述
逻辑回归的代价函数:

J(θ)=1mi=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))] J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ]

正则化后的代价函数:

J(θ)=1mi=1m[y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]+λ2mj=1nθ2j J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2

所以正则化逻辑回归的梯度下降算法为:
Repeat{ R e p e a t {

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0θj:=θjα1m[i=1m(hθ(x(i))y(i))x(i)j+λθj] θ 0 := θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 0 ( i ) θ j := θ j − α 1 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) + λ θ j ]
} }

注意:虽然正则化逻辑回归的梯度下降的表达式和正则化线性回归的看起来一样,但是逻辑回归的 hθ(x)=g(θTx) h θ ( x ) = g ( θ T x ) 与线性回归 hθ=θTx h θ = θ T x 不同。记住 θ0 θ 0 不参与正则化。

目前大家对机器学习算法可能还只是略懂,不过一旦你精通了线性回归、高级优化算法和正则化技术,就已经说明你对机器学习理解已经非常深入了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值