一、正则化概述
在机器学习中,模型不仅需要在训练数据上表现良好,更重要的是在未知的测试数据上具备泛化能力。然而,当模型复杂度过高时,容易出现过拟合现象——模型过度拟合训练数据中的噪声和细节,导致在新数据上的预测能力下降。
正则化(Regularization) 是一类通过限制模型复杂度、缓解过拟合现象的技术手段。从广义上讲,任何能够降低模型在训练数据上的过拟合程度、提升泛化能力的方法,都可以被称作正则化。其核心逻辑是通过不同机制约束模型的“表达能力”,避免模型学习到训练数据中的噪声或特定细节,从而迫使模型捕捉更具普适性的模式。
过拟合的概念:网页连接
1.1 正则化的核心目标
- 抑制过拟合:防止模型对训练数据中的噪声、异常值或局部特征过度敏感。
- 平衡复杂度与泛化性:在模型对训练数据的拟合能力和对新数据的预测能力之间找到平衡点。
1.2 正则化的常见实现方向
- 参数约束:通过惩罚项限制模型参数的取值范围(如L1/L2正则化)。
- 数据增强:扩大训练数据的多样性,避免模型记忆特定样本(如图像旋转、文本扩充)。
- 训练过程干预:通过提前终止训练(早停法)或随机丢弃神经元(Dropout)防止模型过度拟合。
- 输入规范化:通过标准化输入数据(批量归一化)稳定训练过程,间接抑制过拟合。
这种广义的定义下,正则化不再局限于“损失函数中的惩罚项”,而是涵盖了从数据预处理到模型结构设计、训练过程控制的全流程优化策略。
1.3 常用正则化手段
- L1正则化(Lasso回归)
- L2正则化(Ridge回归)
- Dropout(随机失活)
- 批量归一化(Batch Normalization)
- 早停法(Early Stopping)
- 数据增强(Data Augmentation)
二、主流正则化技术详解
2.1 L1正则化(Lasso回归)
L1正则化通过在损失函数中添加参数的绝对值之和作为惩罚项:
数学公式:
损失函数 = L ( y , y ^ ) + α ∑ i = 1 n ∣ w i ∣ \text{损失函数} = \mathcal{L}(y, \hat{y}) + \alpha \sum_{i=1}^{n} |w_i| 损失函数=L(y,y^)+αi=1∑n∣wi∣
其中, L ( y , y ^ ) \mathcal{L}(y, \hat{y}) L(y,y^) 可以是任意损失函数(如MSE、交叉熵等), α \alpha α 是正则化强度, w i w_i wi 是模型参数。
核心逻辑:用“绝对值惩罚”逼退无效权重
- 为什么参数会变0?
假设某个权重 w w w 对预测影响很小,绝对值惩罚项 ∣ w ∣ |w| ∣w∣ 会“催促” w w w 向0靠近。例如,当 w = 0.5 w=0.5 w=0.5 时,惩罚项为0.5;当 w = 0 w=0 w=0 时,惩罚项为0。模型为了最小化总损失,会主动让不重要的 w w w 变为0,就像“修剪树枝”一样砍掉无效特征的影响。 - 与损失函数无关:不管损失函数是MSE还是其他类型,L1正则化始终通过绝对值惩罚强制参数稀疏化,因此常用于特征选择(让无关特征的权重直接归零)。
常见的损失函数:网页链接
2.2 L2正则化(Ridge回归)
L2正则化在损失函数中添加参数的平方和作为惩罚项:
数学公式:
损失函数 = L ( y , y ^ ) + α ∑ i = 1 n w i 2 \text{损失函数} = \mathcal{L}(y, \hat{y}) + \alpha \sum_{i=1}^{n} w_i^2 损失函数=L(y,y^)+αi=1∑nwi2
其中, L ( y , y ^ ) \mathcal{L}(y, \hat{y}) L(y,y^) 可为任意损失函数, α \alpha α 控制正则化强度。
核心逻辑:用“平方惩罚”软化参数规模
- 为什么参数趋近于0但不为0?
平方惩罚项 w 2 w^2 w2 对大参数的惩罚更剧烈(如 w = 10 w=10 w=10 惩罚100, w = 1 w=1 w=1 惩罚1),但对接近0的参数惩罚很轻(如 w = 0.1 w=0.1 w=0.1 惩罚0.01)。因此,L2正则化会让所有参数“集体瘦身”,但不会直接砍到0,就像给所有树枝“均匀修剪”,保持模型的平滑性。 - 抗噪声能力:L2正则化同样有与与损失函数无关的特性,当特征间存在共线性(如房价预测中“面积”和“使用年限”高度相关),L2正则化会让相关特征的权重同时缩小,避免模型过度依赖某一特征,类似“不把鸡蛋放在一个篮子里”。
2.3 L1与L2正则化的数学示例演示
场景设定
假设我们有一个一维线性模型: y = w ⋅ x y = w \cdot x y=w⋅x,给定一组数据点 ( x = 1 , y = 2 ) (x=1, y=2) (x=1,y=2)。我们通过均方误差(MSE)损失函数训练模型,并分别添加L1和L2正则化,观察参数 w w w 的变化。
-
无正则化的原始优化
- 损失函数:
L = ( w ⋅ 1 − 2 ) 2 = ( w − 2 ) 2 \mathcal{L} = (w \cdot 1 - 2)^2 = (w - 2)^2 L=(w⋅1−2)2=(w−2)2 - 求最优解:对 w w w 求导并令导数为0:
d L d w = 2 ( w − 2 ) = 0 ⇒ w ∗ = 2 \frac{d\mathcal{L}}{dw} = 2(w - 2) = 0 \quad \Rightarrow \quad w^* = 2 dwdL=2(w−2)=0⇒w∗=2 - 结果:无正则化时,最优解为 w = 2 w=2 w=2。
- 损失函数:
-
L1正则化的优化过程
-
损失函数:
L 1 = ( w − 2 ) 2 + α ∣ w ∣ \mathcal{L}_1 = (w - 2)^2 + \alpha |w| L1=(w−2)2+α∣w∣ -
分情况求导(假设 α = 1 \alpha=1 α=1):
- 当 w > 0 w > 0 w>0 时, L 1 = ( w − 2 ) 2 + w \mathcal{L}_1 = (w-2)^2 + w L1=(w−2)2+w,导数为 2 ( w − 2 ) + 1 = 2 w − 3 2(w-2) + 1 = 2w - 3 2(w−2)+1=2w−3
令导数为0: 2 w − 3 = 0 ⇒ w ∗ = 1.5 2w - 3 = 0 \quad \Rightarrow \quad w^* = 1.5 2w−3=0⇒w∗=1.5 - 当 w < 0 w < 0 w<0 时, L 1 = ( w − 2 ) 2 − w \mathcal{L}_1 = (w-2)^2 - w L1=(w−2)2−w,导数为 2 ( w − 2 ) − 1 = 2 w − 5 2(w-2) - 1 = 2w - 5 2(w−2)−1=2w−5
令导数为0: 2 w − 5 = 0 ⇒ w ∗ = 2.5 2w - 5 = 0 \quad \Rightarrow \quad w^* = 2.5 2w−5=0⇒w∗=2.5(与 w < 0 w<0 w<0 矛盾,舍去) - 当 w = 0 w=0 w=0 时,损失值为 ( 0 − 2 ) 2 + 0 = 4 (0-2)^2 + 0 = 4 (0
- 当 w > 0 w > 0 w>0 时, L 1 = ( w − 2 ) 2 + w \mathcal{L}_1 = (w-2)^2 + w L1=(w−2)2+w,导数为 2 ( w − 2 ) + 1 = 2 w − 3 2(w-2) + 1 = 2w - 3 2(w−2)+1=2w−3
-

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



