卷积神经网络-学习率

news2024/11/19 22:43:05

文章目录

  • 一、学习率的定义
  • 二、学习率的作用
  • 三、学习率的调整方法
    • 1.有序调整
      • (1).有序调整StepLR(等间隔调整学习率)
      • (2).有序调整MultiStepLR(多间隔调整学习率)
      • (3).有序调整ExponentialLR (指数衰减调整学习率)
      • (4).有序调整CosineAnnealing (余弦退火函数调整学习率)
    • 2.自适应调整ReduceLROnPlateau (根据指标调整学习率)
    • 3.自定义调整LambdaLR (自定义调整学习率)
  • 四、学习率的设置建议
  • 五、总结

卷积神经网络(CNN)中的学习率是一个至关重要的超参数,它决定了在训练过程中模型权值和偏置项更新的步长。以下是对学习率的详细解析:

一、学习率的定义

学习率是指在反向传播训练过程中,模型的权值和偏置项的更新步长。它控制着参数更新的幅度,进而影响模型学习的速度和效果。

二、学习率的作用

  • 控制学习速度:学习率的大小决定了网络学习速度的快慢。较大的学习率可以加快网络的收敛速度,但也可能导致参数在最优解附近震荡,甚至错过最优解。相反,较小的学习率虽然可以避免错过最优点,但会使网络学习速度变慢。
  • 影响收敛性:合适的学习率能够使代价函数以合适的速度收敛到最小值,从而得到最优的模型参数。

三、学习率的调整方法

Pytorch学习率调整策略通过 torch.optim.lr_sheduler 接口实现。并提供3种调整方法:

1.有序调整

(1).有序调整StepLR(等间隔调整学习率)

torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1)

参数:

  • optimizer: 神经网络训练中使用的优化器,如optimizer=torch.optim.Adam(…)
  • step_size(int): 学习率下降间隔数,单位是epoch,而不是iteration.
  • gamma(float):学习率调整倍数,默认为0.1
  • 每训练step_size个epoch,学习率调整为lr=lr*gamma.
    在这里插入图片描述

按照固定的间隔(step_size)调整学习率,每次调整时学习率都会乘以一个给定的衰减因子(gamma)。这种调度器适用于那些希望学习率在训练过程中逐渐降低,但又不想使用更复杂的衰减策略(如指数衰减或多项式衰减)的场景。

(2).有序调整MultiStepLR(多间隔调整学习率)

torch.optim.lr_shceduler.MultiStepLR(optimizer, milestones, gamma=0.1)

参数:

  • milestone(list): 一个列表参数,表示多个学习率需要调整的epoch值,如milestones=[10, 30, 80].

在这里插入图片描述

允许学习率在达到预设的“里程碑”(milestones)时进行调整。每当训练过程中的某个“里程碑”被触发时,学习率就会乘以一个给定的衰减因子(gamma)。

(3).有序调整ExponentialLR (指数衰减调整学习率)

torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma)

参数:

  • gamma (float): 学习率衰减的乘数因子。在每个epoch(或迭代)结束时,学习率会被更新为 lr = lr * gamma。
    在这里插入图片描述

按照指数衰减的方式调整学习率。这种调度器在每个epoch(或迭代)结束时,将学习率乘以一个给定的衰减因子(gamma),从而实现学习率的指数级下降。

(4).有序调整CosineAnnealing (余弦退火函数调整学习率)

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0)

参数:

  • Tmax(int):学习率下降到最小值时的epoch数,即当epoch=T_max时,学习率下降到余弦函数最小值,当epoch>T_max时,学习率将增大;
  • etamin: 学习率调整的最小值,即epoch=Tmax时,lrmin=etamin, 默认为0.

在这里插入图片描述

根据余弦退火(cosine annealing)策略调整学习率。在这种策略中,学习率随着每个epoch(或迭代)的增加而按照余弦函数周期性变化,从初始学习率减少到最小值eta_min,然后再增加回初始学习率(或接近初始学习率),如此循环,但周期长度逐渐减小。

2.自适应调整ReduceLROnPlateau (根据指标调整学习率)

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)

