Data Science

正则化(Regularization)

2019-01-29  本文已影响40人  此间不留白

过拟合(overfitting)

在之前的学习中,我们已经了解了线性回归和逻辑回归的相关问题,并且学习了两种算法的假设函数和梯度下降的基本算法。但是,在算法的实际应用中,并不是特征值越多,假设函数与训练数据集拟合的越完美越好,或者说其代价函数为0(J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\approx0),出现这种情况会使得假设函数预测新的数据变得困难,称之为过拟合(Overfitting),过拟合如下图所示:

为了解决过拟合问题,有以下解决方案:

  1. 减少特征
  1. 正则化

线性回归的正则化

正则化的思想就是减少高次项\theta的值,使得曲线平滑,因此,在线性回归算法中的代价函数可以如下表示:
J(\theta) = \frac{1}{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}\theta_j^2]

以上公式中,\lambda表示正则化参数,在算法实际运行过程中,要选择合适的\lambda值,不能使其过大,否则可能会导致过拟合不能被消除,或者梯度下降算法不收敛。

\ \ \ \theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2x_j^{(i)}

\}

\ \ \ \theta =(X^TX)^{-1}X^Ty

正规方程法的正则化算法公式如下:

\ \ \ \theta =(X^TX+\lambda L)^{-1}X^Ty

其中 L表示(n+1)x(n+1)的对角矩阵,其主对角线第一个元素为0,其余全为1.

逻辑回归算法的正则化

与线性回归算法类似,逻辑回归算法的正则化也是通过减少高次项\theta的值,使得决策边界变得平滑,以避免出现过拟合问题,其代价函数正则化用如下公式表示:

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

梯度下降算法中的正则化表示如下所示:

Repeat \ \ \{
\theta_0 := \theta_0- \alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2x_0^{(i)}

\ \ \ \theta_j:=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2x_j^{(i)}

\}

需要注意的是:与线性回归不同的是,此时

h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}}

上一篇 下一篇

猜你喜欢

热点阅读