欠拟合是指拟合算法具有高偏差,数据拟合效果很差。
过拟合是指拟合算法具有高方差,能拟合所有数据,但函数变量太多,没有足够的数据来约束,从而无法泛化到新的样本中。
如果有非常多的特征,而只有非常少的训练数据,通过学习得到的模型可能能够非常好地适应训练集(代
价函数可能几乎为 0),但是可能会不能推广到新的数据。
过拟合是指拟合算法具有高方差,能拟合所有数据,但泛化能力差。
一般可以用减少特征的数量或正则化来解决过拟合的问题。
正是假设函数中多项式的次数过高导致了过拟合的产生,因此如果让这些高次项的系数接近于0的话,相等于假设函数仍然是次数较低的函数、更加平滑,则可以解决过拟合的问题。
假如有非常多的特征,预先并不知道其中哪些特征是高次项,因此需要修改代价函数对所有的特征进行惩罚。具体的修改方法为在原本代价函数的基础上加一个正则化项 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2]。需要注意的是没有对 θ 0 \theta_0 θ0进行惩罚,这是约定俗成的,但是否有这一项在实际中对结果影响不大。
λ ∑ j = 1 n θ j 2 \lambda \sum_{j=1}^{n} \theta_{j}^{2} λ∑j=1nθj2是正则化项, λ \lambda λ是正则化参数,用于在拟合训练集和保持参数尽可能小(从而避免出现过拟合)的两个目标之间进行权衡。
并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的 能防止过拟合问题的假设。
如果 λ \lambda λ过大,为了使得代价函数尽可能小,所有的 θ i \theta_i θi(不包括 θ 0 \theta_0 θ0)都会趋于0,最终得到的是一条平行于 x x x轴的直线,就造成了欠拟合。
所以对于正则化,需要取一个合理的 λ \lambda λ的值,这样才能更好的应用正则化。
正则化项能使得参数尽可能小,从而解决过拟合的问题。
正则化线性回归的代价函数为 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2]。
进行梯度下降的过程为
θ
0
:
=
θ
0
−
a
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
0
(
i
)
θ
j
:
=
θ
j
−
a
[
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
+
λ
m
θ
j
]
对第二个式子进行一些变换可得 θ j : = θ j ( 1 − a λ m ) − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}:=\theta_{j}\left(1-a \frac{\lambda}{m}\right)-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} θj:=θj(1−amλ)−am1∑i=1m(hθ(x(i))−y(i))xj(i),其中 1 − a λ m 1-a \frac{\lambda}{m} 1−amλ是一个比1略小的值。也就是说,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令 θ \theta θ值减少了一个额外的值。
一般线性回归模型的正规方程法的求解方法为 θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)−1XTy 。
正则化线性回归模型的正规方程法的求解方法为
θ
=
(
X
T
X
+
λ
[
0
1
1
⋱
1
]
)
−
1
X
T
y
\theta=\left(X^{T} X+\lambda\left[
本节将梯度下降法和正规方程法推广到了正则化线性回归中。
类似正则化线性回归模型的处理方式,对于逻辑回归,也给代价函数增加一个正则化的表达式,得到代价函数 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}\left[-y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)-\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]+\frac{\lambda}{2 m} \sum_{j=1}^{n} \theta_{j}^{2} J(θ)=m1∑i=1m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]+2mλ∑j=1nθj2。
得到梯度下降法的过程为:
θ
0
:
=
θ
0
−
a
1
m
∑
i
=
1
m
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
0
(
i
)
)
\theta_{0}:=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{0}^{(i)}\right)
θ0:=θ0−am1∑i=1m((hθ(x(i))−y(i))x0(i))
θ
j
:
=
θ
j
−
a
[
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
+
λ
m
θ
j
]
\theta_{j}:=\theta_{j}-a\left[\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}+\frac{\lambda}{m} \theta_{j}\right]
θj:=θj−a[m1∑i=1m(hθ(x(i))−y(i))xj(i)+mλθj]
本节将梯度下降法和正规方程法推广到了正则化逻辑回归中。