权重衰减== L2正则化?(二)

简介: 权重衰减== L2正则化?(二)

为什么L2正则化有效?

让我们试着理解基于代价函数梯度的L2正则化的工作原理。

如果对图4i所示的方程求偏导数或梯度。∂C/∂w和∂C/∂b是关于网络中所有的权重和偏差的。

求偏导得到:

image.png

Figure 5. The gradient of the cost function with respect to weights and biases.

我们可以使用反向传播算法计算∂C0/∂w和∂C0/∂b在上述方程中提到的项。

偏差参数将不变的部分推导不应用正则化项,而重量参数将包含额外的((λ/ n) * w)正则化项。

因此,偏差和权重的学习规则为:

image.png

Figure 6. Gradient Descent Learning Rule for Bias Parameter

image.png

Figure 7. Gradient Descent Learning Rule for Weight Parameter

上面的权重方程类似于通常的梯度下降学习规则,除了现在我们首先重新调节权重w(1−(η*λ)/ n)。

这一术语是L2正则化经常被称为权重衰减的原因,因为它使权重更小。因此,您可以看到为什么正则化工作,它使网络的权重更小。权值的小意味着如果我们在这里和那里改变一些随机输入,网络行为不会有太大的改变,这反过来又使正则化网络难以学习数据中的局部噪声。这迫使网络只学习那些经常在训练集中出现的特征。

简单地从成本函数优化的角度来考虑L2正则化,当我们在成本函数中加入正则化项时,实际上是增加了成本函数的成本。因此,如果权重变大,它也会使成本上升,而训练算法会通过惩罚权重来降低权重,迫使它们取更小的值,从而使网络正规化。

L2正则化和权重衰减是一样的吗?

L2正则化和权值衰减不是一回事,但可以通过基于学习率的权值衰减因子的重新参数化使SGD等效。困惑吗?让我给你详细解释一下。

权重衰变方程给出下面λ是衰减系数。

image.png

Figure 8: Weight Decay in Neural Networks

L2正则化可被证明为SGD情况下的权值衰减,证明如下:

让我们首先考虑下图9所示的L2正则化方程。我们的目标是重新参数化它,使其等价于图8中给出的权重衰减方程。

image.png

Figure 9. L2 Regularization in Neural Networks

首先,我们求出L2正则化代价函数关于参数w的偏导数(梯度),如图10所示。

image.png

Figure 10. Partial Derivative of Loss Function C with respect to w

image.png

Note: Both the Notations in the figure means the same thing.

在得到代价函数偏导数的结果(图10)后,我们将结果代入梯度下降学习规则中,如图11所示。代入后,我们打开括号,重新排列这些项,使其等价于权重衰减方程(图8),并有一定的假设。

image.png

Figure 11. Substituting the Gradient of Cost Function in the Gradient Descent Rule and Rearranging terms.

你可以注意到,最后重新安排L2正规化的唯一区别方程(图11)和权重(图8)是α衰变方程(学习速率)乘以λ(正则化项)。

image.png

Figure 12. Condition of Equivalence of L2 Regularization and Weight Decay

后替换λλ′,L2正规化方程reparametrized和现在相当于体重衰变方程(图8),如图13所示。

image.png

Figure 13. Reparametrized L2 Regularization equation

从上面的证明,你必须理解为什么L2正则化被认为等同于SGD情况下的权值衰减,但它不是其他优化算法的情况,如Adam, AdaGrad等是基于自适应梯度。特别地,当与自适应梯度相结合时,L2正则化导致具有较大历史参数和/或梯度振幅的权重被正则化的程度小于使用权值衰减时的情况。与SGD相比,当使用L2正则化时,这会导致adam表现不佳。另一方面,重量衰减在SGD和Adam上的表现是一样的。

一个令人震惊的结果是,具有动量的SGD优于Adam等自适应梯度方法,因为常用的深度学习库实现了L2正则化,而不是原始的权值衰减。因此,在使用L2正则化对SGD有益的任务中,Adam的结果要比使用动量的SGD差。

