7.1 过拟合的问题
处理过拟合问题(over-fitting):
-
丢弃一些无用特征
-
正则化(regularization)
7.2 代价函数
对于模型 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,由于高次项导致过拟合的产生,如果能让这些高次项的系数接近0的话,可以很好的拟合。所以要减少这些参数的值,这是正则化的基本方法。如果要减少 θ 3 \theta_3 θ3和 θ 4 \theta_4 θ4的大小,修改代价函数,在其中 θ 3 \theta_3 θ3+ θ 4 \theta_4 θ4设置惩罚。修改后的函数如下:
m i n θ 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 θ 3 2 + 1000 θ 4 2 ] min_\theta \frac{1}{2m}[\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+1000\theta_3^2+1000\theta_4^2] minθ2m1[i=1∑m(hθ(x(i))−y(i))2+1000θ32+1000θ42]
通过这样的代价函数选择的 θ 3 \theta_3 θ3和 θ 4 \theta_4 θ4对预测结果的影响比之前小很多。假如我们有很多的特征,我们并不知道哪些特征需要惩罚,我们将对所有的特征进行惩罚,代价函数如下: J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2m}[\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum\limits_{j=1}^n\theta_j^2] J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
其中 λ \lambda λ又称为正则化参数(Regularization Parameter)。
不对 θ 0 \theta_0 θ0进行惩罚
如果选择的正则化参数 λ \lambda λ过大,则会把所有的参数都最小化,导致模型变成 h θ ( x ) = θ 0 h_\theta(x)=\theta_0 hθ(x)=θ0,造成欠拟合。所以, λ \lambda λ要取一个合理值。
7.3 正则化线性回归
对于线性回归的求解,之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程
正则化线性回归的代价函数为:
J ( θ ) = 1 2 m [ ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2m}[(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum\limits_{j=1}^n\theta_j^2] J(θ)=2m1[(hθ(x(i))−y(i))2+λj=1∑nθj2]
如果使用梯度下降法令这个代价函数最小化,
因为我们未对 θ 0 \theta_0 θ0进行正则化,所以梯度下降算法分2种情形:
r e p e a t repeat repeat u n t i l until until c o n v e r g e n c e convergence convergence{
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^m((h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}) θ0:=θ0−αm1i=1∑m((hθ(x(i))−y(i))x0(i))
θ j : = θ j − α [ 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m θ j ] \theta_j:=\theta_j-\alpha[\frac{1}{m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\frac{\lambda}{m}\theta_j] θj:=θj−α[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
f o r j = 1 , 2 , ⋯ , n for j=1,2,\cdots,n forj=1,2,⋯,n
}
我们同样利用正规方程来求解正则化线性回归模型,方法如下:
7.4 正则化的逻辑回归模型
针对逻辑回归问题,之前学过2种优化算法:梯度算法和高级优化算法。
代价函数加入正则化表达式,得到代价函数:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) l o g ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{m}\sum\limits_{i=1}^m[-y^{(i)}log(h_\theta(x^{(i)}))-(1-y^{(i)})log(1-h_\theta(x^{(i)}))]+\frac{\lambda}{2m}\sum\limits_{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
最小化该代价函数,通过求导,得到梯度下降算法为:
r e p e a t repeat repeat u n t i l until until c o n v e r g e n c e convergence convergence{
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)} θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))x0(i)
θ j : = θ j − α [ 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) + λ m θ j ] \theta_j:=\theta_j-\alpha[\frac{1}{m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\frac{\lambda}{m}\theta_j] θj:=θj−α[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
f o r j = 1 , 2 , ⋯ , n for j=1,2,\cdots,n forj=1,2,⋯,n
}