【chapter30】【PyTorch】[动量与学习率衰减】

news2025/1/9 15:41:12

前言:

    SGD的不足

 ①呈“之”字型,迂回前进,损失函数值在一些维度的改变得快(更新速度快),在一些维度改变得慢(速度慢)- 在高维空间更加普遍

②容易陷入局部极小值和鞍点

 ③对于凸优化而言,SGD不会收敛,只会在最优点附近跳来跳去 

       这里面主要讲解一下梯度更新的两个技巧,在训练的时候

应用比较多.

目录:

  1.        momentum
  2.        learn rate decay

一  momentum

 

     正常的梯度更新公式:

     w^{t+1}=w^t-\alpha \bigtriangledown f(w^t)

    

     通过动量更新梯度公式:

     z^{t+1}=\beta z^t+ \bigtriangledown f(w^t)

    w^{t+1}=w^t-\alpha z^{t+1}

   当前的梯度更新方向 由当前的梯度和历史梯度叠加组成的。

 

Momentum算法的优点:

当某个参数在最近一段时间内的梯度方向不一致时,其真实的参数更新幅度变小;

相反,当在最近一段时间内的梯度方向都一致时,其真实的参数更新幅度变大,起到加速作用。

一般而言,在迭代初期,梯度方向都比较一致,动量法会起到加速作用,可以更快地到达最优点。在迭代后期,梯度方向会取决不一致,在收敛值附近震荡,动量法会起到减速作用,增加稳定性。从某种角度来说,当前梯度叠加上部分的上次梯度,一定程度上可以近似看作二阶梯度


PyTorch  里面的API 函数

torch.optim.SGD(net.parameters(), lr=lr, momentum=0.9,weight_decay=wd)

对于ADM 这类优化器,是内部自带的,不需要手动设置。


二    learn rate decay

       学习率衰减

   现有问题:

    1 学习率太小,长时间无法到达最优点

     2 学习率太大,参数激烈震荡,无法收敛

   默认的学习率是1e-3,1e-4

解决方案:

 learn rate decay

  每训练一些batch 后,学习率逐渐降低,如下图

 如下图,随着训练的batch 增加,学习率降低,降低了

参数震荡,能够快速的朝一个方向收敛

 

 

PyTorch方案1

   通过观测loss 是否减少,来动态调整学习率

  • torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode=‘min’, factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode=‘rel’, cooldown=0, min_lr=0, eps=1e-08)

  •  

     

PyTorch方案2:

如下图,每训练30次

\alpha=0.1*\alpha

 

参考:

课时59 动量与学习率衰减_哔哩哔哩_bilibili

https://www.cnblogs.com/shiliuxinya/p/12261966.html

pytorch 中ReduceLROnPlateau 的使用_pytorch的reducelronplateau_zx66zx的博客-CSDN博客

【pytorch 优化器】ReduceLROnPlateau详解_reducelronplateau参数_devil_son1234的博客-CSDN博客

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

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

相关文章

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开…

【数据架构系列-06】一文搞懂数据模型的3中类型——概念模型、逻辑模型、物理模型

数据模型就是模拟现实世界的方法论,是通向智慧世界的基石! 从现实世界发展到智慧世界,要数经历现实世界、信息世界、计算机世界、数据世界、智慧世界五个不同的世界,我们天生具有从混沌的世界抽象信息变为信息世界的能力&#xff…

《统计学习方法》——EM算法及其推广(上)

引言 EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。 理解EM算法需要很多概率论的知识,所以下面先贴出所需要的知识。便于对后文的理解。 补充知识 期望 对于离散型随机变量 X X X的概率分布为 p i p { X x i } p_ip\{Xx_i\}…

第八章 集合函数

文章目录 前言一、聚合函数介绍1 、AVG (平均值) 和SUM (求和)函数2 、MIN(最小值)和MAX(最大值)函数3 、COUNT函数问题:用count(*),count(1),count(列名)谁好呢? 二、G…

语义分割学习笔记(一)语义分割前言

1.什么是语义分割? 语义分割(semantic segmentation) FCN要对分割对象进行一个大的划分,即分类。如下图,语义分割有树、人、草地大类别的划分。 实例分割(Instance segmentation) Mask R-CNN要对每一个分割类别中的每一个对象也要进行一个细…

第五章——动态规划2

