L2 的约束域是圆形:切点通常不在坐标轴上,因此参数不会为 0;
L1 的约束域是正方形:正方形的顶点在坐标轴上(如,切点更易落在顶点,导致某一参数为 0。
对比维度
L1 正则化(Lasso)
L2 正则化(Ridge)
惩罚项形式(绝对值和)(平方和)参数效果部分参数置为 0(稀疏化 / 特征选择)
所有参数缩小,不置为 0
抗多重共线性
弱(可能删除相关特征中的一个)
强(通过缩小参数缓解相关性影响)
优化难度
高(不可导,需特殊方法)
低(可导,支持梯度下降)
适用场景
高维、冗余特征数据
特征均有意义、需保留所有特征
4. Elastiet(弹性网络):L1 与 L2 的结合
为兼顾 L1 的 “特征选择” 和 L2 的 “抗共线性”,Elastiet 同时引入 L1 和 L2 惩罚项,损失函数为:其中控制 L1 强度,控制 L2 强度。适用场景:特征维度极高且存在多重共线性的场景(如基因数据,特征数远大于样本数,且基因间存在相关性)。
三、深度学习中的正则化方法
深度学习模型(如 、Transformer)参数规模庞大(动辄千万级),过拟合风险更高,除了上述 L1/L2,还需针对性的正则化技术。
1. 权重衰减(Weight Decay)
本质
:深度学习中 L2 正则化的常用实现方式,通过在优化器中直接对参数进行 “按比例衰减”(如 SGD、Adam 优化器均支持weight_decay参数)。
原理
:每次参数更新时,先将参数乘以一个小于 1 的系数(如 0.99),再进行梯度下降,等价于在损失函数中加入 L2 惩罚项。
注意
:权重衰减仅作用于权重参数,不作用于偏置项和 Bat 的参数(因这些参数对模型复杂度影响小)。
2. Dropout(随机失活)
原理
(以全连接层为例):训练时,随机 “关闭”(置为 0)一部分神经元(比例由参数p控制,通常取 0.2~0.5),迫使模型不依赖某一特定神经元,学习更鲁棒的特征;测试时,不关闭任何神经元,而是将所有神经元的输出乘以
就是(或对权重进行缩放),保证输出分布一致。
示例
:一个含 100 个神经元的全连接层,p=0.5时,每次训练迭代会随机选择 50 个神经元置为 0,仅用剩余 50 个神经元计算;测试时,100 个神经元全部激活,输出乘以 0.5。
核心作用
:避免 “神经元共适应”(即多个神经元依赖彼此的错误特征),模拟 “集成学习”(每次训练都是一个不同的小模型,测试时融合所有小模型的预测)。
3. Batalization(批量归一化,BN)
原理
:对每一层的输入数据进行 “标准化”(使数据均值为 0、方差为 1),并引入可学习的缩放参数和偏移参数,增强模型灵活性。
正则化效果
:训练时,BN 使用 “批次内数据的均值和方差”,测试时使用 “训练过程中移动平均的均值和方差”,这种差异会给模型带来微小的噪声,间接抑制过拟合。
附加价值
:加速模型收敛(避免梯度消失 / 爆炸),允许使用更高的学习率,是深度学习的 “标配” 技术之一(虽非专门为正则化设计,但正则化效果显着)。
4. 早停(Early Stopping)
原理
:训练过程中,持续监控模型在验证集上的性能(如准确率、损失);当验证集性能不再提升(甚至下降)时,立即停止训练,避免模型继续学习训练数据中的噪声。
本质
:通过限制训练迭代次数,防止模型 “过度训练”,相当于在 “模型复杂度随训练次数增长” 的过程中,选择 “泛化能力最强” 的中间状态。
操作步骤
:
将数据分为训练集、验证集、测试集;
每次迭代后,计算验证集损失;
若验证集损失连续k次(如 10 次)未下降,停止训练,保存此时的模型参数。
5. 数据增强(Data Augmentation)
原理
:通过对训练数据进行 “随机变换”(不改变标签),人工扩大训练集规模,让