【模型训练】如何选择最适合你的学习率变更策略

batch size 训练时间_学习率和batchsize如何影响模型的性能? 大家好,这是专栏《AI不惑境》的第四篇文章,讲述学习率以及batchsize与模型性能的关系。进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程,那么到这个阶段,应该跃过了模仿和追随的阶段,进入了创造的阶段。从这个境界开始,讲述的问题可能不再有答案,更多的是激发大家一起来思考。作者&编辑 | 言有三前几期我们讲述了数据,模型的深... 阅读详情

文章首发于微信公众号《有三AI》

【模型训练】如何选择最适合你的学习率变更策略

如果让我投票给深度学习中,最不想调试,但又必须要小心调试的参数,毫无疑问会投给学习率,今天就来说说这个。

 

01 项目背景

我们选择了GHIM-10k数据集,这是一个图像检索数据集,包含20个类别,分别是日落,船舶,花卉,建筑物,汽车,山脉,昆虫等自然图像,各个类别拥有较好的多样性,而类别之间也有比较好的区分度。数据集共10000张图像,每个类别包含500张JPEG格式的大小为400×300或300×400的图像。

如下图就是其中的烟花类别。

定义了一个6层的卷积神经网络,网络结构如下:

细节咱就不多说,如果你想复现本文结果,可以发送关键词“有三AI训练营12-16”到后台获取网络配置等文件。

 

02 学习率变更策略

学习率是一个非常重要的参数,可以直接影响模型的收敛与否。不同的学习率变更策略也会影响最终的迭代结果。

下面以sgd优化方法,来介绍各种策略。caffe框架中的策略包括fixed,step,exp,inv,multistep,poly,sigmoid。

2.1 fixed

fixed,即固定学习率,这是最简单的一种配置,只需要一个参数。

lr_policy: "fixed"

base_lr: 0.01

如上图,在整个的优化过程中学习率不变,这是非常少使用的策略,因为随着向全局最优点逼近,学习率应该越来越小才能避免跳过最优点。

2.2 step

采用均匀降低的方式,比如每次降低为原来的0.1倍

lr_policy: "step"

base_lr: 0.01

stepsize: 10000

gamma:0.1

这是非常常用的一个学习率迭代策略,每次将学习率降低为原来的一定倍数,属于非连续型的变换,使用简单,而且效果通常较好。

不过从上图也可以看出,其实学习率的变化一点都不平滑。

2.3  multistep

采用非均匀降低策略,指定降低的step间隔,每次降低为原来的一定倍数。

lr_policy: "multistep"

gamma: 0.5

stepvalue: 10000

stepvalue: 30000

stepvalue: 60000

这是比step更加复杂的策略,也是采用非连续型的变换,但是变换的迭代次数不均匀,也是非常常用的策略,需要经验。

2.4 exp

这是一种指数变化,new_lr = base_lr * (gamma^iter),可知这是连续变化,学习率的衰减非常的快,gamma越大则衰减越慢,但是因为caffe中的实现使用了iter作为指数,而iter通常都是非常大的值,所以学习率衰减仍然非常快。

2.5 inv

new_lr = base_lr * (1 + gamma * iter) ^ (- power),可以看出,也是一种指数变换,参数gamma控制曲线下降的速率,而参数power控制曲线在饱和状态下学习率达到的最低值。

2.6 poly

new_lr = base_lr * (1 – iter/maxiter) ^ (power),可以看出,学习率曲线的形状主要由参数power的值来控制。当power = 1的时候,学习率曲线为一条直线。当power < 1的时候,学习率曲线是凸的,且下降速率由慢到快。当power > 1的时候,学习率曲线是凹的,且下降速率由快到慢。

2.7 sigmoid

new_lr = base_lr *( 1/(1 + exp(-gamma * (iter - stepsize))))

参数gamma控制曲线的变化速率。gamma必须小于0才能下降,而这在caffe中并不被支持。

究竟这些策略的实际表现结果如何呢?请看下面的实验结果。

 

03 实验结果

下面就展示以上的学习率策略下的实验结果,由于type=sigmoid不能进行学习率的下降,所以不进行对比。学习率的具体变更方式如下。

训练数据集大小9000,batchsize=64,可知10000次迭代时,epoch=64*10000/9000>70,在该学习率下应该已经充分训练了,实验结果如下。

 

