过拟合问题探讨与解决

经过学习,我们已经了解到线性回归和逻辑回归两种算法,有时在应用中,算法可能会遇到过拟合问题,正则化可以帮助你最小化这个过拟合问题,并使你的学习算法更加有效。

1.泛化能力

定义: 泛化能力是指模型在从未见过的新数据上的预测能力。

  • 训练误差低\neq泛化能力好
  • 好的模型应该在训练集和测试集都表现良好

直观理解:

  • 泛化能力强-->能学到数据规律,而不是噪声
  • 泛化能力弱-->训练数据学的很好,但是对新样本预测差

2.线性回归中的欠拟合和过拟合问题

假设我们要拟合一条曲线:y=f\left ( x \right )

(1)欠拟合(underfitting)

  • 模型过于简单,无法捕捉数据规律
  • 训练误差高,测试误差也高
  • 比如最左侧的用一条直线拟合明显非线性数据
  • 直观图:拟合曲线和数据点偏离严重

(2)适合(good fit)

  • 模型复杂度适中,捕捉了数据规律
  • 训练误差低,测试误差也低
  • 直观图:拟合曲线经过大部分数据点

(3)过拟合(overfitting)

  • 模型过于复杂,学习了训练数据的噪声
  • 训练误差极低,但是测试误差高
  • 如第三个示例:高阶多项式完全穿过每个训练点
  • 直观图:曲线在训练集震荡过大,新数据预测不准确

3.泛化,欠拟合与过拟合的误差对比(训练集vs测试集)

模型状态训练误差测试误差解释
欠拟合模型简单,无法捕捉规律
适合模型复杂度合适,规律被学到
过拟合很低模型复杂,学习了噪声

4.逻辑回归中的欠拟合和过拟合

逻辑回归是分类模型,我们可以用决策边界来理解

(1)欠拟合

  • 决策边界过于简单,无法分开类别
  • 示例:线性边界无法分开非线性可分数据
  • 结果:训练和测试分类错误率都很高

(2)适合

  • 决策边界复杂度适中,能够基本分开大部分样本
  • 训练误差低,测试误差也低
  • 直观理解:边界贴合数据分布规律

(3)过拟合

  • 决策边界过于复杂,过度弯曲以穿过每个训练点
  • 训练误差几乎为0,但是测试误差很高
  • 模型学习了训练数据噪声,泛化能力差

3.解决过拟合问题的方法

1.数据集扩充 

  • 方法:增加训练数据量,或者对已有数据进行扩充
  • 优点:直接提升模型泛化能力;不改变模型结构,简单直观
  • 缺点:获取更多数据成本高;数据增强不当可能引入噪声

2.正则化

  • 方法:L1正则化:在损失函数中加入权重绝对值之和,促使部分权重变为0,达到特征选择效果。    L2正则化:加入权重平方和,防止权重过大,提高泛化                                                             Dropout:训练时随机丢弃一部分神经元,防止神经元过度依赖
  • 优点:可以有效控制模型复杂度;对神经网络和传统模型都适用
  • 缺点:正则化参数需要调试,过大可能会欠拟合

3.简化模型/减少特征

  • 方法:使用较小的特征或减少模型层数/节点数;移除噪声特征
  • 优点:降低模型复杂度,减少过拟合;可提升训练速度
  • 缺点:可能会损失一些有用信息,导致欠拟合

接下来我们将开始准确描述如何应用正则化,以及正则化的实际意义,弄清楚如何使用正则化与学习算法一同工作,从而应用于线性回归和逻辑回归,避免过拟合。

正则化代价函数

因为不知道这些参数中哪些是重要的,所以我们对他们都进行一些惩罚,并通过添加这个项来缩小所有参数。对于\lambda类似于选择学习率\alpha,也需要我们对\lambda选择一个值 

1.为什么要加权重平方和?

控制模型复杂度:权重\theta越大,模型的输出对输入变化越敏感(函数更陡峭),容易“记住”训练数据的噪声-->过拟合。;加入权重平方和作为惩罚项,会压缩\theta,让模型更平滑,减少对训练数据噪声的敏感性。

2.\lambda(正则化强度)对模型的影响

\lambda决定了权重平方和在损失函数中的比例,也就是惩罚强度

\lambda权重\theta的行为模型表现说明
\lambda=0不受限制,完全由训练数据决定可能过拟合相当于普通现行回归
\lambda小(如0.01)权重略微收缩轻微正则化,减少过拟合训练误差几乎不变,泛化略提升
\lambda中等(如1)权重明显收缩模型平滑,泛化能力提升泛化性能最优的常用区间
\lambda很大(如100)权重接近0欠拟合,无法捕捉规律模型过于简单,训练误差大

3.小结

  1.正则化核心:在代价函数中加入\sum \theta _{j}^{2}来惩罚过大的权重

   2.作用:

  • 降低模型复杂度
  • 降低模型复杂度(防止过度拟合)
  • 增加数值稳定性(特别是高维/多共线性数据)           

   3.\lambda作用:

  • 太小-->正则化弱-->易过拟合
  • 适中-->泛化能力最佳
  • 太大-->正则化强-->欠拟合

   下一节将介绍如何将正则化应用于线性回归和逻辑回归,以及如何通过梯度下降来训练这些模型

更多推荐