深度学习优化方法

news2025/1/29 14:12:20

如有错误,感谢不吝赐教、交流

文章目录

  • 一、梯度下降
    • 如何选择学习率
      • 不能太小
      • 不能太大
  • 二、小批量随机梯度下降
    • 如何选择批量大小
      • 不能太小
      • 不能太大
    • 总结
  • 三、常用优化方法
    • SGD
    • Adagrad
    • Adam
    • 实现
    • 大佬经验

一、梯度下降

在这里插入图片描述

如何选择学习率

不能太小

在这里插入图片描述
以缓慢的速度接近最优值,开销太大

不能太大

在这里插入图片描述
来回震荡,不一定在下降

二、小批量随机梯度下降

在这里插入图片描述

如何选择批量大小

不能太小

每次计算量太小 ,不适合并行来最大利用计算资源

不能太大

内存消耗增加
浪费计算,例如如果每次所有样本都是相同的

总结

1.梯度下降通过不断沿着反梯度方向更新参数求解
2.小批量随机梯度下降是深度学习默认的求解算法
3.两个重要的超参数是批量大小学习率

三、常用优化方法

SGD

现在的SGD一般都指mini-batch gradient descent。
SGD就是每一次迭代计算mini-batch的梯度,然后对参数进行更新。
在这里插入图片描述
在这里插入图片描述
存在缺点:

选择合适的learning rate比较困难,对所有的参数更新使用同样的learning rate。对于稀疏数据或者特征,有时我们可能想更新快一些对于不经常出现的特征,对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了

SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点[在合适的初始化和step size的情况下,鞍点的影响并没这么大]
一般情况下使用mini-SGD

Adagrad

对学习率加上一个约束。
在这里插入图片描述
特点:

  • 前期g_t较小的时候, regularizer较大,能够放大梯度
  • 后期g_t较大的时候,regularizer较小,能够约束梯度
  • 适合处理稀疏梯度

缺点:

  • 由公式可以看出,仍依赖于人工设置一个全局学习率
  • 学习率设置过大的话,会使regularizer过于敏感,对梯度的调节太大
  • 中后期,分母上梯度平方的累加将会越来越大,使gradient->0 ,使得训练提前结束

Adam

本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳
在这里插入图片描述
特点:

  • 结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
  • 对内存需求较小
  • 为不同的参数计算不同的自适应学习率
  • 适用于大多非凸优化 - 适用于大数据集和高维空间

实现

from torch import optim
# 通过直接调用optim的对应方法实现
optimizer_adam = optim.Adam(model.parameters(), lr=0.001)
optimizer_sgd = optim.SGD(model.parameters(), lr=0.001)
optimizer_adagrad = optim.adagrad(model.parameters(), lr=0.001)

大佬经验

  • 对于稀疏数据,尽量使用学习率可自适应的优化方法,不用手动调节,而且最好采用默认值
  • SGD通常训练时间更长,但是在好的初始化和学习率调度方案的情况下,结果更可靠
  • 如果在意更快的收敛,并且需要训练较深较复杂的网络时,推荐使用学习率自适应的优化方法。
  • Adadelta,RMSprop,Adam是比较相近的算法,在相似的情况下表现差不多。
  • 在想使用带动量的RMSprop,或者Adam的地方,大多可以使用Nadam取得更好的效果

推荐使用Adam试试

参考资料:
深度学习最全优化方法总结比较
李沐老师

ps:计划每日更新一篇博客,今日2023-04-18,日更第二天,昨日更新:网格贪心搜索逼近最优组合解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqoop的介绍与安装

简介 Sqoop 是一款开源的工具,主要用于在 Hadoop(Hive) 与传统的数据库 (mysql 、 postgresql...) 间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres 等)中的 数据导进到 Hadoop 的 …

从单兵作战到生态共创,纵目科技打响智驾2.0新战役

4月18日,第十二届上海国际汽车工业展览会(简称:2023上海车展)在上海国家会展中心盛大启幕。纵目科技携最新自动驾驶解决方案——Amphiman 3000、8000行泊一体解决方案、Trinity 3000、8000舱行泊一体解决方案以及众多摄像头产品强…

15-721 Chapter8 数据分布model分析

Data Organization 有两个data pool,一个是不可变长的block,一个是可变长的block,然后要定位的话,我们只要知道是哪个block,和他的offset,我们就可以定位 下面是数据类型,单个类型太大的话,我们要来个溢出…

真的很迷茫!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「258」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2300 小伙伴加入!去年认真准备和走下来的基…

vue 中quill-editor富文本图片和视频上传功能

quill-editor富文本对于新手来说是个很友好的富文本编辑器。但是里面的图片上传和视频上传功能在实际的工作中不能满足要求。 1.原生的图片上传会转换成bas64格式, 2.视频上传只是个输入框,要有视频链接了才能添加视频;而且视频标签是iframe标签,并不是video标签。 现在…

大数据分析案例-基于XGBoost算法构造房屋租赁价格评估模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

