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

(李宏毅)deep learning(五)--learning rate

一,关于learning rate的讨论:

(1)在梯度下降的过程中,当我们发现loss的值很小的时候,这时我们可能以为gradident已经到了local min=0(低谷),但是很多时候,loss很小并不是因为已经到达了低谷,而是(如下图):

如上图,当右上角的loss几乎为0时,右下角的gradient并没有趋近于0,而是出现反复的极值 ,这种情况下是因为learning rate过大,是的变化的幅度过大,是的optimisization卡在山腰(如左下角)。


(2)然而,我们指的learning rate并不是越大越好,也不是越小越好。

如上图左下角,因为learning rate过大,使得梯度跨度过大不能进入低谷到达黄色叉叉,而如果选择 learning rate过大,梯度移动缓慢,在进入低谷后在大updates之后还是难以到达黄色叉叉。


因为,我们需要一个自动化改变的learning rate,在坡度较陡的时候减小learning rate,在坡度较小的时候增大.

这时,我们想着在之前的learning rate 下加一个随i变化的δ。

δ的求法如下:
(第一种求法)δ是前面所有gradient绝对值的均方

(第二种求法) :第一种的缺点是,因为是全部平均,难以在陡的地方快速减小gradident,在缓的地方减小gradident。为此,我们添加了α权重,减少之前的梯度影响,但又保留一定的惯性。

但是呢,运行后的结果会出现:

 这是因为,在y轴方向,一开始较陡,δ较大,当左转进入较缓的低谷时,δ中的gardient不断增大,当前面的大gradient的和影响不断减小,由当前的δ占主导时,小δ使得y轴learning rate突然增大,发生沿y方向移动,之后由于遇上陡坡,learning rate减小而返回。


解决方法:让learning rate n也随着t减小(有点模拟退火的思维)

还有一个方法:进行预加热(Warm up)。

Warmup的核心思想是在训练的初始阶段,将学习率从较小的值逐步增加到预设的目标值,而不是直接使用较大的学习率。这一过程类似于“热身”,让模型在训练初期逐步适应数据分布,从而减少训练的不稳定性。

今天就学到这啦。 

http://www.lryc.cn/news/589249.html

相关文章:

  • Spring应用抛出NoHandlerFoundException、全局异常处理、日志级别
  • 游戏加速器核心技术:动态超发
  • Postman + Newman + Jenkins 接口自动化测试
  • 【PTA数据结构 | C语言版】二叉树层序序列化
  • MYSQL练习2
  • UVM(1)—配置环境
  • 3分钟搞定!用ChatGPT+工具生成流程图超简单(附提示词)
  • 基于 AI 的大前端安全态势感知与应急响应体系建设
  • 证明在赋范线性空间中,如果一个闭子空间内的点列弱收敛于空间中的一个点,那么这个点也必然属于该闭子空间
  • 稳定细胞系构建|蛋白表达细胞株|高表达细胞株
  • 备忘录设计模式
  • Python+Selenium自动化爬取携程动态加载游记
  • MIPI DSI(四) video 和 command 模式
  • MySQL数学函数
  • 【STM32项目】环境监测设计
  • QML视图与代理控件
  • Spring Boot全局异常处理:打造坚如磐石的应用防线
  • 【Java代码审计(2)】MyBatis XML 注入审计
  • Datawhale AI夏令营 机器学习2.1
  • AWS中国区资源成本优化全面指南:从理论到实践
  • 从零开始的python学习(八)P115+P116+P117+P118+P119+P120+P121+P122
  • 第十三讲 | map和set的使用
  • Windows内核对象
  • 【AutoCAD保姆级安装教程】AutoCAD 2025 版详细图文下载安装教程
  • wkhtmltopdf导出pdf调试参数
  • 【08】MFC入门到精通——MFC模态对话框 和 非模态对话框 解析 及 实例演示
  • 农村养老模式:乡土智慧与时代创新的共生之路
  • Gitlab跑CICD的时候,maven镜像和pom.xml使用的maven版本冲突导致没办法build成功的解决方法
  • 【C#地图显示教程:实现鼠标绘制图形操作】
  • jmeter之随机读取csv文件