正则化
往期内容
欠拟合和过拟合
欠拟合(underfutting): 训练出来的模型不能很好地适应训练集,也就是说在训练集和交叉验证集中,模型都表现得不够好。如图(a)。
过拟合(overfitting): 模型过于强调拟合原始的训练集数据,最终表现为在训练集上拟合得很好,但是在交叉验证集上拟合得很差。如图(c)。通常,解决过拟合的方法有:主成分分析(丢弃一些特征)、正则化(减少参数大小)。
正则化
模型举例
对于如下模型,常常会因为高次项而过拟合:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
2
+
θ
3
x
3
3
+
θ
4
x
4
4
h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2^2+\theta_3x_3^3+\theta_4x_4^4
hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44
为例降低高次项的影响,改善过拟合程度,可以通过正则化引入正则化参数(
λ
\lambda
λ)对模型参数进行惩罚。修改后的代价函数如下:
J
(
θ
)
=
1
2
m
[
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
θ
j
2
]
J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2]
J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
注意:①这里不对
θ
0
\theta_0
θ0进行惩罚
②
λ
\lambda
λ过大,会把所有的参数最小化,导致模型最后变成
h
θ
(
x
)
=
θ
0
h_\theta(x)=\theta_0
hθ(x)=θ0,会造成欠拟合;
λ
\lambda
λ过小,又会使参数得不到抑制。所以,在进行正则化前,要选取一个合理的
λ
\lambda
λ值。
正则化线性回归
代价函数
J ( θ ) = 1 2 m ∑ i = 1 m [ ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}[(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^n\theta_j^2] J(θ)=2m1i=1∑m[(hθ(x(i))−y(i))2+λj=1∑nθ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(h_\theta(x^{(i)})-y^{(i)})\cdot x_0^{(i)} θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))⋅x0(i) θ j : = θ j ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))⋅xj(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 J(\theta)=\frac{1}{m}\sum_{i=1}^m[-y^{(i)}\log(h_\theta(x^{(i)}))-(1-y^{(i)})\log(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 J(θ)=m1i=1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθ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(h_\theta(x^{(i)})-y^{(i)})\cdot x_0^{(i)} θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))⋅x0(i) θ j : = θ j ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))⋅xj(i)