6.正则化
6 正则化
过拟合
当我们选择了过多的特征时,假设函数可能会拟合数据集非常好($J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\approx0$), 但对新数据的泛化能力很差。

左图:欠拟合 高偏差(high bias) 右图:过拟合 高方差(high variance)

我们可以绘制数据点的分布,来决定假设函数合适的多项式阶次。
如何解决过拟合:
(1)减少特征的数量(手动选择保留哪些特征、模型选择算法(自动选择保留哪些特征))
(2)正则化(保留所有特征,但减少量级或参数$\theta_j$的大小)当各特征都对预测y提供作用时,该方法是有用的。

代价函数
假设我们修改代价函数,惩罚$\theta_3$和$\theta_4$,让这俩参数尽量小,那么假设函数就会更简单、更平滑。

当参数更小时,假设函数就会更简单、更平滑、更不容易出现过拟合。
由于我们事先不知道该减少哪些参数的大小,我们将正则化项加入到代价函数中,让所有参数$\theta$尽量小,减少过拟合。
注意:正则化项一般不对$\theta_0$进行惩罚。

$\lambda$是一个正则化参数,控制两个目标(更好地拟合目标or保持参数尽量小)的取舍。$\lambda$太大欠拟合,太小过拟合
$\lambda$太大时,$\theta_1,\theta_2,\theta_3,\theta_4\approx0$, $h_\theta(x)=\theta_0$成为一条直线,发生欠拟合。

正则化的线性回归模型
线性回归的代价函数为$J(\theta)=\frac{1}{2m}\sum_{i=1}^m[((h_\theta(x^{(i)})-y^{(i)})^2]$
添加正则化项后:$J(\theta)=\frac{1}{2m}\sum_{i=1}^m[((h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}\theta_j^2]$
我们的代价函数如下,我们需要找到合适的$\theta$来最小化代价函数。

线性回归可以用梯度下降和正规方程来找到最佳的参数$\theta$
梯度下降方法中,参数$\theta_0$的更新方程与之前一样(因为正则化项未对$\theta_0$进行惩罚);其余参数的更新方程如下。我们将关于$\theta_j$的项整理在一起,其系数为$1-\alpha\frac{\lambda}{m}<1$, 后面项与没有正则化方法的更新一致。所以正则化梯度下降方法,每次更新将参数$\theta_j$慢慢变小,慢慢向0靠近,同时参数更新方法未改变。

正规方程方法中,矩阵$X$的第i行由第i个样本的特征向量组成。

我们去最小化$J(\theta)$,我们令$J(\theta)$对各参数$\theta$的偏导等于0,得到$\theta=(X^TX+\lambda L)^{-1}X^Ty$, 其中
$$
L=\left[
\begin{matrix}
0 & & & \
& 1 & & \
& & \ddots & \
& & & 1 \
\end{matrix}
\right]
$$
当样本个数$m\le n$特征数量,$X^TX$是不可逆的non-invertible,但当$\lambda>0$时,$X^TX+\lambda L$一定是可逆的invertible
正则化的逻辑回归模型
逻辑回归的代价函数为$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)}))]$
添加正则化项后:$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$
注:这个代价函数看上去同正则化线性回归的式子一样,但是两个$h$不同,所以有很大差别。$\theta_0$不参与任何正则化

逻辑回归可以用梯度下降和高级算法来找到最佳的参数$\theta$
梯度下降算法中,由于$\theta_0$不参与正则化,参数$\theta_0$的更新公式不变;其余参数的更新公式如下。

高级算法中,我们需要自己实现计算$J(\theta)$ 和 $J(\theta)$对各个参数的偏导。

1 |
|