mmseg配置解析 Polynomial Decay 多项式衰减

简介: Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。

mmseg配置解析 Polynomial Decay 多项式衰减

B站:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)

博客:肆十二-CSDN博客

问答:(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com)

Polynomial Decay(多项式衰减)是一种常用于深度学习中学习率调度的方法。在训练过程中,学习率从初始值逐步减少到一个最小值(eta_min),以帮助模型更好地收敛到最优解。Polynomial Decay 的衰减过程遵循一个多项式函数,其公式如下:

Polynomial Decay 公式

如果我们设定初始学习率为 lr_initial,最小学习率为 eta_min,训练的总步数为 max_iters,当前的步数为 current_iter,衰减的指数为 power,那么 Polynomial Decay 的学习率 lr 可以表示为:

image-20240901220841977

参数解释

  • lr_initial:初始学习率,训练开始时的学习率。
  • eta_min:最小学习率,训练结束时的学习率。
  • current_iter:当前的迭代次数。
  • max_iters:总迭代次数,训练的总步数。
  • power:多项式的幂次,控制衰减曲线的形状。power 越大,学习率衰减越慢;power 越小,学习率衰减越快。

举例说明

假设我们有以下参数:

  • 初始学习率 lr_initial = 0.1
  • 最小学习率 eta_min = 0.001
  • 总迭代次数 max_iters = 1000
  • 当前迭代次数 current_iter = 500
  • 衰减指数 power = 2 (表示二次衰减)

根据上述公式,学习率 lr 可以计算为:
$$ lr=(0.1−0.001)×(1−5001000)2+0.001lr = (0.1 - 0.001) \times \left(1 - \frac{500}{1000}\right)^{2} + 0.001lr=(0.1−0.001)×(1−1000500)2+0.001 $$
首先计算衰减因子:
$$ (1−5001000)=0.5\left(1 - \frac{500}{1000}\right) = 0.5(1−1000500)=0.5 $$
然后计算其平方(因为 power = 2):

0.52=0.250.5^2 = 0.250.52=0.25

接着代入公式计算当前的学习率:
$$ lr=(0.1−0.001)×0.25+0.001lr = (0.1 - 0.001) \times 0.25 + 0.001lr=(0.1−0.001)×0.25+0.001lr=0.099×0.25+0.001=0.02475+0.001=0.02575lr = 0.099 \times 0.25 + 0.001 = 0.02475 + 0.001 = 0.02575lr=0.099×0.25+0.001=0.02475+0.001=0.02575 $$
所以在第 500 次迭代时,学习率将下降到 0.02575

学习率曲线

如果绘制 Polynomial Decay 的学习率曲线,随着训练迭代的增加,学习率会从初始值平滑地减小到最小值。power 的大小会影响曲线的形状:

  • power=1:线性衰减。
  • power>1:衰减速度较慢,曲线开始时下降较快,但接近最小值时变化缓慢。
  • power<1:衰减速度较快,曲线开始时下降缓慢,但接近最小值时变化较快。

何时使用

Polynomial Decay 通常用于需要平滑降低学习率的场景,特别是在训练的最后阶段,模型需要更小的学习率来微调参数,以避免过大的梯度更新导致损失函数的不稳定。

这种方法在深度学习的很多任务中都有应用,特别是在训练大规模模型或需要长时间训练的任务中,它能帮助模型在早期迅速收敛并在后期细致调整,获得更好的性能。

目录
相关文章
|
9月前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
7月前
|
域名解析 应用服务中间件 Shell
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
864 76
|
9月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
10月前
|
域名解析 网络协议 Ubuntu
DHCP与DNS的配置
通过这些步骤,您可以在Linux环境下成功配置和验证DHCP和DNS服务。希望这些内容对您的学习和工作有所帮助。
904 27
|
10月前
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
1254 12
|
10月前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
2059 1
|
JSON JavaScript 前端开发
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
491 0
|
编解码 计算机视觉
mmseg配置解析 align_corners=False
`align_corners=False` 是图像插值操作中的一个参数,影响输入和输出图像的角点对齐方式。`align_corners=True` 严格对齐角点,而 `align_corners=False` 均匀分布像素点,更适用于保持整体比例关系的任务,如语义分割。
301 0
|
9月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
902 29

推荐镜像

更多
  • DNS