线性回归与逻辑回归的正则化
一、为什么要正则化?
说起正则化要从过拟合问题说起。
当我们拥有相当多的特征时,机器学习出来的假设可能在训练集上符合的很好,但是却未能在新的测试集上取得好的效果,这就是我们通常意义上所说的过拟合现象。
通常意义上可以采用舍弃一部分特征的方法来避免过拟合,但是相对的会舍弃一些特征信息。当我们需要保留所有特征变量时,我们就会使用正则化的方法。在正则化过程中,我们将保留所有的特征变量,但是我们会减少参数的量级或者参数的大小。另一方面,通过正则化也可以有效地帮助我们简化模型。
二、代价函数
例如我们有100个特征,事实上我们很难预先知道哪些特征变量有较低的相关性,即缩小哪些参数。因此,以线性回归为例,我们在线性回归的代价函数后加上一个额外的正则化项来缩小每个系数的值,如下所示:
\[J(\theta)=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^n\theta^2_j]
\]
λ不宜特别大。
三、线性规划的正则化
1.梯度下降法
在没有用正则化时,梯度下降法被用来去最小化代价函数,如下所示
\[\theta_j=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j(j=0,1,2,...,n)
\]
参照第二部分,我们很容易就可以得到正则化线性回归。
\[\theta_0=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_0
\]
\[\theta_j=\theta_j-\alpha[\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j+\frac{\lambda}{m}\theta_j]\\(j=1,2,...,n)
\]
2、正则方程
在没有用正则化时,正则方程如下所示:
\[\theta=(X^TX)^{-1}X^Ty
\]
其中
\[X=\begin{bmatrix}
(x^{(1)})^T \\
(x^{(2)})^T \\
\vdots\\
(x^{(m)})^T
\end{bmatrix}
\quad y=\begin{bmatrix}
(y^{(1)})= \\
(y^{(2)}) \\
\vdots\\
(y^{(m)})
\end{bmatrix}
\]
参照第二部分,我们很容易就可以得到正则化后的正则方程:
\[\theta=(X^TX+\lambda A)^{-1}X^Ty\\
A= \begin{bmatrix}
0 & 0& \cdots & 0 &0&0\\
0 & 1 & 0& \cdots & 0&0 \\
0 & 0 & 1& 0&\cdots & 0 \\
\vdots & \vdots & \vdots& \ddots & \vdots&\vdots\\
0&0&0&\cdots&1&0\\
0&0&0&\cdots&0&1
\end{bmatrix}
\]
四、逻辑回归
与线性回归类似,利用正则化对逻辑回归代价函数进行修改,有:
\[J(\theta)=-[\frac{1}{m}\sum_{i=1}^my^{(i)}logh_\theta(x^{(i)})+ (1-y^{(i)})log(1-h_\theta(x^{(i)}))\\+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2]
\]
在逻辑回归中,对于最初的梯度下降算法,经过正则化修改为:
\[\theta_0=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_0
\]
\[\theta_j=\theta_j-\alpha[\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j+\frac{\lambda}{m}\theta_j]\\(j=1,2,...,n)
\]
其中
\[h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}
\]
来源:https://www.cnblogs.com/wyb6231266/p/11203093.html