正则化(Regularization)

过拟合(overfitting)

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

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

  1. 减少特征
  • 手动选择需要保留的特征
  • 采取模型选择算法
  1. 正则化
  • 保留所有参数,但是减少每一个参数\theta_j的值
  • 当我们有很多特征而假设函数依然能够很好的工作,确保每一个特征对预测y值都有所贡献。

线性回归的正则化

正则化的思想就是减少高次项\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值,不能使其过大,否则可能会导致过拟合不能被消除,或者梯度下降算法不收敛。

  • 梯度下降算法中的正则化
    梯度下降算法中应用正则化方法如下所示
    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)}

\}

  • 正规方程法的正则化
    之前的学习中,已经学习了采用正规方程法求解\theta参数的方法如下所示:

\ \ \ \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}}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容