八、正则化

8.1.过拟合问题

正则化:减少过拟合问题
什么是过拟合?

线性回归的过拟合:

在这里插入图片描述
过拟合将在变量过多的时候出现,这时训练出的假设能很好地拟合训练集,所以你的代价函数很可能接近于0,但是你可能会得到上图那样一个曲线,它千方百计地拟合训练集导致它无法泛化到新的样本中(泛化:一个假设模型应用到新样本的能力)。

逻辑回归的过拟合:

在这里插入图片描述
在逻辑回归中我们可以使用多项式无限逼近训练集的决策边界,即过拟合。

减少过拟合的方法:

1.减少特征变量的个数
(1)人工检查变量清单,选择重要的特征变量
(2)模型选择算法
运用这种方法虽然解决了一些问题,但是你也舍弃了一些信息
2.正则化
保留所有的特征变量,减少量级/θ_j,每一个特征变量都能对预测值产生影响。

8.2.代价函数

目标:学习正则化的运行,及正则化的代价函数
在这里插入图片描述
为了应对过拟合问题,我们加入惩罚值,使得 θ 3 θ_3 θ3 θ 4 θ_4 θ4高阶项)非常小。这就意味着我们要最小化其均方误差代价函数(图中修改后的的式子,1000只是代表一个比较大的数)。那就要θ3和θ4尽可能地小,趋近于0。既然θ3和θ4趋近于0,那么代价函数实际上还是个二次函数,因为三次和四次的参数都趋近于0,这样就解决了过拟合问题。
在这里插入图片描述
正则化的思想:
如果我们的参数值较小,意味着一个更简单的假设模型,更不易于过拟合

在这里插入图片描述
举个例子:房屋预测。
假设我们有100个特征,像:房屋大小、房间数量等。和以前的多项式不同,我们并不知道θ3和θ4是高阶项,我们不知道哪个特征相关度较低。
也就是说,我们有101个参数,我们不知道该选出哪些参数来缩小它们的值。
因此,在正则化中,我们要做的是修改线性回归代价函数来缩小所有参数,因为我们不知道哪个参数在高阶项。
修改后的代价函数:
在这里插入图片描述
这就是正则化代价函数,在后面加了一个正则化项,这个项的作用是缩小每一个参数(除了 θ 0 θ_0 θ0),λ是正则化参数。
但是如果我们对每个参数的惩罚值都过大,它们都趋近于0,就剩下一个 θ 0 θ_0 θ0,相当于用直线去拟合数据。
所以为了更好地拟合数据,我们应当选择合适的λ。(后面的多重选择会讲如何自动地选择λ)

8.3.线性回归的正则化

1.梯度下降法最小化J(θ):

在这里插入图片描述
粉红框中就是正则化的代价函数的偏导。蓝框就是线性回归代价函数的偏导。
1-αλ/m略小于1,就像是0.99,θj(1-αλ/m)就是把θj缩小了一点点。
每次迭代时都把θj乘一个略小于1的数,每次都把它缩小一点。
因为我们的惩罚项不包括 θ 0 θ_0 θ0,所以它单独写,不含正则化项。

2.正规方程最小化J(θ):

建立一个设计m×(n+1)维矩阵X,它的每一行都代表一个单独的训练样本。
建立一个m维的向量y,包含训练集里的所有标签。
为了最小化代价函数,让θ等于以下这个式子(正规方程法,详见多元线性回归):
θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
这个就是让J(θ)的偏导设为0,反向推出来的θ。
如果J(θ)有正则化项:
在这里插入图片描述

8.3.逻辑回归的正则化

逻辑回归和它的代价函数:
在这里插入图片描述
正则化:
在这里插入图片描述
梯度下降法最小化:
在这里插入图片描述
它同线性回归的正则化的区别是假设函数 h θ ( x ) 不 同 h_\theta(x)不同 hθ(x)

