:特征维度高、存在大量冗余特征的场景(如文本分类中的词袋模型,特征数可能达数万,需筛选核心词汇)。
3. L1 与 L2 的对比:为什么 L1 能稀疏化?
L1 和 L2 的核心差异源于惩罚项的 “几何形状”,可通过 “约束域” 直观理解:假设模型仅含两个参数和,正则化等价于在 “参数空间” 中加入一个约束域,损失函数的最优解需落在 “约束域与损失函数等高线的切点” 上:
L2 的约束域是圆形:切点通常不在坐标轴上,因此参数不会为 0;
L1 的约束域是正方形:正方形的顶点在坐标轴上(如,切点更易落在顶点,导致某一参数为 0。
对比维度
L1 正则化(Lasso)
L2 正则化(Ridge)
惩罚项形式(绝对值和)(平方和)参数效果部分参数置为 0(稀疏化 \/ 特征选择)
所有参数缩小,不置为 0
抗多重共线性
弱(可能删除相关特征中的一个)
强(通过缩小参数缓解相关性影响)
优化难度
高(不可导,需特殊方法)
低(可导,支持梯度下降)
适用场景
高维、冗余特征数据
特征均有意义、需保留所有特征
4. Elastic Net(弹性网络):L1 与 L2 的结合
为兼顾 L1 的 “特征选择” 和 L2 的 “抗共线性”,Elastic Net 同时引入 L1 和 L2 惩罚项,损失函数为:其中控制 L1 强度,控制 L2 强度。适用场景:特征维度极高且存在多重共线性的场景(如基因数据,特征数远大于样本数,且基因间存在相关性)。
三、深度学习中的正则化方法
深度学习模型(如 cNN、transformer)参数规模庞大(动辄千万级),过拟合风险更高,除了上述 L1\/L2,还需针对性的正则化技术。
1. 权重衰减(weight decay)
本质
:深度学习中 L2 正则化的常用实现方式,通过在优化器中直接对参数进行 “按比例衰减”(如 SGd、Adam 优化器均支持weight_decay参数)。
原理
:每次参数更新时,先将参数乘以一个小于 1 的系数(如 0.99),再进行梯度下降,等价于在损失函数中加入 L2 惩罚项。
注意
:权重衰减仅作用于权重参数,不作用于偏置项和 batchNorm 的参数(因这些参数对模型复杂度影响小)。
2. dropout(随机失活)
原理
(以全连接层为例):训练时,随机 “关闭”(置为 0)一部分神经元(比例由参数p控制,通常取 0.2~0.5),迫使模型不依赖某一特定神经元,学习更鲁棒的特征;测试时,不关闭任何神经元,而是将所有神经元的输出乘以
就是(或对权重进行缩放),保证输出分布一致。
示例
:一个含 100 个神经元的全连接层,p=0.5时,每次训练迭代会随机选择 50 个神经元置为 0,仅用剩余 50 个神经元计算;测试时,100 个神经元全部激活,输出乘以 0.5。
核心作用
:避免 “神经元共适应”(即多个神经元依赖彼此的错误特征),模拟 “集成学习”(每次训练都是一个不同的小模型,测试时融合所有小模型的预测)。
3. batch Normalization(批量归一化,bN)
原理
:对每一层的输入数据进行 “标准化”(使数据均值为 0、方差为 1),并引入可学习的缩放参数和偏移参数,增强模型灵活性。
正则化效果
:训练时,bN 使用 “批次内数据的均值和方差”,测试时使用 “训练过程中移动平均的均值和方差”,这种差异会给模型带来微小的噪声,间接抑制过拟合。
附加价值
:加速模型收敛(避免梯度消失 \/ 爆炸),允许使用更高的学习率,是深度学习的 “标配”
温馨提示:亲爱的读者,为了避免丢失和转马,请勿依赖搜索访问,建议你收藏【笔趣阁】 m.3dddy.com。我们将持续为您更新!
请勿开启浏览器阅读模式,可能将导致章节内容缺失及无法阅读下一章。