动量(momentum),学习率衰减
1、动量(momentum)
简述
一,优化器中的Momentum
主要是在训练网络时,最开始会对网络进行权值初始化,但是这个初始化不可能是最合适的;因此可能就会出现损失函数在训练的过程中出现局部最小值的情况,而没有达到全局最优的状态。momentum的出现可以在一定程度上解决这个问题。动量来源于物理学,当momentum越大时,转换为势能的能量就越大,就越有可能摆脱局部凹区域,从而进入全局凹区域。momentum主要是用于权值优化。
二,bn层中的Momentum
⚠️这个momentum参数不同于优化器optimizer类中使用的momentum参数和momentum的传统概念。从数学上讲,这里运行统计数据的更新规则是 :
- x是估计的数据
- xt是新的观察到的数据
xnew = (1-momentum) * x + momentum * xt
之前学习的用梯度更新参数w ww的公式:
其中α是学习率。现用
来代替。即相当于原式子又减去了一个这一项。其中z 表征了上次更新的方向和大小,而∇ f ( w )则是梯度,所以新的式子综合考虑了梯度下降的方向和上次更新的方向,用β 来决定了惯性的大小。
优点
(1)不仅考虑了当前的梯度下降的方向,还综合考虑了上次更新的情况,使得学习器学习过程的幅度和角度不会太尖锐,特别是遇到来回抖动的情况时大有好转。
(2)当遇到局部极小值时,因为设置了惯性,所以可能可以冲出局部最小值,这样就更可能找到一个全局最小值。
如图分别表示没有和有动量参与的梯度更新:
参考博客:
动量,学习率衰减,early stopping,Drop out,_潜鲸的博客-CSDN博客
【PyTorch学习笔记】15:动量(momentum),学习率衰减_LauZyHou的笔记-CSDN博客_momentum取值
2、Learning Rate Decay
在使用梯度更新参数时,学习率如果选取太小的话,学习过程会很慢;’如果学习率选取太大,那么很可能会出现来回抖动的情况,这时最终的模型可能很难收敛,而且看起来和"梯度弥散"的情况也很像(但其实不是)。
选取合适的固定的学习率是很难的, 可以在训练的一开始选取比较大的学习率加快训练过程,然后逐渐让其衰减到比较小的值,最终让模型收敛。
动量(momentum),学习率衰减相关推荐
- 34_pytorch,动量与lr衰减(momentum,learning rate)--学习笔记
1.31.动量与学习率衰减 1.31.1.动量 1.31.2.学习率衰减 1.31.动量与学习率衰减 1.31.1.动量 (1)没有引入动量 (2)引入动量后 从图中可以看到,引入动量后loss函数更 ...
- 深度学习(2)--小总结(指数加权平均值,偏差修正,momentum梯度下降,学习率衰减,batch归一化与BN层)
网易云课堂吴恩达深度学习微专业相关感受和总结.因为深度学习较机器学习更深一步,所以记录机器学习中没有学到或者温故知新的内容. 闲来复习,可以学到很多东西! 上一篇:深度学习(1)--小总结(验证训练. ...
- 利用学习率衰减找到最优结果(基于Iris数据集)
学习率是深度学习中的一个重要的超参,如何调整学习率是训练出好模型的关键要素之一. 关于学习率的大小 在训练过程中,一般根据训练轮数设置动态变化的学习率. 刚开始训练时:学习率以 0.01 ~ 0.00 ...
- 深度学习 --- 优化入门二(SGD、动量(Momentum)、AdaGrad、RMSProp、Adam详解)
另在一篇文章中,我们介绍了随机梯度下降的细节以及如何解决陷入局部最小值或鞍点等问题.在这篇文章中,我们看看另一个困扰神经网络训练的问题,即病态曲率. 虽然局部最小值和鞍点可以阻止我们的训练,但是病态曲 ...
- 2学习率调整_学习率衰减
之前我们的优化,主要是聚焦于对梯度下降运动方向的调整,而在参数迭代更新的过程中,除了梯度,还有一个重要的参数是学习率α,对于学习率的调整也是优化的一个重要方面. 01 - 学习率衰减 首先我们以一个例 ...
- 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
北京 | 深度学习与人工智能 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共3017个字.11张图.预计阅读时间:8分钟 前言 梯度下降法(Gradient Descent)是 ...
- Pytorch 学习率衰减方法
Pytorch 学习率衰减方法 1.什么是学习率衰减 2.使用库函数进行调整 2.1.有序调整 2.1.1等间隔调整学习率 2.1.2.多间隔调整学习率 2.1.3.指数衰减调整学习率 Exponen ...
- 垃圾分类、EfficientNet模型B0~B7、Rectified Adam(RAdam)、Warmup、带有Warmup的余弦退火学习率衰减
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 垃圾分类.EfficientNet模型.数据增强(ImageD ...
- 【pytorch笔记】(五)自定义损失函数、学习率衰减、模型微调
本文目录: 1. 自定义损失函数 2. 动态调整学习率 3. 模型微调-torchvision 3.1 使用已有模型 3.2 训练特定层 1. 自定义损失函数 虽然pytorch提供了许多常用的损失函 ...
- 动量、学习率、Early Stopping、Dropout
动量和学习率 1.动量(momentum) 梯度更新: 动量: 其中Z表示的是前一次梯度的方向,根据矢量三角形法则,选取下次的运动方向. 不加动量的情况下,方向变化比较尖锐,没有考虑历史变化的情况,且 ...
最新文章
- UVA 10976 Fractions Again?!【暴力枚举/注意推导下/分子分母分开保存】
- muduo学习笔记 日志类
- tensor判断是否相等_PyTorch的Tensor(中)
- qt获取当前场景中的所有图形项的层次
- php使用jasperreport,php-报表引擎指南(Pentaho,JasperReports,BIRT)
- hbuilder php xdebug,Hbuilder使用xdebug配置php断点调试
- 不懂技术的产品经理,真的是“祸害人类”吗?
- # 畸变矫正_别让这个细节毁了你的照片,学会正确进行畸变调整
- 【高校宿舍管理系统】第五章 JWT原理和应用以及实现功能菜单
- 【Elasticsearch】eBay上的Elasticsearch性能调优实践
- 《C#本质论(第4版)》一1.2 C#语法基础
- Scala:输入输出
- tcpip路由技术卷一_学网络拿高薪!「纯干货」IELAB路由技术问题总结1
- 26_多易教育之《yiee数据运营系统》数据治理-atlas介绍篇
- 使用Nodejs+puppeteer 批量保存网页为图片或PDF
- yandex.com搜索等级、限制设置
- K210基础实验—获取,修改像素值
- Python教你一键获得【王者荣耀全皮肤】~~~
- SQL注入漏洞-SQL注入原理与实践
- 提个醒。阿里内网最新发布“M8”级Java面试笔记,助力金三银四