IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 从keras中SGD源码理解基于时间的学习速率衰减decay策略 -> 正文阅读

[人工智能]从keras中SGD源码理解基于时间的学习速率衰减decay策略

1. 引入

在求解神经网络优化问题中,学习速率不应该是固定不变的。最好的学习速率,应该在训练开始时偏大,这样能加快训练速度,并在训练过程中逐步减小,这样能更好的逼近最优点。

所以,在参考1中,我们知道了有SGD, Adam, Adadelta 等这些非常经典的优化算法。

2. decay

从参考2的中,我们能看到如何调节SGD, Adam等优化器的参数。
同时我们也发现了一个参数叫做decay,它表示学习速率的衰减值。
decay可以用于SGD, Adam, RMSprop, Adagrad, Adadelta, Adamax, Nadam等keras提供的优化器
decay的默认值是0,可以设置为任何大于等于零的浮点数。

那么,它的含义是什么呢?

从参考3,参考4中,我们可以看到公式表示decay对learning rate的影响,从这个公式表达上,可以看出如下规律

  • 每一次epoch/iteration训练后,如果decay不为零,都会在不同优化器计算得到的learning rate的基础上,进一步减小(衰减)learning rate
  • decay越大,每一次epoch/iteration训练后,learning rate下降(衰减)的更快
  • decay为0,则每一次epoch/iteration训练后得到的learning rate不会改变

3. SGD中decay计算过程源码分析

从上一节中,我们发现有的资料给出了decay对learning rate影响的公式。本文也通过查找keras源码,在github上搜索关键字“class SGD”,找出了SGD中decay对learning rate计算的核心代码(如下代码是从源码中提取出来并经过精简、注释):

https://github.com/keras-team/keras/blob/master/keras/optimizer_v1.py#L188

class SGD(Optimizer):
  def get_updates(self, loss, params):
    lr = self.lr # 获取上一次计算得到的learning rate
    if self.initial_decay > 0: # 如果decay设置不为0
      lr = lr * (     1. /
          (1. + self.decay * tf.cast(self.iterations, backend.dtype(self.decay))))
        # tf.cast是做类型转换,相当于把self.iterations值转换为和self.decay数据类型相同

所以,learning rate的更新策略,就是

lr = lr * (1. /(1. + decay * iterations))

也就是参考3和参考4中给出的公式。

4. 总结

  1. keras中Adam,SGD等优化器,有一个参数叫做decay
  2. decay是调节“基于时间的学习速率衰减”策略
  3. 调节decay值,只是最简单的一种神经网络学习速率衰减策略
  4. decay值默认为0,表示learning rate不随时间(epoch/iterations)衰减
  5. decay值越大,则每一次epoch/iteration训练后得到的learning rate衰减越快

. 参考

  1. https://blog.csdn.net/ybdesire/article/details/51792925
  2. https://keras.io/zh/optimizers/
  3. https://stats.stackexchange.com/questions/211334/keras-how-does-sgd-learning-rate-decay-work
  4. https://zhuanlan.zhihu.com/p/78096138
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:47:03  更:2021-07-23 10:47:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 1:10:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码