机器学习:正则化解决过拟合问题

177 阅读2分钟

解决过拟合问题

当有过多变量,同时只有非常少的训练集时,就会出现过度拟合的问题。 解决过度拟合问题,有两种方法:

  • 尽量减少选取的变量的数量
    • 具体而言可以人工检测变量的条目,保留重要的特征,舍弃无用特征
    • 模型选择算法
  • 正则化
    • 保留所有的特征变量,通过减少参数 θ_j 的数量级或值的大小

梯度下降中的过拟合问题

欠拟合(under fitting)/高偏差(high bias) 刚好合适 过拟合(over fitting)/高方差(variance)

逻辑回归中的过拟合问题

欠拟合 刚好合适 过拟合

代价函数

如图,过度拟合了数据,因此泛化性并不是很好。

通过添加惩罚项,从而使\theta_3\theta_4 足够的小。尽量减少代价函数的均方误差。

对于上面函数,对其添加一些项:

现在,如果想要最小化这个函数,需要尽量减少\theta_3\theta_4的值。 如果减少了这两项的值,就像上面式子中忽略了后面的两项:

最终得到一个近似的二次函数,从而达到恰当的拟合数据的表达式。

通常情况下讲,参数值减少的越多,函数越光滑,因此就不易发生过拟合问题。

正则化优化目标

正则化之后的代价函数:

正规化项中的 λ 称为正则化参数

参数 λ 就是用来控制两个不同目标之间的平衡,目标就是平衡拟合训练的目的和保持参数值较小的目的。

只要确保使用了正则化目标的方法,就可以得到一个类似于二次函数但并不是真正的二次函数的一条曲线:

在正则化线性回归中,如果正则化参数值被设定为非常大,将会非常大的惩罚参数,会使得所有参数接近于0.

正则化线性回归

基于梯度下降

正则化线性回归的优化目标:

对于\theta_j可以改写成:

具体来讲,这一项的值:

通常是小于1的具体的实数(通常情况下是比1小一点点的值),所以对\theta_j更新的结果可看作是被替换为\theta_j的0.99倍(把\theta_j向0压缩一点点)。

基于正规方程

\theta=(X^{T}X + \lambda \begin{bmatrix}      0 & 0 & … & 0 \\      0 & 1 \\      … & … & … \\      0 & 0 & … & 1 \\ \end{bmatrix}  )^{-1}X^{T}y

矩阵维度(n+1)\times(n+1)