【CLR】《Cyclical Learning Rates for Training Neural Networks》

在这里插入图片描述
WACV-2017

IEEE Winter Conference on Applications of Computer Vision


文章目录

  • 1 Background and Motivation
  • 2 Related Work
  • 3 Advantages / Contributions
  • 4 Method
  • 5 Experiments
    • 5.1 Datasets and Metrics
    • 5.2 CIFAR-10 and CIFAR-100
    • 5.3 ImageNet
  • 6 Conclusion(own) / Future work


1 Background and Motivation

训练神经网络的时候,学习率是一个非常重要的超参数

常规学习率设定会随着学习的深入,以各种方式减少,作者另辟蹊径,提出了 cyclical learning rate(CLR),有升有降,周而复始,以防止网络在学习中陷入局部局部最优解 or 鞍点(difficulty in minimizing the loss arises from saddle points rather than poor local minima,Saddle points have small gradients that slow the learning process)

在这里插入图片描述

收敛会加快,但是最终结果不一定会比 step learning rate 好

2 Related Work

  • Adaptive learning rates
    AdaGrad / RMSProp / AdaDelta / AdaSecant / RMSProp
    CLR can be combined with adaptive learning rates

3 Advantages / Contributions

提出了 CLR,一种学习率的方法论,不用去花额外代价 find the best values and schedule

发现学习率的 rise and fall 对最终的收敛速度精度有帮助

在公开的模型和数据集上,验证了 CLR 的有效性

4 Method

学习率形式

  • a triangular window (linear) 三角
  • a Welch window (parabolic) 抛物线
  • a Hann window (sinusoidal) 正弦

作者选择最简单的 triangular
在这里插入图片描述
超参:stepsize (half the period or cycle length),base_lr,max_lr

(1)How can one estimate a good value for the cycle length?

stepsize 作者给出的建议为

is good to set stepsize equal to 2 − 10 times the number of iterations in an epoch

也即 2~10 epoch 长度

(2)How can one estimate reasonable minimum and maximum boundary values?

在这里插入图片描述
作者的方法论,学习率一直增加,长度可以为一个 stepsize,观测精度变化,选定学习率范围(Set both the stepsize and max iter to the same number of iterations)

上图 base lr = 0.001,max lr = 0.006

a single LR range test provides both a good LR value and a good range


作者基于 triangular 还衍生出了两种 schedule

  • triangular2
    the same as the triangular policy except the learning rate difference is cut in half at the end of each cycle
    triangular 每个周期min max都是一样的,triangular2 是 min / max / stepsize 都随着周期的变化而变化
    在这里插入图片描述
  • exp_range
    min 和 max learning rate 随着周期的变化而 decline,变化公式为
    g a m m a i t e r a t i o n gamma^{iteration} gammaiteration,gamma 文中设定为 0.99994

5 Experiments

5.1 Datasets and Metrics

  • CIFAR-10:top1 error,acc
  • CIFAR-100:top1 error
  • ImageNet:top1 / top5 error

5.2 CIFAR-10 and CIFAR-100

在这里插入图片描述

在这里插入图片描述
CIFAR-10 上效果还是 ok的,收敛的更快,更好

对比 exponential 学习率和作者提出的 exp range
在这里插入图片描述

在这里插入图片描述
CIFAR10 上确实领先

在这里插入图片描述
和不同的学习方法对比,adaptive learning rate methods with / without CLR
在这里插入图片描述
Nesterov / ADAM / RMSprop 都没有 fixed learning rate 猛耶,这里 fixed 的描述应该是相对周期性变化来说的
在这里插入图片描述
一直在波动,毕竟学习率也在周期性的变化中

在看看不同网络结构的效果,ResNets, Stochastic Depth, and DenseNets
在这里插入图片描述
CLR 有提升

5.3 ImageNet

在这里插入图片描述

在这里插入图片描述
还是有一点点提升的

(1)AlexNet

先根据 LR range test 找到了 min 和 max learing rate,stepsize is 6 epochs

在这里插入图片描述
有提升,但是整体波动性会更大,能理解(exp range policy do oscillate around the exp policy accuracies)

(2)GoogLeNet/Inception Architecture

先 LR range test 找出 min 和 max learning rate
在这里插入图片描述

6 Conclusion(own) / Future work

  • future work
    • equivalent policies work for training different architectures, such as recurrent neural networks
    • theoretical analysis would provide an improved understanding of these methods
  • 第二次遇到 solo 论文的,上次还是 CVPR 的 xception,Keras的发明人,作者的单位,第一次遇到,(○´・д・)ノ
  • 启发比较大的是找 learning rate min 和 max 的方法——LR range test
  • 其他表格图有提升,table 3 中和其他 adaptive learning rate methods 对比,with / without CLR 有点弱了
  • 不知道和 SGDR 中 T m u l t i T_{multi} Tmulti 配合起来会怎么样

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网渗透-cobaltstrike之cs上线获取shell

cobaltstrike之cs上线获取shell 文章目录 cobaltstrike之cs上线获取shell前言一、什么是cobaltstrike二、cs上线获取shell 1.环境搭建 CS安装windows连接 2. cs上线获取shell 总结 前言 一、什么是cobaltstrike CobaltStrike是一款渗透测试神器,被业界人称为CS神器…

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg,参考这篇文章:Python——Windows下载ffmpeg由于博主的系统为windows,所以选择不安装lux,直接下载.exe文件,进入lux的github网站后,选择右侧的Releases,下载下图的windows …