参数:

  • mode (str, 可选): 指标是应该最小化还是最大化。‘min’ 表示指标应该被最小化,‘max’ 表示指标应该被最大化。默认为 ‘min’。
  • factor (float, 可选): 学习率减少的乘数因子。新的学习率将是旧学习率乘以这个因子。默认为 0.1。
  • patience (int, 可选): 观察指标在改善之前应该等待的epoch数(或无改善)。默认为 10。
  • verbose (bool, 可选): 如果为 True,则在每次更新学习率时打印一条消息。默认为 False。
  • threshold (float, 可选): 衡量指标改善的最小阈值,仅当改善超过这个阈值时,才认为指标真正改善了。默认为 1e-4。
  • threshold_mode (str, 可选): ‘rel’ 表示阈值是相对的,‘abs’ 表示阈值是绝对的。默认为 ‘rel’。
  • cooldown (int, 可选): 在学习率被减少之后,需要经过多少个epoch才能再次考虑减少学习率。默认为 0。
  • min_lr (float 或列表, 可选): 标量或标量列表。每个参数组的学习率不会降低到低于此值。默认为 0。
  • eps (float, 可选): 提高数值稳定性的小常数,加到分母中,以避免除以零。默认为 1e-8。

根据验证指标(如损失值或准确率)的改善情况来动态调整学习率。如果验证指标在一段时间内没有改善,则减少学习率。这对于避免在训练过程中陷入局部最小值或平原区域特别有用。

3.自定义调整LambdaLR (自定义调整学习率)

torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda)

参数:

  • lr_lambda(function or list):自定义计算学习率调整倍数的函数,通常时epoch的函数,当有多个参数组时,设为list.

允许通过提供一个函数(或一系列函数)来动态调整每个参数组的学习率。这个函数接受一个epoch数(或迭代次数,取决于如何调用scheduler.step()的)作为输入,并输出一个乘数因子,该乘数因子将用于调整当前的学习率。

四、学习率的设置建议

  • 初始学习率:在训练初期,可以选择一个相对较大的学习率(如0.01~0.001),以加快网络的收敛速度。
  • 动态调整:随着训练的进行,逐渐减小学习率,以避免在最优解附近震荡或陷入局部最优。
  • 实验验证:不同的任务和数据集可能需要不同的学习率设置。因此,建议通过实验来找到最适合当前任务的学习率设置。

五、总结

本文对大家介绍了卷积神经网络训练中的一个关键超参数——学习率,通过解释学习率的定义与3种常用的调整方法,为大家说明了其设置和调整对模型的性能有着重要影响。在实际应用中,我们需要根据具体任务和数据集的特点来选择合适的学习率调整方法,并通过实验来验证其有效性。

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

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

相关文章

TypeScript 设计模式之【单例模式】

文章目录 **单例模式**: 独一无二的特工我们为什么需要这样的特工?单例模式的秘密:如何培养这样的特工?特工的利与害代码实现单例模式的主要优点单例模式的主要缺点单例模式的适用场景总结 单例模式: 独一无二的特工 单例模式就像是一个秘密组织里的特殊特工。这…

Java介绍及JDK 21详细安装教程

文章目录 1. 文章简介2. Java和JDK的介绍与关系2.1 Java2.2 JDK 3. Java版本的发展历程4. Java 21安装步骤 1. 文章简介 本文介绍如何Java、JDK、Java的发展及如何快速安装JDK 21。内容详细充实,旨在帮助您快速了解并使用Java。 2. Java和JDK的介绍与关系 2.1 Jav…

828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放

EduSoho 是一款功能强大的网校系统,能够帮助教育机构快速搭建在线学习平台。本文将详细介绍如何在华为云服务器上安装和部署 EduSoho 网校系统,以及二次开发对接华为云视频点播VOD来实现CDN加速播放。 edusoho本地存储的视频播放存在诸多弊端。一方面&a…

「C++系列」命名空间

【人工智能教程】,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站:【人工智能教程】 文章目录 一、命名空间1. 定义命名空间2. 使用命名空间中的成员3. 命名空间的…

SAP 利润分配-未分配利润的年初余额和年末余额不一致的问题

SAP OB53 本年利润科目的年初余额和年末余额不一致的问题 关于OB53科目的问题 OB53维护的本年利润科目 现象:为何去年年末的本年利润金额和今年年初的本年利润金额不一致。 解释原因: 本年利润科目的这种现象归根结底是“表结法”产生的,换…

QT----Creater14.0,qt5.15无法启动调试,Launching GDB Debugger报红

问题描述 使用QT Creater 14.0 和qt5.15,无法启动调试也没有报错,加载debugger报红 相关文件都有 解决方案 尝试重装QT,更换版本5.15.2,下载到文件夹,shift鼠标右键打开powershell输入 .\qt-online-installer-windows-x64-4.8.0.exe --mirror http://mirrors.ustc.edu.cn…

VMware 虚拟机配置固定 IP

