本文为机器学习的学习总结,讲解回归模型的正则化。
过拟合问题
我们用房屋价格预测的例子来说明过拟合问题。房屋价格的训练集为:
过拟合问题通常出现在变量过多的情况下,代价函数十分接近或等于 0,曲线十分努力的拟合样本,导致它无法泛化到新的样本中,无法预测新样本的价格。
同样,逻辑回归中的过拟合问题如下;
当我们讲到调试和诊断导致学习算法出错的问题时,会讲解如何用专门工具识别过拟合和欠拟合问题。现在我们讨论当过拟合问题发生时该如何解决。在前面讲回归模型时,我们可以通过绘制假设模型函数的图像选择合适的多项式阶数。但在实际情况中,我们可能有很多的特征变量,很难画出多维的图像。当我们有过多的特征变量和但数据过少时,就会产生过拟合问题。
为了解决过拟合问题,我们有下面两个方法:
扫描二维码关注公众号,回复:
11546116 查看本文章
- 尽量减少特征变量的数量。手动检查,删去不重要的特征。在后面的文章中,我们会讲到模型选择算法,可自动对特征变量进行筛选。但其会舍弃一部分特征变量,丢失一些相关的信息。
- 正则化。保留所有的特征变量,但是较少量级或参数
θj 的大小
代价函数
对于房屋预测模型,我们有两个拟合函数:
我们在代价函数中加入惩罚项,使得
θ3,θ4 很小。例如在代价函数中加入
+1000θ32++1000θ42,其中 1000 只是随便选的一个很大的数字。因为 1000 很大,我们要最小化代价函数,就要使得
θ3,θ4 很小,即惩罚部分的值为 0。这样,上面过拟合的曲线就会变成二次函数,能够很好的拟合曲线。
正则化的思想就是加入惩罚,增大参数带来的效果。如果我们选择的参数较小,意味着更简单的模型,如果将所有的参数都加入到代价函数中,则可以尽量地简化模型,也更不容易出现过拟合问题。因此代价函数为:
J(θ)=2m1i=1∑m[(hθ(x(i))−y(i))2+λi=1∑nθj2]
无需对
θ0 进行惩罚。
- 代价函数第一部分为目标函数,为了更好地拟合数据
- 第二部分
λi=1∑nθj2 被称为正则项,为了保持参数尽量小
-
λ 被称为正则化参数,控制两个目标间的平衡关系。如果
λ 选择过大,即对参数惩罚过重,则参数均约等于 0,此时
hθ(x)=θ0,相当于用直线进行拟合,是欠拟合的。因此我们需要选择一个合适的
λ。
在后面的文章中,我们在多重选择时会讲到很多方法自动选择正则化参数
λ。
线性回归的正则化
我们将正则化应用到线性回归中的梯度下降法和正规方程。
梯度下降法
原来梯度下降法更新式为:
θj:=θj−αi=1∑m(hθ(x(i))−y(i))xj(i)
因为我们的惩罚对象中没有
θ0,单独写出
j=0 项:
θ0:=θ0−αi=1∑m(hθ(x(i))−y(i))x0(i)
在剩余项中加入惩罚项,求导后得到:
θj:=θj−αi=1∑m(hθ(x(i))−y(i))xj(i)+mλθj(j=1,2,…,n)
合并
θj 后有:
θj:=θj(1−αmλ)−αi=1∑m(hθ(x(i))−y(i))xj(i)
其中
1−αmλ 是一个略小于 1 的数字,因为通常学习率
α 很小而样本数量
m 很大,可将其看作 0.99。上式的意义为,将
θj (的平方范数)缩小了一点,其余部分与线性回归中相同。
正规方程法
线性回归模型的正规方程法见【线性回归模型】。其推导为:通过令
∂θj∂J(θ)=0,然后进行一些数学推导得到解。这里我们在
J(θ) 中加入惩罚项,推导后得到结果:
θ=(XTX+λ⎣⎢⎢⎢⎢⎡00⋮0010⋯⋯0⋱⋯0⋮⋮1⎦⎥⎥⎥⎥⎤)−1XTy
中间的矩阵是
n+1 维的方阵,除了左上角为 0,对角线上其它元素都为 1。
不可逆问题(可选)
这部分内容对后面学习的衔接没有直接的影响,不感兴趣可以跳过。
我们在【线性回归模型】中讨论过正规方程的不可逆问题,即
XTX 不可逆的问题,虽然 piv()
能求出一个解,但其并不是最优解。而在正规方程中加入正则化,我们可以证明:当
λ>0 时,
XTX+λMatrix 一定可逆。因此正则化还可以解决不可逆的问题。
逻辑回归的正则化
我们在逻辑回归的代价函数中添加惩罚项:
J(θ)=−m1[i=1∑m(y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2
在梯度下降算法中,类似线性回归中的梯度下降,只是
hθ(x) 的形式不同。求导后得到:
θj:=θj−αi=1∑m(hθ(x(i))−y(i))xj(i)+mλθj(j=1,2,…,n)
在高级优化算法中使用正则化,只需要在计算代价函数和梯度时加入惩罚项。