收敛的结果如上,可知道都得到了收敛,但是效果不同。我们在这里要下几个结论,虽然只有一个案例,但是根据笔者多年使用经验,确实如此。

  • step,multistep方法的收敛效果最好,这也是我们平常用它们最多的原因。虽然学习率的变化是最离散的,但是并不影响模型收敛到比较好的结果。

  • 其次是exp,poly。它们能取得与step,multistep相当的结果,也是因为学习率以比较好的速率下降,操作的确很骚,不过并不见得能干过step和multistep。

  • inv和fixed的收敛结果最差。这是比较好解释的,因为fixed方法始终使用了较大的学习率,而inv方法的学习率下降过程太快,这一点,当我们直接使用0.001固定大小的学习率时可以得到验证,最终收敛结果与inv相当。

在此问大家一个问题,你觉得上面的模型,收敛到最好的状态了吗?不妨后台留言讨论。

 

04 总结

今天只是小试牛刀,也挖了很多的坑给大家(我们以后会填上的)。如果不是为了刷指标,很多时候,学习率变更策略不太需要精挑细选,比如上面的step和multistep,实际表现差不多,笔者常使用multistep,虽然这确实是个经验活儿,不过再白痴也总不能傻到用fixed策略去训练。

否则,其他的提高精度的措施做的再到位,也很可能因此而废。

至于exp,inv,poly什么的,鄙人经验,貌似中看不中用。

那adam怎么样呢?

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI!

 

 

 

CKS-CN考试之路----11 显然是alpine-b的镜像有libcrypto3-3.1.4-r5。新版本发布老版本会被回收,此时pod只剩下2个container。我们依次测试是哪个镜像里包含libcrypto3。可以看到alpine的pod有3个副本. 阅读详情

相关推荐

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。

和大家一起涨芝士 905

【Pytorch】训练过程中学习率变化的几种策略

一、问题背景   我们往往在训练模型的时候,学习率不能是一成不变的,大的学习率收敛快,但可能出现过拟合的情况,难以达到最优点;小的学习率收敛较慢,耗时较长,但能将loss降得更低。   因此训练全过程并不是使用一个固定值的学习速度,而是随着时间的推移让学习率动态变化,比如刚开始训练,离下山地点的最优值还很远,那么可以使用较大的学习率下的快一点,当快接近最优值时为避免跨过最优值,下山速度要放缓,即应使用较小学习率训练,具体情况下因为我们也不知道训练时的最优值。 二、解决方案   一种比较经典的策略就是warm

郝同学的博客 3007

sap 新增科目表_SAP系统中四大科目表的总结

操作科目表定义-OB13 2国家科目表定义-OB13 3集团科目表定义-OB13 4合并科目表(ECCS)定义-CX10 4分配操作科目表到公司代码-OB62 5分配国家科目表到公司代码-OB62 6分配集团科目表到操作科目表-OB13 6分配集团科目表到合并科目表-CXNF 7Operation 8定义集团科目表的科目-FSP0 8定义国家科目表的科目-FSP0 8定义操作科目表的科目-FSP0...

weixin_39585463的博客 1721

深度学习中学习率调整策略总结

lr_scheduler.LambdaLR的优点是可以根据自定义的函数来调整学习率,灵活性比较高。可以根据具体任务和模型的需求来选择合适的函数,以提高模型的性能。缺点是需要自己定义函数,可能需要一定的数学知识和经验。此外,如果函数定义不合理,可能会导致模型在训练过程中出现震荡或过拟合的情况。因此,在使用LambdaLR时,需要根据具体情况进行调整,以达到最佳效果。

shengweiit的博客 5420

接口操作MySQL跟MongoDB事务回滚问题

通常使用的事务注解:@Transactional 是不会对MongoDB生效的,但是在一些生产接口中无法避免同时使用MySQL跟MongoDB的操作。

weixin_45932023的博客 1579

在matlab中运行自带的模块(以CCSDS LDPC Decoder模块为例)

最新版的获取需要注册 MathWorks 账户 访问账户注册页面:www.mathworks.cn/mwaccount/register。下载新版本或历史版本的MATLAB,请登陆:https://www.mathworks.cn/downloads 并下载。点击此处可以拷贝调用例程的命令,在matlab命令行输入即可自动获取代码。可以看到页面中写了该模块需要在R2022b以上版本使用。运行.m文件可以生成simulink运行所需要的数据。可以看到左侧下载到了官方历程的文件。之后双击slx文件即可打开。

