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

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怎么样呢?

转载请留言,侵权必究

本系列的完整目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

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

 

中远麒麟堡垒机 SQL注入漏洞复现 中远麒麟堡垒机/baoleiji/api/tokens接口处存在sql注入漏洞,未经身份认证的攻击者可通过该漏洞获取数据库敏感信息及凭证,最终可能导致服务器失陷。 阅读详情

相关推荐

Ubuntu 22.04 “软件与更新”装了NVIDIA驱动,WiFi等设备不见了

在Win10装了Ubuntu22.04的双系统,台式机里面有NVIDIA 3080Ti的独立显卡,Ubuntu默认使用的nouveau驱动,需要更换成NVIDIA相应的驱动,在软件和更新里面一键安装了NVIDIA-driver-535-server之后,发现wifi、蓝牙等设备消失了。这个问题的根源据说跟这个nouveau驱动有关,希望linux社区可以解决这个问题。命令安装后 sudo reboot就可以重新看到WiFi以及蓝牙等设备图标了。然后用U盘拷贝到不能上网的Ubuntu22.04系统上,利用。

me_ysd的博客 5856

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

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

郝同学的博客 3007

CST-Python(Pycharm如何与CST联合仿真,获取S参数)

我们想使用Python与CST联合仿真,其实是不需要自己下载Python的,因为CST在下载的时候就自带了Python3.6,我们只需要找到并将软件的环境设置到相应位置,即可联合仿真。(我的保存路径为D:\Program Files (x86)\CST Studio Suite 2020,在寻找时可以将前面切换成自己的保存路径,后面不需要修改)在CST帮助文档(打开CST软件,按F11即可直接访问帮助文档)里面,进行如下操作,便可以看到CST适配的Python版本为Python3.6!

weixin_52696285的博客 5652

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

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

shengweiit的博客 5420

INCA基础教程

以软件自带Demo为例记录INCA学习过程,主要内容包括测量与标定。

yunqianrui的博客 6万+

innovus:insert Power Switch失败,报告not covered by a row问题解析

这个问题就是switch找不到可以放置的row,分析就从两方面入手,一方面从voltage area下手,一方面从row和site入手。检查发现voltage area设置正确,row也存在,只不过lef里缺少对应switch的双倍高的site。更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 1159

【AI之路】变化的学习率

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

codeslogan 993

RT-DETR改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型

本文记录的是基于MobileNet V4的RT-DETR目标检测轻量化改进方法研究。通过整合UIBMobile MQA以及优化的NAS策略能够在在不降低性能指标的前提下,降低计算成本。本文配置了原论文中和五种模型,以满足不同的需求。

Limiiiing的博客 1924

【机器学习】学习率策略

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

YZXnuaa的博客 2289

手把手教你学Simulink实例--基于Simulink的电动汽车无线充电效率优化仿真

​市场规模:2025年全球无线充电市场规模将达$27亿(MarketsandMarkets数据)​技术标准Qi v1.3(最高150W)WiTricity(200W动态功率)ISO 17163(道路车辆无线充电)​节能效果:每kWh充电减少120W损耗(按每天8小时)​成本分析线圈成本:35vs58(传统方案)效率提升带来的续航增加:15km/100km。

xiaoheshang_123的博客 346

大厂面试:字节跳动大数据面试题及参考答案(10万字长文及多张原理图持续更新)

在 Spark 中,宽窄依赖是用来描述 RDD(弹性分布式数据集)之间的依赖关系的概念。窄依赖是指父 RDD 的每个分区最多被一个子 RDD 的分区使用,即子 RDD 的分区可以通过确定的规则从父 RDD 的分区计算得到,并且不需要跨节点进行数据传输。窄依赖通常可以在一个节点上进行计算,不需要进行数据的 shuffle 操作,因此性能较高。宽依赖是指父 RDD 的一个分区可能被多个子 RDD 的分区使用,即子 RDD 的分区需要通过跨节点的数据 shuffle 操作从父 RDD 的多个分区获取数据。

大模型大数据攻城狮的专栏 1652

学习率调整策略

为不同参数组设定不同学习率调整策略。调整规则为,lrbaselr∗lambdalastepochlrbaselr​∗lambdalastepoch这在fine-tune 中十分有用,我们不仅可为不同的层设定不同的学习率,还可以为其设定不同的学习率调整策略。参数:lr_lambda(function or list)- 一个计算学习率调整倍数的函数,输入通常为 step,当有多个参数组时,设为 list。

u014128622的博客 4899

产品包装质检实战:基于YOLOv5的智能包装合格检测系统全流程指南

摘要: 针对产品包装质检效率低、漏检率高的问题,本文提出基于YOLOv5的智能检测系统。系统通过采集包装缺陷数据(破损、缺标、封装不良等),利用YOLOv5实现多类别缺陷识别(准确率≥95%),并开发Flask Web界面实现检测可视化与报告生成。实验表明,该系统在30帧/秒的产线速度下可稳定运行,显著提升质检效率。项目涵盖数据标注、模型训练、系统开发全流程,具有工业落地价值,适用于智能制造场景的自动化质检需求。(149字)

LXY_LOVE36的博客 95

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

文章目录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万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

学习率变更策略

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

急流勇进 1333

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

zly_Always_be的博客 2979

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

qq_38410428的博客 2万+

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
上一篇: 怎样学会科学的调研并启动一个项目
下一篇: 【AI研究院】头条与抖音背后的AILab怎么样
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包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、付费专栏及课程。

余额充值