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