asp.net+sqlserver基于web的在校大学生贷款管理系统

采用的技术: 1.ASP.NET框架; 2. SQL Server 数据库; 3.AJAX技术:它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术; 4.HTML,CSSDIV,代码实现静态页面; 开…

HTML5 <output> 标签、HTML5 <optgroup> 标签

HTML5 <output> 标签 实例 HTML5 <output>标签用来定义不同类型的输出。请参考下述示例&#xff1a; 将计算结果显示在 <output> 元素中&#xff1a; <form oninput"x.valueparseInt(a.value)parseInt(b.value)">0<input type"ran…

达索系统基于系统工程的AUTOSAR设计端到端解决方案 | 达索系统百世慧®

目录 达索系统基于系统工程的AUTOSAR设计端到端解决方案 达索系统&#xff1a;陪伴AUTOSAR一起成长 达索系统的解决方案&#xff1a;MBSE和AUTOSAR结合 软件设计端到端的追溯能力 系统架构设计中的“条理分明” 全贯通的一站式平台 科技是第一生产力&#xff0c;达索系统…

项目设计:迷宫游戏设计day2

今天主要把搜出最短路径想出来了&#xff0c;但还是没有优化&#xff0c;其思想就是&#xff0c;再搜的时候&#xff0c;记录它的前驱结点&#xff0c;这样就能在最后的时候就可以把它的最短路径以反序遍历的方式&#xff0c;将他输出出来 明天再优化优化

JVM系统优化实践(17):线上GC案例(二)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; GC的概念并不难明白&#xff0c;而且它的原理也不复杂&#xff0c;但是很难用好。为什么&#xff1f;因为每个平台、架构、指标、运行环境都不一样&#xff0c;甚…

设计模式-行为型模式之中介者模式

2. 中介者模式 2.1. 模式动机 在用户与用户直接聊天的设计方案中&#xff0c;用户对象之间存在很强的 关联性&#xff0c;将导致系统出现如下问题&#xff1a; 系统结构复杂 对象之间存在大量的相互关联和调用&#xff0c;若有一个对象发生变化&#xff0c;则需要跟踪和该对象关…

初识 MongoDB

文章目录 一、简介二、体系结构三、数据类型四、特点五、应用场景 提示&#xff1a;以下是本篇文章正文内容&#xff0c;MongoDB 系列学习将会持续更新 一、简介 MongoDB 是一个文档数据库&#xff0c;是由字段和值对&#xff08;field:value&#xff09;组成的数据结构&…

煤矿电子封条视频监控系统 yolov7

煤矿电子封条视频监控系统基于yolov7python网络模型视频AI智能分析技术&#xff0c;煤矿电子封条视频监控算法模型对现场皮带撕裂、跑偏、皮带异物、堆煤等设备异常状态实时监控分析自动识别预警。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能…

(原创)Flutter基础入门:装饰器Decoration

前言 作为一个Android开发&#xff0c;最近打算把自己学的Flutter相关知识做个积累&#xff0c;所以这会是一个系列的博客。里面讲的都会是一些Flutter相关的知识&#xff0c;有基础的&#xff0c;也有比较深入的&#xff0c;由浅入深嘛。 那么今天作为开篇&#xff0c;就先讲…

经典回顾丨同为科技(TOWE)在2008年奥运场馆防雷建设中都做了什么?

针对大型体育赛事场馆防雷建设工作非常重要&#xff0c;这是因为大型体育赛事通常吸引了大量的观众和运动员聚集&#xff0c;一旦场馆遭受雷击&#xff0c;可能会造成严重的伤亡和财产损失。如今&#xff0c;大型体育赛事的场馆都会配备防雷设施&#xff0c;如建筑物避雷针、接…

代理设计模式解读

目录 代理模式的基本介绍 静态代理 静态代码模式的基本介绍 应用实例 思路分析图解(类图) 代码实战 静态代理优缺点 动态代理 动态代理模式的基本介绍 JDK 中生成代理对象的 API 代码实战 Cglib 代理 Cglib 代理模式的基本介绍 Cglib 代理模式实现步骤 Cglib 代理模…

同为科技(TOWE)机柜PDU电源插头类型详解

机柜PDU电源插座作为机房服务器众多设备运行的“最后一米”也是最为密切的电源配件&#xff0c;专用于精细保护单相交流供电的敏感设备&#xff0c;其品质好坏直接影响到各个设备的正常运行。机柜PDU电源管理器是由插头、线缆、主体三个部分组成&#xff0c;其中电源插头可以分…

leetcode24. 两两交换链表中的节点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1…

什么是机器学习?

目录 简介 机器学习可以做什么 机器学习未来的趋势 总结 简介 机器学习是一种人工智能领域中的技术&#xff0c;其主要目的是让计算机能够自动进行模式识别、数据分析和预测。 机器学习的起源可以追溯到20世纪50年代&#xff0c;当时美国的Arthur Samuel在一篇论文中提出了相关…