qq_28455081的博客 887

【AI之路】变化的学习率

大多数人在训练模型时遇到训练卡住,无法继续往下进行时,会把它归结为梯度下降过小,已经进入。其实不然,如果在这个时间去计算其梯度会发现,梯度远没有到达足够小的情况。那么是什么样的原因导致了训练无法继续下去呢?本文将揭示可能影响到训练的另一个因素——学习率(learning rate)

codeslogan 993

Social-Auto-Upload实战:如何用Python+Playwright实现抖音/B站/小红书一键三连发?

本文详细介绍了如何使用Python和Playwright框架构建Social-Auto-Upload自动化上传工具,实现抖音、B站、小红书等平台的一键多发布。通过模拟真实用户操作和Cookie管理技术,该工具能有效解决内容创作者跨平台发布的重复劳动问题,提升工作效率。

day7的博客 1402

【机器学习】学习率策略

学习率策略学习率策略的设置是一个枚举类型typedef enum { CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM } learning_rate_policy;123这是在前面就提到的。我们现在来看看,这几个有什么区别(参考caffe源码)CONSTANT:学习率是一个固定的值learning_rateSTEP:是一种均匀分步策略learni...

YZXnuaa的博客 2289

【大模型】一图看懂3D因果卷积!

本文将系统性地介绍从1D到3D的因果卷积原理,通过直观的动图演示帮助读者理解其工作机制,并重点探讨3D因果卷积在大规模视频生成中的独特价值和应用前景。

xian0710830114的专栏 2201

【OpenClaw从入门到精通】第15篇:国产芯片适配实战——昇腾/龙芯/天数智芯全流程跑通(2026实测版)

2026年国产芯片AI适配迎来爆发期,OpenClaw作为轻量化本地AI智能体,已实现华为昇腾、龙芯、天数智芯等主流国产平台的全流程适配。本文基于实测数据,从背景解析、核心原理、算法优化、实操部署四个维度,详细讲解OpenClaw在香橙派昇腾开发板、龙芯3B6000M、天数彤央TY1200及联想开天X7h的部署流程,同时提供统一工具玄武CLI的使用指南。文中包含完整代码、执行结果、避坑技巧及虚拟实战案例,兼顾新手入门与进阶提升,帮助读者快速掌握国产芯片上的本地AI部署能力,实现数据隐私保护与低成本AI落地。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1012

深度学习学习率对模型训练的影响

文章目录1. 学习率和batchsize的重要性2. 学习率如何影响模型性能2.1 初始学习率大小对模型性能的影响2.2 学习率变化策略对模型性能的影响2.2.1 预设规则学习率变化法2.2.2 自适应学习率变化法2.3 小结3. batchsize如何影响模型性能3.1 大的batchsize减少训练时间, 提高稳定性3.2 大的batchsize泛化能力下降3.3 小结4. 学习率和batchsize的关系总结 在其他笔记中我们讲述了数据, 模型的深度, 宽度对深度学习模型性能的影响, 这一次讲述一下学

星空下 1万+

基于QT与STM32的电力参数采集系统(华为云IOT)(211)

本项目构建一款集多功能于一体的电力参数采集系统,该系统以高性能、低功耗的STM32F103RCT6微控制器为核心,集成多种传感器与通信模块,实现对电力设施如电压、电流、功率、电能及环境温度等关键参数的实时精确采集,并通过GPS模块获取设备地理位置信息,满足了电力设备状态全面监控的需求。

2904

学习率变更策略

如果让我投票给深度学习中,最不想调试,但又必须要小心调试的参数,毫无疑问会投给学习率,今天就来说说这个。 01项目背景 我们选择了GHIM-10k数据集,这是一个图像检索数据集,包含20个类别,分别是日落,船舶,花卉,建筑物,汽车,山脉,昆虫等自然图像,各个类别拥有较好的多样性,而类别之间也有比较好的区分度。数据集共10000张图像,每个类别包含500张JPEG格式的大小为400×300...

急流勇进 1333

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pytorch中模型训练的学习率动态调整

pytorch中模型训练的学习率动态调整

zly_Always_be的博客 2979

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习中学习率和batchsize对模型准确率的影响

