机器学习核心概念(六)--模型优化与正则化技术
·
过拟合问题探讨与解决
经过学习,我们已经了解到线性回归和逻辑回归两种算法,有时在应用中,算法可能会遇到过拟合问题,正则化可以帮助你最小化这个过拟合问题,并使你的学习算法更加有效。
1.泛化能力
定义: 泛化能力是指模型在从未见过的新数据上的预测能力。
- 训练误差低
泛化能力好
- 好的模型应该在训练集和测试集都表现良好
直观理解:
- 泛化能力强-->能学到数据规律,而不是噪声
- 泛化能力弱-->训练数据学的很好,但是对新样本预测差
2.线性回归中的欠拟合和过拟合问题
假设我们要拟合一条曲线:

(1)欠拟合(underfitting)
- 模型过于简单,无法捕捉数据规律
- 训练误差高,测试误差也高
- 比如最左侧的用一条直线拟合明显非线性数据
- 直观图:拟合曲线和数据点偏离严重
(2)适合(good fit)
- 模型复杂度适中,捕捉了数据规律
- 训练误差低,测试误差也低
- 直观图:拟合曲线经过大部分数据点
(3)过拟合(overfitting)
- 模型过于复杂,学习了训练数据的噪声
- 训练误差极低,但是测试误差高
- 如第三个示例:高阶多项式完全穿过每个训练点
- 直观图:曲线在训练集震荡过大,新数据预测不准确
3.泛化,欠拟合与过拟合的误差对比(训练集vs测试集)
| 模型状态 | 训练误差 | 测试误差 | 解释 |
| 欠拟合 | 高 | 高 | 模型简单,无法捕捉规律 |
| 适合 | 低 | 低 | 模型复杂度合适,规律被学到 |
| 过拟合 | 很低 | 高 | 模型复杂,学习了噪声 |
4.逻辑回归中的欠拟合和过拟合
逻辑回归是分类模型,我们可以用决策边界来理解

(1)欠拟合
- 决策边界过于简单,无法分开类别
- 示例:线性边界无法分开非线性可分数据
- 结果:训练和测试分类错误率都很高
(2)适合
- 决策边界复杂度适中,能够基本分开大部分样本
- 训练误差低,测试误差也低
- 直观理解:边界贴合数据分布规律
(3)过拟合
- 决策边界过于复杂,过度弯曲以穿过每个训练点
- 训练误差几乎为0,但是测试误差很高
- 模型学习了训练数据噪声,泛化能力差
3.解决过拟合问题的方法
1.数据集扩充
- 方法:增加训练数据量,或者对已有数据进行扩充
- 优点:直接提升模型泛化能力;不改变模型结构,简单直观
- 缺点:获取更多数据成本高;数据增强不当可能引入噪声
2.正则化
- 方法:L1正则化:在损失函数中加入权重绝对值之和,促使部分权重变为0,达到特征选择效果。 L2正则化:加入权重平方和,防止权重过大,提高泛化 Dropout:训练时随机丢弃一部分神经元,防止神经元过度依赖
- 优点:可以有效控制模型复杂度;对神经网络和传统模型都适用
- 缺点:正则化参数需要调试,过大可能会欠拟合
3.简化模型/减少特征
- 方法:使用较小的特征或减少模型层数/节点数;移除噪声特征
- 优点:降低模型复杂度,减少过拟合;可提升训练速度
- 缺点:可能会损失一些有用信息,导致欠拟合
接下来我们将开始准确描述如何应用正则化,以及正则化的实际意义,弄清楚如何使用正则化与学习算法一同工作,从而应用于线性回归和逻辑回归,避免过拟合。
正则化代价函数

因为不知道这些参数中哪些是重要的,所以我们对他们都进行一些惩罚,并通过添加这个项来缩小所有参数。对于类似于选择学习率
,也需要我们对
选择一个值
1.为什么要加权重平方和?
控制模型复杂度:权重越大,模型的输出对输入变化越敏感(函数更陡峭),容易“记住”训练数据的噪声-->过拟合。;加入权重平方和作为惩罚项,会压缩
,让模型更平滑,减少对训练数据噪声的敏感性。
2.
(正则化强度)对模型的影响
决定了权重平方和在损失函数中的比例,也就是惩罚强度
| 权重 | 模型表现 | 说明 | |
| 不受限制,完全由训练数据决定 | 可能过拟合 | 相当于普通现行回归 | |
| 权重略微收缩 | 轻微正则化,减少过拟合 | 训练误差几乎不变,泛化略提升 | |
| 权重明显收缩 | 模型平滑,泛化能力提升 | 泛化性能最优的常用区间 | |
| 权重接近0 | 欠拟合,无法捕捉规律 | 模型过于简单,训练误差大 |
3.小结
1.正则化核心:在代价函数中加入来惩罚过大的权重
2.作用:
- 降低模型复杂度
- 降低模型复杂度(防止过度拟合)
- 增加数值稳定性(特别是高维/多共线性数据)
3.作用:
- 太小-->正则化弱-->易过拟合
- 适中-->泛化能力最佳
- 太大-->正则化强-->欠拟合
下一节将介绍如何将正则化应用于线性回归和逻辑回归,以及如何通过梯度下降来训练这些模型
更多推荐
所有评论(0)