结论

因此,我们得出结论,尽管权重衰减和L2正则化在某些条件下可能达到等价,但仍然是略有不同的概念,应该区别对待,否则会导致无法解释的性能下降或其他实际问题。

目录
相关文章
|
7月前
|
传感器 人工智能 IDE
通义灵码用户说 | 编程智能体+MCP加持,秒查附近蜜雪冰城
通义灵码现已全面支持Qwen3,新增智能体模式,具备自主决策、环境感知、工具使用等能力,可端到端完成编码任务。支持问答、文件编辑、智能体多模式自由切换,结合MCP工具与记忆功能,提升开发效率。AI IDE重构编程流程,让开发更智能高效。
899 20
|
缓存 API 区块链
ccxt中文教程
CCXT官方教程中文版由汇智网翻译整理,访问地址:http://cw.hubwiz.com/card/c/ccxt-dev-manual/。 CCXT是一个JavaScript / Python / PHP 开发库,用于数字货币的交易与电子商务,支持众多的比特币/以太币/山寨币交易市场和商户API。
9920 2
|
11月前
|
缓存 安全 网络安全
代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
本文详细介绍了HTTP、HTTPS和SOCKS5三种代理协议的特点、优缺点以及适用场景。通过对比和分析,可以根据具体需求选择最合适的代理协议。希望本文能帮助您更好地理解和应用代理协议,提高网络应用的安全性和性能。
851 17
|
9月前
|
安全 Windows
“由于启动计算机时出现了页面文件配置问题,Windows在你的计算机上创建了一个临时页面文件。。。”的问题解决
本文主要介绍了因清理电脑垃圾文件时误删虚拟内存导致的Windows页面文件配置问题,并提供了详细的解决步骤。问题表现为开机后出现临时页面文件创建的提示弹窗。解决方法包括通过控制面板或快捷键进入高级系统设置,进而调整虚拟内存设置:进入性能选项中的虚拟内存栏,选择自动管理所有驱动器的分页文件大小,最后确认并重启计算机以恢复正常运行。
7417 5
“由于启动计算机时出现了页面文件配置问题,Windows在你的计算机上创建了一个临时页面文件。。。”的问题解决
|
JavaScript 前端开发 测试技术
在 golang 中执行 javascript 代码的方案详解
本文介绍了在 Golang 中执行 JavaScript 代码的四种方法:使用 `otto` 和 `goja` 嵌入式 JavaScript 引擎、通过 `os/exec` 调用 Node.js 外部进程以及使用 WebView 嵌入浏览器。每种方法都有其适用场景,如嵌入简单脚本、运行复杂 Node.js 脚本或在桌面应用中显示 Web 内容。
924 15
在 golang 中执行 javascript 代码的方案详解
|
10月前
|
人工智能 自然语言处理 程序员
用通义灵码开发一个Python时钟:手把手体验AI程序员加持下的智能编码
通义灵码是基于通义大模型的AI研发辅助工具,提供代码智能生成、研发问答、多文件修改等功能,帮助开发者提高编码效率。本文通过手把手教程,使用通义灵码开发一个简单的Python时钟程序,展示其高效、智能的编码体验。从环境准备到代码优化,通义灵码显著降低了开发门槛,提升了开发效率,适合新手和资深开发者。最终,你将体验到AI加持下的便捷与强大功能。
|
缓存 索引
kibana上执行ES DSL语言查询数据并查看表结构与数据、删除索引、查看文件大小
kibana上执行ES DSL语言查询数据并查看表结构与数据、删除索引、查看文件大小
948 0
|
自然语言处理 并行计算 API
Qwen模型应用:微调与部署实践
Qwen模型应用:微调与部署实践
2943 0
|
前端开发 容器
Flutter图片处理之高斯模糊
Flutter图片处理之高斯模糊
568 1
|
机器学习/深度学习 自然语言处理 搜索推荐
ModelScope 魔塔社区初探
第一次接触 ModelScope,记录下在 macOS 上的安装过程。
7771 9