1. VMware 配置 参考:https://blog.csdn.net/jsryin/article/details/123304582 参考:https://zhuanlan.zhihu.com/p/455097916 1.1. 点击编辑 -> 虚拟网络编辑器 1.2. Net 设置 选择VMnet8 进行配置 查看当前虚拟机的网关是192.168.17.2&#x…

HAproxy-7层负载均衡集群根据不同服务请求分配服务器

搭建HAproxy----7层负载均衡集群的补充 https://blog.csdn.net/qq_73990369/article/details/142500451?spm1001.2014.3001.5501 一、再准备两台虚拟机进行测试 192.168.229.15/24 ----php1 192.168.229.16/24 ----php2 1、PHP1 & php2(192.168.229.15/24 ,192…

做网站建设公司为客户着想方面

作为一家专业的网站建设公司,我们始终将客户的需求置于首位,致力于为客户打造独具特色、功能强大的网站,助力他们在激烈的市场竞争中脱颖而出。 专业团队,定制化服务 我们的团队由技术精湛、经验丰富的专业人才组成,能…

【笔记】光的衍射

一、 衍射现象 波遇到障碍物时,绕过障碍物 进入几何阴影区。 光偏离直线传播路径进入几何 阴影区,并形成光强非均匀稳 定分布。 二、菲涅耳原理 1、 惠更斯原理 波面上的每一点均为发 射子波的波源,这些子波的 包络面即新的波阵面 成功…

C++ 二叉树

1. 二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树,他或者是一棵空树,或者是具有以下性质的二叉树: ①若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 ②若它的右子树不为空,则右子树上所有节…

VIVADO IP核之FIR抽取器多相滤波仿真

VIVADO IP核之FIR抽取器多相滤波仿真(含有与MATLAB仿真数据的对比) 目录 前言 一、滤波器系数生成 二、用MATLAB生成仿真数据 三、VIVADO FIR抽取多相滤波器使用 四、VIVADO FIR抽取多相滤波器仿真 五、VIVADO工程下载 总结 前言 关于FIR低通滤波…

MySQL数据库修改authentication_string字段为显示密码后无法登录

MySQL数据库修改authentication_string字段为显示密码后无法登录 1. 本文创作背景2. 问题3. 原因分析4. 解决方案5. 附录 1. 本文创作背景 本文介绍MySQL数据库修改authentication_string字段为显示密码后无法登录的处理办法。 2. 问题 用户通过navicat修改MySQL的user表roo…

逆概率加权(R和Python案例)

逆概率加权(Inverse Probability Weighting, IPW)是一种统计技术,用于观察性研究中调整混杂变量的影响,以便更准确地估计因果关系。这种方法特别有用于在无法进行随机化实验的情况下,通过给予不同个体不同的权重&#…

[数据库实验七]事务设计

目录 一、实验目的与要求 二、实验内容 三、实验小结 实验中涉及的数据参考:[数据库实验一]数据库和表-CSDN博客 一、实验目的与要求 1.熟悉提交事务 2.回滚事务 3.检查点技术 注:可以用可视化软件来实现 二、实验内容 基于现有数据库设计事务提…

Axure-本地发布,局域网内用户访问

目录 前言内容一. 选择Axure发布路径,进行相应配置二.添加IIS服务配置(不在这里赘述!)三:添加IIS配置,创建网站四.添加安全策略:实践: 前言 最近加入了公司的积分系统,由…

时尚与科技的融合,戴上更轻更悦耳的QCY C30耳夹耳机,随时享受好音乐

不知不觉,蓝牙耳机已经成了我日常必备的小工具了,尤其是这两年新出现的耳夹式耳机,轻松解决了入耳式耳机的舒适性难题,戴上一整天也不会觉得累,而且一款好看的耳机不仅能够提供澎湃的音质,还能成为时尚出街…

理解信息安全中的SOAR

在信息安全领域,SOAR(Security Orchestration, Automation, and Response,安全编排、自动化与响应)是一个现代化的解决方案,旨在通过集成和自动化的方式优化安全操作流程,提升威胁检测、事件响应的速度与效…

雷达原理-绪论-西电魏青

Radar 雷达:radio detection and ranging 无线电探测和测距 无线电:电磁波信号 探测:通过电磁波信号的一个回波特性实现物体探测 测距:利用回波信号(现在技术发展,不单单是测距,还能是物体的各种…

stm32 flash无法擦除

通过bushound调试代码发现,当上位机发送命令到模组后flash将不能擦除,通过 HAL_FLASH_GetError()函数查找原因是FLASH Programming Sequence error(编程顺序错误),解决办法是在解锁后清零标志位…