当前位置: 首页 > news >正文

【漫话机器学习系列】245.权重衰减(Weight Decay)

权重衰减(Weight Decay)详解 | L2正则化的奥秘

在深度学习和机器学习模型训练中,我们常常面临 过拟合(Overfitting) 的问题。
为了提高模型在未见数据上的泛化能力,正则化(Regularization) 技术应运而生。
其中,最常用的一种正则化方法就是——权重衰减(Weight Decay)

本文将围绕权重衰减的概念、公式推导、作用机制以及应用场景进行详细讲解。


什么是权重衰减(Weight Decay)?

权重衰减,又叫作 L2正则化,本质上是在原始损失函数(Loss)中,添加一项关于模型参数(权重)大小的惩罚项

简单来说,除了最小化预测误差之外,还希望模型的参数(即权重)本身不要太大。

这样做的目的,是避免模型过度依赖某些特征,提升模型的稳定性和泛化能力。


权重衰减的数学表达式

权重衰减的基本公式如下(也可以参考下方插图展示的内容):

\text{Loss}_{\text{new}} = \text{Loss}_{\text{original}} + \frac{1}{2} \lambda \|w\|_2^2

其中:

  • \text{Loss}_{\text{original}}:原始损失函数(如均方误差、交叉熵损失等)

  • w:模型的权重向量

  • \|w\|_2^2:权重向量的L2范数的平方

  • λ:正则化系数,控制惩罚项的强度(通常是一个很小的数,例如 0.001)

简要解释:

  • 第一项是模型原本需要最小化的损失。

  • 第二项是惩罚项,防止权重过大。

  • 两项之和成为新的目标损失。

从直观上理解:
权重衰减会在优化过程中不断“拉回”权重,防止它们无限制地增大,从而控制模型复杂度。


图示解读

来看这张非常直观的手绘图示:

  • 大标题:权重衰减(Weight Decay)

  • 中间公式:

    \text{Loss} = \text{Loss} + \frac{1}{2} \|w\|_2^2
  • 解释:

    • 左侧蓝色部分是原本的损失函数。

    • 右侧红色部分是新增的L2正则化惩罚项。

    • 中间绿色箭头和橙色标注,明确指出了两部分各自的含义。

此外,图中也提到:“在回归中,L2正则化惩罚项的使用称为岭回归(Ridge Regression)”。
这强调了权重衰减在传统统计学习中的经典应用。


权重衰减的作用

权重衰减具有以下几大主要作用:

  • 防止过拟合
    减小权重,降低模型复杂度,使模型更好地在测试集上泛化。

  • 提高数值稳定性
    权重值过大容易导致梯度爆炸,权重衰减可以有效缓解这种情况。

  • 提升训练速度
    较小的权重可以让梯度下降法更快收敛。

  • 提高模型鲁棒性
    权重较小的模型通常对输入噪声更加不敏感,表现更稳健。


权重衰减与其他正则化的区别

项目权重衰减(L2正则化)L1正则化
惩罚项形式\|w\|_2^2\|w\|_1
权重效果让权重接近0但不为0让权重稀疏(部分变为0)
应用场景防止过拟合,控制模型复杂度特征选择,提升模型可解释性

简而言之:

  • 想让参数都尽量小:用L2正则化(权重衰减)

  • 想让部分参数直接归零:用L1正则化


如何在常见框架中使用权重衰减?

在现代深度学习框架中,设置权重衰减非常简单。
比如在 PyTorch 中,只需要在优化器中设置 weight_decay 参数:

import torch.optim as optimoptimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4)

在 TensorFlow/Keras 中,也可以通过添加 L2正则化器(tf.keras.regularizers.l2)来实现。


总结

项目内容
定义在损失函数中增加权重平方惩罚项
目的防止过拟合,提高泛化能力
数学表达式\text{Loss} = \text{Loss} + \frac{1}{2} \lambda \|w\|_2^2
常见应用深度学习模型训练、岭回归

权重衰减是一个简单但非常有效的正则化方法,尤其适合用来改善深度学习模型的训练效果。
掌握权重衰减的原理和使用方法,是迈向深入理解机器学习优化技术的重要一步!


参考资料

  • Deep Learning by Ian Goodfellow

  • 李航《统计学习方法》

  • Chris Albon(数据科学家手绘笔记)


如果你喜欢这类直观易懂的机器学习内容,欢迎点赞、收藏、关注我!

相关文章:

  • CentOS 系统升级失败的原因与排查
  • 理解网站导航文件:robots.txt、sitemap.xml与LLMs.txt的全面解析
  • 大数据、物联网(IoT)、平台架构与设计重构大模型应用
  • 【Spring】Spring MVC笔记
  • 深入解析Http11AprProtocol:Tomcat高性能通信的底层原理
  • 快速上手 Docker:从入门到安装的简易指南(Mac、Windows、Ubuntu)
  • 【java】使用iText实现pdf文件增加水印功能
  • Postman最佳平替, API测试工具Bruno实用教程(一):基础篇
  • 广告屏蔽插件的内部细节EasyList 规则详解:为什么广告屏蔽不直接用 CSS/JS?​(彩蛋)
  • Flink + Kafka 数据血缘追踪与审计机制实战
  • 开发搭载阿里云平台的物联网APP(支持数据接收与发送)
  • 日常开发中,iOS 性能调优我们怎么做?
  • SQL Server To Paimon Demo by Flink standalone cluster mode
  • 多线服务器具有什么优势
  • 【Science Advances】普林斯顿大学利用非相干光打造可重构纳米光子神经网络
  • Easy云盘总结篇-文件分享
  • vue3的新特性
  • Frida使用java.lang.reflect.Array类打印Java反射数组
  • Mkdocs页面如何嵌入PDF
  • 【Prometheus】业务指标与基础指标的标签来源差异及设计解析(扩展版)
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 上海市委常委会会议暨市生态文明建设领导小组会议研究基层减负、生态环保等事项
  • 央行:货币与物价的关系受多重因素影响,提振物价的关键在于扩大有效需求
  • 东亚社会的“苦难诗学”:从《苦尽柑来遇见你》说起
  • 波音公司计划于2027年交付新版“空军一号”飞机
  • 澳大利亚工党可以靠“回避”胜选,但继续执政需要更多勇气