<think>嗯,用户之前问了决策树和随机森林,现在接着问正则化是什么以及如何减少过拟合,看来他们是在学习机器学习的基础概念。需要先回顾一下过拟合是什么,然后引入正则化的定义和作用。 用户可能已经了解过拟合是指模型在训练数据上表现很好,但在测试数据上表现差,所以需要正则化来解决这个问题。但可能还不清楚正则化的具体机制,比如L1和L2的区别,或者为什么正则化能防止过拟合。 得先解释正则化的基本概念,然后分类型讨论,比如L1和L2正则化,可能还需要提到dropout或者早停法等其他方法。但用户的问题明确提到正则化,所以重点应该在L1和L2上。 要注意用例子说明,比如线性回归中的正则化项,以及如何在损失函数中加入这些项。可能需要数学公式,但用户之前的回答中用了LaTeX,所以应该继续使用,但确保正确。 还要说明正则化如何通过惩罚复杂模型来降低过拟合风险,比如L1会带来稀疏性,L2防止权重过大。可能需要对比两者,帮助用户理解不同场景下的应用。 用户可能的应用场景是实际建模时遇到泛化问题,需要选择正则化方法。因此,除了理论,最好给出实际选择的建议,比如高维数据用L1,需要稳定模型用L2。 需要检查有没有遗漏其他正则化方法,比如弹性网络或数据增强,但可能用户主要关注参数正则化,所以先集中在L1和L2,再简要提及其他方法。 确保回答结构清晰,分点列出,定义、原理、类型、应用场景和对比,这样用户容易理解。同时,保持语言口语化,避免过于学术化,但又要准确。</think>以下是关于正则化的详细解析: --- ### **一、正则化的定义** 正则化(Regularization)是机器学习中一种**通过向模型添加额外约束或惩罚项**来防止过拟合(Overfitting)的核心技术。其本质是通过**限制模型复杂度**,迫使模型在训练时**兼顾拟合数据与保持简单性**,从而提高泛化能力。 --- ### **二、正则化的核心原理** #### 1. **过拟合的根本原因** 模型过度学习训练数据中的噪声或局部特征(如复杂多项式拟合中的高阶项),导致在测试集上表现差。 **示例**:用$y = w_1x^{10} + w_2x^9 + \dots + w_{10}$拟合简单线性数据,模型复杂度过高。 #### 2. **正则化的作用机制** 在损失函数(Loss Function)中增加一个**惩罚项**,对模型参数(如权重$w$)进行约束: $$ \text{总损失} = \text{原始损失} + \lambda \cdot \text{正则化项} $$ - $\lambda$:正则化强度超参数,控制惩罚力度($\lambda$越大,模型越简单)。 - **效果**:通过限制参数值的大小(如使权重趋近于0或分布均匀),降低模型复杂度。 --- ### **三、正则化的主要类型** #### 1. **L1正则化(Lasso正则化)** - **公式**: $$ \text{正则化项} = \sum_{i=1}^n |w_i| $$ - **特点**: - 倾向于产生**稀疏权重矩阵**(部分权重被压缩为0),天然具有**特征选择**功能。 - 适合高维数据(如特征数远大于样本数时)。 - **示例**:线性回归+L1正则化 → Lasso回归。 #### 2. **L2正则化(Ridge正则化)** - **公式**: $$ \text{正则化项} = \sum_{i=1}^n w_i^2 $$ - **特点**: - 使权重**整体趋近于0但不严格为0**,保持特征间的平衡。 - 更适合处理**共线性特征**(特征间高度相关)。 - **示例**:线性回归+L2正则化 → 岭回归(Ridge Regression)。 #### 3. **弹性网络(Elastic Net)** - **公式**: $$ \text{正则化项} = \alpha \sum_{i=1}^n |w_i| + (1-\alpha) \sum_{i=1}^n w_i^2 $$ - **特点**: - 结合L1和L2正则化的优点,通过超参数$\alpha$调节二者比例。 - 适用于同时需要特征选择和权重稳定的场景。 --- ### **四、正则化如何减少过拟合** 1. **限制模型复杂度**: - 通过惩罚大权重,抑制模型对训练数据中噪声的过度敏感。 2. **促进参数稀疏性或平滑性**: - L1正则化通过稀疏化去除冗余特征;L2正则化通过权重衰减避免极端参数值。 3. **等效于增加先验知识**(贝叶斯视角): - L1正则化对应拉普拉斯先验,L2对应高斯先验,引导参数向简单分布靠近。 --- ### **五、正则化的应用场景** | **场景** | **推荐方法** | **原因** | |-------------------------|--------------------------|-----------------------------------| | 高维数据、特征选择 | L1正则化(Lasso) | 自动筛选重要特征,降低维度 | | 特征共线性强 | L2正则化(Ridge) | 稳定权重分配,避免共线性干扰 | | 需兼顾稀疏性与稳定性 | 弹性网络(Elastic Net) | 平衡L1和L2的优势 | | 深度学习模型(如神经网络)| Dropout、权重衰减 | 随机失活神经元或直接约束权重 | --- ### **六、代码示例(以线性回归为例)** ```python from sklearn.linear_model import Lasso, Ridge # L1正则化(Lasso) lasso = Lasso(alpha=0.1) # alpha即λ lasso.fit(X_train, y_train) # L2正则化(Ridge) ridge = Ridge(alpha=0.1) ridge.fit(X_train, y_train) ``` --- ### **七、选择正则化方法的建议** 1. **从L2开始**:大多数情况下,L2正则化效果稳定且易于调参。 2. **特征维度高时用L1**:尤其是当部分特征明显无关时。 3. **结合交叉验证**:通过网格搜索(Grid Search)优化$\lambda$值。 --- ### **、其他正则化技术** 1. **Dropout(神经网络专用)**:训练时随机丢弃部分神经元,强制模型不依赖特定神经元。 2. **早停法(Early Stopping)**:在验证集性能下降时提前终止训练。 3. **数据增强**:通过扩展训练数据(如图像旋转、裁剪)间接实现正则化。 --- ### **总结** 正则化是**通过约束模型复杂度来提升泛化能力**的核心工具,L1/L2正则化是最经典的方法。实际应用中需根据数据特点和任务需求灵活选择,并结合超参数调优达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值