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

【机器学习】AdamW可调参数介绍及使用说明

AdamW 算法中调整参数对模型训练过程和最终效果有直接且重要的影响,以下是各关键参数对性能的具体影响总结:


AdamW 主要可调参数及其影响说明

1. 学习率 lr

  • 影响:
    • 太大(如 0.01 ~ 0.1):训练过程不稳,容易发散、无法收敛;
    • 太小(如 <1e-5):收敛速度慢、欠拟合。
  • 最佳范围:
    • 普通 CNN/ResNet: 3e-4 ~ 1e-3
    • NLP Transformer/BERT:2e-5 ~ 5e-5
    • 大语言模型(如 LLaMA、ChatGPT):1e-4 ~ 6e-4

2. 权重衰减 weight_decay

  • 作用:控制正则化强度,防止过拟合。
  • 影响:
    • 太小(如 0.00.01):可能模型复杂度高、泛化能力差;
    • 太大(如 0.1 以上):可能导致模型容量不足,欠拟合。
  • 最佳范围:
    • 普通 CNN/ResNet: 1e-4 ~ 0.1
    • NLP Transformer/BERT:0.01~0.05(有时会关闭正则化)
    • 大语言模型:0.01~0.03,与学习率搭配使用

3. 动量系数 betas = (beta_1, beta_2)

  • 默认为 (0.9, 0.999)
  • 影响:
    • beta_1 越大,则对历史梯度的权重越高,更新速度越慢;
    • beta_2 影响 RMSProp 的统计效果。默认设置已经非常成熟。
  • 建议不调整这些值。

4. epsilon(eps)

  • 默认为 1e-8
  • 作用: 避免除零操作
  • ❗️ 一般无需调整

5. 梯度裁剪 max_grad_norm

  • 可选参数,不设置则不启用
  • 影响:
    • 太大(如 2.0):可能无法抑制过大的梯度;
    • 太小(如 0.1):模型更新受限、收敛速度慢。
  • 适用场景:当模型训练过程中出现严重的梯度爆炸或数值不稳定问题时启用,一般设置为 1.0~2.0

参数调节影响总结

参数调大影响调小影响推荐值区间
lr训练不稳定、发散收敛慢、欠拟合1e-4 ~ 1e-3(根据任务调整)
weight_decay过正则化,模型能力下降正则不足,过拟合0.01~0.1
betas更新更慢更快、但可能不稳定默认值不建议改动
eps影响很小(可忽略)无显著影响不用调整
max_grad_norm训练稳定性提升过早限制更新速度,可能收敛困难1.0~2.0(根据任务启用)

实际操作建议:按步骤调节参数

第一步:固定所有其他参数

  • 仅调整 学习率 lr
    • 观察训练是否快速收敛;
    • 如果发散,则降低 lr;
    • 如果非常慢,则增加 lr。

第二步:调整 weight_decay

  • 根据模型是否出现过拟合进行调节:
    • 过拟合严重 → 增大 weight_decay
    • 欠拟合(训练效果差) → 减小 weight_decay

第三步(可选):梯度裁剪(max_grad_norm)

  • 如果你的数据噪声很大或模型特别深、大,可以设置为 1.0~2.0 来稳定训练。

示例(以 NLP 模型为例)

import torch
from transformers import AdamWmodel = ...  # 初始化模型# 推荐超参配置:BERT/Transformer 类模型
optimizer = AdamW(model.parameters(),lr=5e-5,                # 学习率,NLP 中常用betas=(0.9, 0.999),     # 默认值eps=1e-8,weight_decay=0.01       # 正则化强度
)# 梯度裁剪可选使用(比如训练中出现梯度爆炸)
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

举个例子:AdamW 在不同任务中的配置

任务类型lrweight_decay
普通 CV(ResNet)3e-41e-4 ~ 0.1
BERT/Transformer5e-50.01
大语言模型(LLaMA)2e-4~6e-40.01~0.03

总结:参数调整影响总结

超参数过大影响过小影响
lr训练不稳定、发散收敛速度慢、欠拟合
weight_decay模型能力受限,过正则化过拟合风险增加
betas不影响训练稳定性(默认值即可)可能导致更新不稳定
max_grad_norm训练速度变慢、收敛困难无法抑制梯度爆炸

番外
在这里插入图片描述

http://www.xdnf.cn/news/15797.html

相关文章:

  • Ubuntu查看Docker容器
  • 双向广搜算法详解
  • 数据结构——单调栈
  • 服务管理智能化:R²AIN SUITE 升级带来的两大功能更新哪些值得关注?
  • SQLite / LiteDB 单文件数据库为何“清空表后仍占几 GB”?——原理解析与空间回收实战
  • 告别宕机!Ubuntu自动重启定时任务设置(一键脚本/手动操作)
  • 怎么自己搭建云手机
  • 数据库防止数组字符串序列化
  • 知识管理中的人工智能:概述、主要功能和管理工具
  • #vscode# #SSH远程# #Ubuntu 16.04# 远程ubuntu旧版Linux
  • 【Nginx】nginx+lua+redis实现限流
  • ARCS系统机器视觉实战(直播回放)
  • 医疗人工智能的心电图分析:创新技术与临床应用
  • Java面试宝典:Maven
  • 开源短链接工具 Sink 无需服务器 轻松部署到 Workers / Pages
  • nginx定制http头信息
  • 链表算法之【链表的中间节点】
  • 【Python】python 爬取某站视频批量下载
  • MyUI表单VcForm组件文档
  • Spring介绍以及IOC和AOP的实现
  • SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别
  • Camera相机人脸识别系列专题分析之十七:人脸特征检测FFD算法之libhci_face_camera_api.so 296点位人脸识别检测流程详解
  • Flutter——Android原生View是如何通过Flutter进行加载
  • 关于Mysql开启慢查询日志报错:13 - Permission denied的解决方案
  • logback日志控制服务器日志输出
  • 对Yii2中开启`authenticator`后出现的跨域问题-修复
  • 图机器学习(11)——链接预测
  • 现代R语言【Tidyverse、Tidymodel】的机器学习方法
  • Typecho博客集成阿里云CDN+OSS实现全站加速方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令: