正则化(Regularization)
标签(空格分隔): ML standford机器学习视频 笔记
过拟合的问题
正则化用来定位、处理过拟合的问题。无论是预测还是分类问题,都会有过拟合、欠拟合的问题出现,表现为假设函数与训练集的趋势没有很好匹配,通常因为函数模型太过简单或太过复杂。一般而言,函数模型中高次方相影响越多,更容易出现过拟合的问题。
对于过拟合问题,一般有两种方法:
1. 减少特征的数量
人工选择要保留的特征
通过一个选择算法
2. 正则化:减小(注意不是减少!!!)参数
θj
,当有很多有点小用的特征是效果好。
代价函数
通过修改代价函数来减小某些参数
θ
的影响。如想要消除下式中3,4次项的影响:
θ0+θ1x+θ2x2+θ3x3+θ4x4
minθ 12m∑i=1m(hθ(x(i))−y(i))2+1000⋅θ23+1000⋅θ24
此时,为了减小代价函数,显然需要
θ3
和
θ4
尽可能接近于0.同样可以对所有参数同时进行“惩罚”:
minθ 12m [∑i=1m(hθ(x(i))−y(i))2+λ ∑j=1nθ2j]
通过控制
λ
来控制拟合程度。显然
λ
越大,拟合程度越低,曲线更光滑。
正则化适用于线性回归和逻辑回归。
正则线性回归
对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。
1.基于梯度下降
修正梯度下降方程,注意
θ0
需要排除在外。
Repeat { θ0:=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj:=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]} j∈{1,2...n}
可以整理成:
θj:=θj(1−αλm)−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
理解为在每一次更新时都人为减小
θj
的量。
2.基于正规方程(Normal Equation)
方程修正为:
θ=(XTX+λ⋅L)−1XTywhere L=⎡⎣⎢⎢⎢⎢⎢⎢⎢011⋱1⎤⎦⎥⎥⎥⎥⎥⎥⎥
其中L用来实现正则化。之前当m<=n时,
XTX
不可逆,加了L矩阵也能解决这一问题。
正则逻辑回归
逻辑回归的代价函数如下:
J(θ)=−1m∑i=1m[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]
修正后如下:
J(θ)=−1m∑i=1m[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]+λ2m∑j=1nθ2j
注意,这里同样没有对
θ0
进行正则化。则逻辑回归的梯度下降为:
Repeat { θ0:=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj:=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]} j∈{1,2...n}