ML(七)_正则化

正则化(Regularization)

标签(空格分隔): ML standford机器学习视频 笔记


过拟合的问题

正则化用来定位、处理过拟合的问题。无论是预测还是分类问题,都会有过拟合、欠拟合的问题出现,表现为假设函数与训练集的趋势没有很好匹配,通常因为函数模型太过简单或太过复杂。一般而言,函数模型中高次方相影响越多,更容易出现过拟合的问题。
对于过拟合问题,一般有两种方法:
1. 减少特征的数量
人工选择要保留的特征
通过一个选择算法
2. 正则化:减小(注意不是减少!!!)参数 θ j ,当有很多有点小用的特征是效果好。

代价函数

通过修改代价函数来减小某些参数 θ 的影响。如想要消除下式中3,4次项的影响:

θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4

m i n θ   1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 + 1000 θ 3 2 + 1000 θ 4 2

此时,为了减小代价函数,显然需要 θ 3 θ 4 尽可能接近于0.同样可以对所有参数同时进行“惩罚”:
m i n θ   1 2 m   [ i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 + λ   j = 1 n θ j 2 ]

通过控制 λ 来控制拟合程度。显然 λ 越大,拟合程度越低,曲线更光滑。
正则化适用于线性回归和逻辑回归。

正则线性回归

对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。
1.基于梯度下降
修正梯度下降方程,注意 θ 0 需要排除在外。

Repeat   {         θ 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 ) ) + λ m θ j ]                     j { 1 , 2... n } }

可以整理成:
θ j := θ j ( 1 α λ m ) α 1 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) x j ( i )

理解为在每一次更新时都人为减小 θ j 的量。
2.基于正规方程(Normal Equation)
方程修正为:
θ = ( X T X + λ L ) 1 X T y where     L = [ 0 1 1 1 ]

其中L用来实现正则化。之前当m<=n时, X T X 不可逆,加了L矩阵也能解决这一问题。

正则逻辑回归

逻辑回归的代价函数如下:

J ( θ ) = 1 m i = 1 m [ y ( i )   log ( h θ ( x ( i ) ) ) + ( 1 y ( i ) )   log ( 1 h θ ( x ( i ) ) ) ]

修正后如下:
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

注意,这里同样没有对 θ 0 进行正则化。则逻辑回归的梯度下降为:
Repeat   {         θ 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 ) ) + λ m θ j ]                     j { 1 , 2... n } }




猜你喜欢

转载自blog.csdn.net/weixin_31270811/article/details/79641666