位置: IT常识 - 正文

yolov5优化器及超参数设置(yolov5网络优化)

编辑:rootadmin
yolov5优化器及超参数设置 文章目录前言一 优化器二 超参数参考前言一 优化器

推荐整理分享yolov5优化器及超参数设置(yolov5网络优化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov5参数优化,yolov5 优化,yolov4优化,yolov5 改进,优化器参数,yolov5 优化,yolo算法优化,yolov5 优化,内容如对您有帮助,希望把文章链接给更多的朋友!

机器学习的五个步骤: 数据 -> 模型 -> 损失 -> 优化器 -> 迭代训练。 我们通过前向传播的过程,得到了模型输出与真实标签的差异,我们称之为损失, 有了损失,我们会进入反向传播过程得到参数的梯度,那么接下来就是优化器干活了,优化器要根据我们的这个梯度去更新参数,使得损失不断的降低。 那么优化器是怎么做到的呢? 该博主从三部分进行展开,首先是优化器的概念,然后是优化器的属性和方法,最后是常用的优化器。

深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam 这样的发展历程。该博主详细告诉你这些算法是如何一步一步演变而来的。

optim.SGD: 随机梯度下降法 optim.Adagrad: 自适应学习率梯度下降法 optim.RMSprop: Adagrad的改进 optim.Adadelta: Adagrad的改进 optim.Adam: RMSprop结合Momentum optim.Adamax: Adam增加学习率上限 optim.SparseAdam: 稀疏版的Adam optim.ASGD: 随机平均梯度下降 optim.Rprop: 弹性反向传播 optim.LBFGS: BFGS的改进

SGD:选择合适的learning rate比较困难 - 对所有的参数更新使用同样的learning rate.我们常用的mini-batch SGD训练算法,然而虽然这种算法能够带来很好的训练速度,但是在到达最优点的时候并不能够总是真正到达最优点,而是在最优点附近徘徊。另一个缺点就是这种算法需要我们挑选一个合适的学习率,当我们采用小的学习率的时候,会导致网络在训练的时候收敛太慢;当我们采用大的学习率的时候,会导致在训练过程中优化的幅度跳过函数的范围,也就是可能跳过最优点

yolov5优化器及超参数设置(yolov5网络优化)

SGD+Momentum:基于梯度的移动指数加权平均解决mini-batch SGD优化算法更新幅度摆动大的问题,同时可以使得网络的收敛速度更快(注意:使用Momentum时偏差修正可用可不用–吴恩达深度学习)

Momentum原理:积累之前的动量来替代真正的梯度,计算梯度的指数加权平均数,并利用该梯度更新权重,相关方向加速SGD,抑制振荡,从而加快收敛。

RMSprop:积累之前的动量来替代真正的梯度对梯度计算微分平方加权平均数,进一步优化损失函数在更新中存在摆动幅度过大的问题,并且进一步加快函数的收敛速度.(对学习率加了一定的约束,但事实上仍依赖于人工设置的一个全局学习率)

Adam:将Momentum算法和RMSProp算法结合起来使用的一种算法,表现比前两种更好,所以它也是解决摆动幅度过大,加快函数的收敛速度;同时利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,实现学习率自适应。(注意:在Adam中Momentum的偏差修正是必须使用的!)

parser.add_argument('--optimizer', type=str, choices=['SGD', 'Adam', 'AdamW'], default='SGD', help='optimizer')

实际上学术界上对于SGD和Adam哪个更好,一直没有统一的定论,取决于实际项目情况。

YOLO V5的作者建议是,如果需要训练较小的自定义数据集,Adam是更合适的选择,并且可以在较大的数据集上提供良好的初始结果,尽管Adam的学习率通常比SGD低(一般Adam为SGD的0.1倍)。但是 SGD 从长远来看往往会表现出色,尤其是训练大型数据集,并且似乎可以更好地推广到现实世界的结果。对于YOLOV5框架在VOC数据集的训练结果来说,效果:SGD > AdamW > Adam 。结果来自该issue。

SGD最大的缺点是下降速度慢,而且可能会在沟壑的两边持续震荡,停留在一个局部最优点。

所以,谈到现在,到底Adam好还是SGD好?这可能是很难一句话说清楚的事情。去看学术会议中的各种paper,用SGD的很多,Adam的也不少,还有很多偏爱AdaGrad或者AdaDelta。可能研究员把每个算法都试了一遍,哪个出来的效果好就用哪个了。毕竟paper的重点是突出自己某方面的贡献,其他方面当然是无所不用其极,怎么能输在细节上呢? 而从这几篇怒怼Adam的paper来看,多数都构造了一些比较极端的例子来演示了Adam失效的可能性。这些例子一般过于极端,实际情况中可能未必会这样,但这提醒了我们,理解数据对于设计算法的必要性。优化算法的演变历史,都是基于对数据的某种假设而进行的优化,那么某种算法是否有效,就要看你的数据是否符合该算法的胃口了。算法固然美好,数据才是根本。另一方面,Adam之流虽然说已经简化了调参,但是并没有一劳永逸地解决问题,默认的参数虽然好,但也不是放之四海而皆准。因此,在充分理解数据的基础上,依然需要根据数据特性、算法特性进行充分的调参。

二 超参数parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch.yaml', help='hyperparameters path')

超参数data/hyps/下有以下五个: 关于选择哪种,作者的解释是:

参考 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam 发展历程YOLOv5-优化器和学习率调整策略https://pypi.org/project/torch-optimizer/
本文链接地址:https://www.jiuchutong.com/zhishi/284056.html 转载请保留说明!

上一篇:育空怀特霍斯附近的北极光,加拿大 (© Design Pics/Danita Delimont)

下一篇:bass.exe是什么进程 bass进程信息查询(bass boost system)

  • 红米耳机怎么恢复双耳模式(红米耳机怎么恢复双耳模式视频)

    红米耳机怎么恢复双耳模式(红米耳机怎么恢复双耳模式视频)

  • 华为p40用什么屏(华为p40系列用什么屏幕)

    华为p40用什么屏(华为p40系列用什么屏幕)

  • 华为手机黑屏是咋回事(华为手机黑屏是怎么回事?如何解决)

    华为手机黑屏是咋回事(华为手机黑屏是怎么回事?如何解决)

  • 显卡电源线怎么接(显卡电源线怎么接好看)

    显卡电源线怎么接(显卡电源线怎么接好看)

  • 抖音已重置要多久恢复(抖音已重置多久恢复)

    抖音已重置要多久恢复(抖音已重置多久恢复)

  • system.out.println什么意思

    system.out.println什么意思

  • 快手永久封禁直播以后还能开吗(快手永久封禁直播能不能注销)

    快手永久封禁直播以后还能开吗(快手永久封禁直播能不能注销)

  • 激光打印机多久换硒鼓(激光打印机多久用一次)

    激光打印机多久换硒鼓(激光打印机多久用一次)

  • 家庭网关是路由器吗(家庭网关是路由器还是光猫)

    家庭网关是路由器吗(家庭网关是路由器还是光猫)

  • 电视总是闪退怎么回事(电视总是闪退怎么处理)

    电视总是闪退怎么回事(电视总是闪退怎么处理)

  • 定位离线是什么意思(定位服务显示离线什么意思)

    定位离线是什么意思(定位服务显示离线什么意思)

  • 相册回收站清空了怎么恢复(相册回收站清空了还能恢复吗)

    相册回收站清空了怎么恢复(相册回收站清空了还能恢复吗)

  • 微信群可以设置禁言功能吗(微信群可以设置群头像吗)

    微信群可以设置禁言功能吗(微信群可以设置群头像吗)

  • 手机qq怎么取消头像挂件(手机qq怎么取消qq秀)

    手机qq怎么取消头像挂件(手机qq怎么取消qq秀)

  • 把照片内存变小20k(手机怎么降低照片大小kb)

    把照片内存变小20k(手机怎么降低照片大小kb)

  • wps表格怎么设置行高(wps表格怎么设置选择项)

    wps表格怎么设置行高(wps表格怎么设置选择项)

  • 如何查询手机运行时间(如何查询手机运存使用情况)

    如何查询手机运行时间(如何查询手机运存使用情况)

  • 绝对音量功能有什么用(绝对音量功能需要开吗)

    绝对音量功能有什么用(绝对音量功能需要开吗)

  • 华为2016年上市的手机(华为2016年上市的手机型号图片)

    华为2016年上市的手机(华为2016年上市的手机型号图片)

  • 陌陌维护一般多久(2021陌陌维护一般多久)

    陌陌维护一般多久(2021陌陌维护一般多久)

  • vivo手机hd怎么关闭(vivo手机hd怎么关掉)

    vivo手机hd怎么关闭(vivo手机hd怎么关掉)

  • 华为反向充电关不掉(华为反向充电关不了怎么办)

    华为反向充电关不掉(华为反向充电关不了怎么办)

  • Mac双系统删除Boot Camp安装的Windows分区方法介绍(mac双系统删除window后怎么重新恢复)

    Mac双系统删除Boot Camp安装的Windows分区方法介绍(mac双系统删除window后怎么重新恢复)

  • KB4507467安装失败怎么办(kb4579311安装失败)

    KB4507467安装失败怎么办(kb4579311安装失败)

  • 保险佣金个人所得税怎么算
  • 网银转账与支票的区别
  • 基于法律行为的物权变动三要件
  • 政府补助属于不征收收入汇算清缴怎么填写
  • 用微信和支付宝支付 会计如何做账
  • 金蝶多核算项目怎么做
  • 收银设备如何入账的
  • 堤围费是什么意思
  • 银行存款利息收入要交增值税吗
  • 2019小规模纳税人免征增值税政策
  • 外地发票是什么意思
  • 企业间的合作
  • 利得和损失计入所有者权益
  • 没有土地使用证的房子拆迁怎么办
  • 公司收到银行承兑汇票怎么做分录
  • 跨月的普通发票怎么开
  • 以汽车出资
  • 不应抵扣的进项税抵扣了怎么办
  • 收不回来应收账款会计分录
  • 企业在筹办期间发生的开办费计入管理费用账户
  • 小规模纳税人可以出口退税吗
  • 装修期间用电
  • 税务会计学知识点
  • 个人劳务费可以不开发票吗
  • 业务招待费进项税额转出
  • 转让金融商品应交增值税计算公式
  • 所得税税负率一般是百分比还是千分比
  • php存储过程是什么
  • 新企业办理地税登记流程
  • linux命令使用
  • macOS Big Sur 11.3 开发预览版 Beta正式更新
  • linux系统如何更改主机名
  • 城建税申报表怎么作废
  • PasSrv.exe - PasSrv是什么进程 有什么用
  • 怎么u盘装系统,u盘装系统教程图解
  • 准公益性企业
  • cocos creator脚本开发指南
  • yii框架文档
  • 超经营范围开具发票
  • 基于php的系统
  • Chatgpt私有化部署(全流程)
  • 年底计提成本
  • 短期借款的会计科目
  • 出口报关需要增税吗
  • 商业折扣,现金折扣,销售折让的核算特点
  • 个人向公司借款协议书范本
  • 防伪税控技术服务费订单号怎么查
  • mongodb 全文索引
  • 公司pos机使用规范
  • 残疾人就业保障金上年职工工资总额
  • 跨年度冲红字发票补正账务如何处理
  • 代开发票流程该是什么?
  • 银行对帐单
  • 公司垫付生育津贴后,社保局未报销给公司
  • 个体工商户营业执照申请流程
  • 销售退货的会计账怎么处理
  • 银行证书费入什么科目
  • 行政单位收到银行存款利息的会计分录
  • 健身中心开的服装店
  • 施工赔偿款怎么记账
  • 企业会计档案由谁保管
  • 年末进项大于销项怎么结转
  • MS DTC 事务管理器无法启动的解决方案
  • xp系统怎么新建桌面
  • 趣谈linux系统
  • sstray.exe - sstray是什么进程 有什么作用
  • 计算机策略设置
  • win+p怎么用
  • win8系统安装条件
  • win7硬盘访问权限怎么解除
  • 通过扣缴义务人申报和综合所得年度自行申报
  • node·js
  • css控制图片置灰
  • bat批处理删除
  • unity+
  • Javascript Math ceil()、floor()、round()三个函数的区别
  • jquery easy ui
  • 主机端口扫描程序设计python
  • 如何查询甘肃省清产核资系统扶贫项目资产金额
  • 武汉市江汉区财政局这个单位的公务员待遇怎么样?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设