五、LoadBalancer负载均衡服务调用

一、Ribbon目前也进入维护模式 1、是什么 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的…

华为HarmonyOS 4.2公测升级计划扩展至15款新机型

华为近日宣布,HarmonyOS 4.2操作系统的公测升级计划将扩展到包括华为P50系列在内的15款设备。这一更新旨在为用户提供更优化的系统性能和增强的功能。 参与此次公测的机型包括华为P50、华为P50 Pro及其典藏版、华为P50E、华为P50 Pocket及其艺术定制版、华为nova系…

[NKCTF2024]-PWN:leak解析(中国剩余定理泄露libc地址,汇编覆盖返回地址)

查看保护 查看ida 先放exp 完整exp: from pwn import* from sympy.ntheory.modular import crt context(log_leveldebug,archamd64)while True:pprocess(./leak)ps[101,103,107,109,113,127]p.sendafter(bsecret\n,bytes(ps))cs[0]*6for i in range(6):cs[i]u32(p…

社区养老服务系统|基于springboot社区养老服务系统设计与实现(源码+数据库+文档)

社区养老服务系统目录 目录 基于springboot社区养老服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员部分功能 (1) 用户管理 (2)服务种类管理 (3)社区服务管理 &#xff08…

文献速递:深度学习胰腺癌诊断--胰腺肿瘤的全端到端深度学习诊断

Title 题目 Fully end-to-end deep-learning-based diagnosis of pancreatic tumors 胰腺肿瘤的全端到端深度学习诊断 01 文献速递介绍 胰腺癌是最常见的肿瘤之一,预后不良且通常是致命的。没有肿瘤的患者只需要进一步观察,而胰腺肿瘤的诊断需要紧…

Docker核心特征

Docker的基本概念 Dockerfile:制作进行的文件,可以理解为制作镜像的一个清单。 镜像:用来创建容器的安装包,可以理解为给电脑安装操作系统的系统镜像。 容器:通过镜像来创建的一套运行环境,一个容器里可…

Rust - 所有权

所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成了重中之重,也是所有编程语言设计的难点之一。在计算机语言不断演变过程中,出现了三种流派&#xf…

《CSS 知识点》仅在文本有省略号时添加 tip 信息

html <div ref"btns" class"btns"><div class"btn" >这是一段很短的文本.</div><div class"btn" >这是一段很短的文本.</div><div class"btn" >这是一段很长的文本.有省略号和tip.<…

【Canvas技法】蓝底金字北岛诗节选(径向渐变色、文字阴影示例)

【效果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>北岛诗选</title><style type"text/css">.c…

FireProx:一款功能强大的AWS API网关管理与IP地址轮换代理工具

关于FireProx FireProx是一款功能强大的AWS API网关安全管理工具&#xff0c;该工具可以帮助广大研究人员创建实现唯一IP地址轮换的实时HTTP转发代理。 在发送网络请求或进行网络交互时&#xff0c;实现源IP地址轮换是一个非常复杂的过程&#xff0c;虽然社区中也有相关的工具…

【爬虫开发】爬虫从0到1全知识md笔记第5篇:Selenium课程概要,selenium的其它使用方法【附代码文档】

爬虫开发从0到1全知识教程完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;爬虫课程概要&#xff0c;爬虫基础爬虫概述,,http协议复习。requests模块&#xff0c;requests模块1. requests模块介绍,2. response响应对象,3. requests模块发送请求,4. request…

JVM 垃圾收集器

JVM 垃圾收集器 垃圾收集器 垃圾收集器 Serial (串行)&#xff1a;单线程垃圾回收器&#xff1b;采用复制算法 Serial Old&#xff1a;Serial 收集器的老年代版本&#xff0c;采用标记-整理算法。 ParNew&#xff1a;多线程的垃圾回收器&#xff08;Serial 的多线程版本&#x…

Springboot+Vue项目-基于Java+Mysql的网上订餐系统(附源码+LW+演示录像)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

MySQL 快问快答

我写这篇文章的目的只有一个&#xff1a;通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉&#xff0c;通过回答这些问题&#xff0c;让我对脑子里的MySQL知识有更深的印象&#xff0c;当什么时候我的MySQL脑图不熟的时候&#xff0c;我就可以拿这篇文章来去巩固一下&am…

【VUE】Vue3自由拖拽标签

效果&#xff1a; 代码&#xff1a; <template> <div><div v-move class"box"><label class"move">拽我</label> </div> </div> </template> <script setup lang"ts">import { ref, …

【Linux C | 多线程编程】线程同步 | 互斥量(互斥锁)介绍和使用

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

【详解算法流程+程序】DBSCAN基于密度的聚类算法+源码-用K-means和DBSCAN算法对银行数据进行聚类并完成用户画像数据分析课设源码资料包

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。 与划分和层次聚类方法不同&#xff0c;它将簇定义为密度相连的点的最大集合&#xff0c;能够把具有足够高密度的区域划分为簇&#xff0c; 并可在噪声的空间数据…

占显存类代码随手丢垃圾习惯的重要性

def calculate_similarity(model, image_1, image_2, drawFalse):image_1_pil Image.fromarray(image_1)image_2_pil Image.fromarray(image_2)probability model.detect_image(image_1_pil, image_2_pil, draw)每次跑完显存代码都释放显存torch.cuda.empty_cache()return p…