本内容来自其他的人解析,参考链接在最后的注释。 1. 前言 目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下: n是批量大小(batchsize),η是学习率(learning rate)。可知道除了梯度本身,这两个因子直接决定了模型的权重更新,从优化本身来看它们是影响模型性能收敛最重要的参数。 学习率直接影响模型的收敛状态,batchsize则影响模型的泛化性能,两者又是分子分母的直接关系,相互也可影响,因此这一次来详述它们对模型性能的影响。 2. 学习率如何影响模型性.

qq_38410428的博客 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PyTorch实战:模型训练学习率动态调整策略

在rel模式下,如果mode参数为max,则动态阈值(dynamic_threshold)为best*(1+threshold),如果mode参数为min,则动态阈值为best+threshold,如果mode参数为min,则动态阈值为best-threshold;因此,我们引入学习率衰减的概念,就是在模型训练初期,使用较大的学习率进行优化,随着迭代次数增加,学习率会逐渐进行减小,保证模型在训练后期不会有太大的波动,从而更加接近最优解,那么,在pytorch中,学习率衰减应该如何实现?

xziyuan的博客 940

深度学习中学习率(lr:learn rate)和batchsize如何影响模型性能?

引用自:学习率和batchsize如何影响模型的性能? 文章目录1 为什么说学习率和batchsize2 学习率如何影响模型性能?2.1、初始学习率大小对模型性能的影响2.2、学习率变换策略对模型性能的影响2.2.1 预设规则学习率变化法2.2.2 自适应学习率变化法2.3、小结3 Batchsize如何影响模型性能?3.1、大的batchsize减少训练时间,提高稳定性3.2、大的batchsi...

Dontla的博客 9770

tensorflow中的学习率调整策略

通常为了模型能更好的收敛,随着训练的进行,希望能够减小学习率,以使得模型能够更好地收敛,找到loss最低的那个点. tensorflow中提供了多种学习率的调整方式.在https://www.tensorflow.org/api_docs/python/tf/compat/v1/train搜索decay.可以看到有多种学习率的衰减策略. cosine_decay exponential_...

爱无止 940

学习率优化策略

Warmup 策略 深度学习中, 模型的初始权重是在训练启动阶段随机生成的, 选择 Warmup 策略可以使模型在训练初期使用较小的学 习率进行训练, 经过设定的一定数量的迭代次数, 模型趋向稳定后, 再改为预先设定的学习率, 达到预热学习率的效果, 可以防止模型震荡, 加速网络收敛速度, 提升效果. 实验中使用 Warmup 策略中的 Gradual Warmup, 即在学习率预热阶段中学习率随着迭代次数增加也逐步提高, 直到预热阶段结束时学习率达到预设定值, 再进行后续训练, 这样能够避免学习率突然增

dididi的博客 1047

【AI不惑境】学习率和batchsize如何影响模型的性能?

大家好,这是专栏《AI不惑境》的第四篇文章,讲述学习率以及batchsize与模型性能的关系。 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程,那么到这个阶段,应该跃过了模仿和追随的阶段,进入了创造的阶段。从这个境界开始,讲述的问题可能不再有答案,更多的是激发大家一起来思考。 作者&编辑 | 言有三 前几期我们讲述了数...

hacker_long的专栏 3288

batchsize一定是2的幂_学习率和batchsize如何影响模型的性能?

前几期我们讲述了数据,模型的深度,宽度对深度学习模型性能的影响,这一次我们讲述学习率和batchsize对模型性能的影响,在实践中这两个参数往往一起调整。 1 为什么说学习率和batchsize目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下,n是批量大小(batchsize),η是学习率(learning rate)。可知道除了梯度本身,这两个因子直接决定...

weixin_35749545的博客 2564

学习率和batchsize如何影响模型的性能?

前几期我们讲述了数据,模型的深度,宽度对深度学习模型性能的影响,这一次我们讲述学习率和batchsize对模型性能的影响,在实践中这两个参数往往一起调整。 1 为什么说学习率和batch...

abcdefg90876的博客 2327

Caffe入门:学习率(lr_policy)

非均匀降低策略,指定降低的step间隔,每次降低为原来的一定倍数。

那年聪聪 986
上一篇: 【模型训练】SGD的那些变种,真的比SGD强吗
下一篇: 【资源总结】“十大深度学习方向” 专栏
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值