线性DP 数字三角形 像二维数组一样,设置行和列,只不过这里的列是斜着的,如圈出来的7,坐标可以表示为(4,2) 集合划分,所有路径可以分成俩类,某点左上方一类,右下方一类。 我们先把7去掉&#xff…

利用层级式一致性加强进行半监督病理图像分割

文章目录 Semi-supervised Histological Image Segmentation via Hierarchical Consistency Enforcement摘要方法对学生模型进行有监督学习层级式一致性强化模块Hierarchical Consistency Loss (HC-Loss)以自我为导向的分层一致性损失 实验结果 Semi-supervised Histological I…

MySQL基础概念和SQL

目录 1.概念 1.1.什么是MySQL 1.2.关系型数据库、非关系型数据库 1.3.库、表、字段 2.数据类型 2.1.数值 2.2.字符串 2.3.日期/时间 3.结构化查询语言 3.1.DDL 3.2.DML 3.3.DCL 3.4.DQL 3.4.1.结果集 3.4.2.取别名 3.4.3.查列 3.4.4.条件查询 3.4.5.模糊查询…

做BI财务数据分析,国产BI软件经验更足

不管是为了提高销售额,还是为了提高库存周转、疏通现金流,都离不开数据分析,特别是BI大数据分析可视化。因此这几年来BI软件在各行各业的接受度迅速提升,特别是在财务数据分析方面,国产BI软件更是经验、技术到位。要说…

【大数据之Hadoop】二十二、Yarn调度器和调度算法

Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。 Apache Hadoop默认的资源调度器:容量调度器Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。 1 FIFO 单…

智能电动自行车充电远程管理系统

目前市场上现有的户外普通充电桩只是一个用电计量工具,无法形成一个有效的停放充电管理环境。在受到雨、雪、风、暴晒等天气影响下根本无法使用,并且存在极大的安全隐患。同时公共无限的停放也导致充电位置被闲置车辆及杂物堆放占用,经常出现真正需要充电…

前端面试题 —— CSS (二)

目录 一、transition 和 animation 的区别 二、什么是物理像素,逻辑像素和像素密度,为什么在移动端开发时需要用到3x, 2x 这种图片? 三、margin 和 padding 的使用场景 四、CSS 优化和提高性能的方法有哪些? 五、display:in…

大数据编程实验3 熟悉常用的HBase操作

实验:熟悉常用的HBase操作 1实验目的 理解HBase在Hadoop体系结构中的角色;熟练使用HBase操作常用的Shell命令; 2 实验平台 操作系统:Linux Hadoop版本:3.1.3 HBase版本:2.2.2 JDK版本:1.8 3 实验内容和…

KDJB-702继保综合检测试验仪

一、产品参数 交流电流输出 输出精度:≤0.5A 2mA >0.5A 0.2% 相电流输出(有效值):0~30A 三并电流输出(有效值):0~900A 相电流长时间允许工作值&#xff…

java开发的chatGPT机器人系统

ChatGPT机器人发展趋势: 更加个性化:随着数据和技术的不断进步,ChatGPT机器人将能够更加准确地理解用户的需求和偏好,并提供更加个性化的回复和服务。 多语言支持:随着ChatGPT在各个国家和地区的普及&#xff…

uniapp(vue2)封装子组件

创建子组件 在项目根目录下新建 components 目录,右键选择“新建组件”,创建子组件(这里以 search.vue 举例)并且为同名目录,即 components --> search --> search.vue,这样父组件可以直接使用&…

C语言-学习之路-01

C语言学习之路-01 目录关键字数据类型常量变量声明和定义进制sizeof关键字整型:intshort、int、long、long long字符型:charASCII对照表转义字符数值溢出实型(浮点型):float、double类型限定符字符串格式化输出和输入 …

深度学习笔记之稀疏自编码器

深度学习笔记之稀疏自编码器 引言引子:题目描述正确答案: A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD题目解析 介绍:自编码器欠完备自编码器正则自编码器从先验角度解释稀疏自编码器稀疏自编码器的构建 引言 本节以一道算法…

14.基于双层优化的电动汽车优化调度研究(文章复现)

说明书 MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化 参考文档:《考虑大规模电动汽车接入电网的双层优化调度策略_胡文平》中文版 《A bi-layer optimization based temporal and sp…

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程(简)

【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程(简) 简单记录下,可固定特定网页数据脱机使用—【蘇小沐】 文章目录 【OfflineExplorer篇】网站固定神器OfflineExplorer基础教程(简)OfflineExplorer简介 …