首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择学习率

选择学习率
EN

Data Science用户
提问于 2014-06-16 18:08:38
回答 8查看 121.9K关注 0票数 114

我目前正致力于利用反向传播实现神经网络的随机梯度下降( SGD ),虽然我理解它的目的,但我有一些关于如何为学习速率选择值的问题。

  • 学习率是否与错误梯度的形状有关,因为它决定了下降的速度?
  • 如果是这样的话,您如何使用这些信息来通知您的决策值?
  • 如果不是我应该选择什么样的价值观,我应该如何选择它们?
  • 似乎你想要小的数值来避免过度,但你如何选择一个这样你就不会陷入局部极小或花很长的时间下降?
  • 有一个恒定的学习速率是有意义的,还是我应该使用某种度量来改变它的值,因为我在梯度中接近一个最小值?

简单地说:我如何选择SGD的学习率?

EN

回答 8

Data Science用户

回答已采纳

发布于 2014-06-16 19:53:09

  • 学习速率是否与错误梯度的形状有关,因为它决定下降的速度?
    • 在普通的SGD中,答案是否定的。该算法采用了与误差梯度无关的全局学习速率。然而,您所获得的直觉激发了对SGD更新规则的各种修改。

  • 如果是这样的话,如何使用这些信息通知您的决策值呢?
    • Adagrad是其中最广为人知的一个,并根据每个维度上误差梯度gt历史的l2范数,在每个维度上进行了全局学习速率η:

代码语言:javascript
复制
- [Adadelta](http://arxiv.org/pdf/1212.5701v1.pdf) is another such training algorithm which uses both the error gradient history like adagrad and the weight update history and has the advantage of _not having to set a learning rate at all_.
  • 如果不是我应该选择什么样的价值观,我应该如何选择它们呢?
    • 在神经网络中设置普通SGD的学习速率通常是从一个合理的值(如0.01 )开始,然后进行交叉验证以找到一个最优值的过程。典型的数值范围超过几个数量级,从0.0001到1。

  • 似乎你想要小的数值来避免过度,但是你如何选择一个这样你就不会陷入局部的最小值或花费太长的时间下降?有一个恒定的学习速率是有意义的,还是我应该使用某种度量来改变它的值,因为我在梯度中接近一个最小值?
    • 通常,最好的值接近最高的稳定学习率,学习速率衰减/退火(线性或指数)是在训练过程中使用的。这背后的原因是,早期有一个清晰的学习信号,所以积极的更新鼓励探索,而较小的学习速率则允许更精细地利用局部错误面。
票数 86
EN

Data Science用户

发布于 2014-06-26 23:46:22

以下是非常好的笔记(第12页)关于神经网络中的学习率(反向传播)由吴家辉。你会发现与学习率有关的细节。

http://web.stanford.edu/class/cs294a/sparseAutoencoder_2011new.pdf

关于你的第四点,你是对的,通常你必须选择一个“平衡”的学习速度,既不应该过高,也不应该收敛太慢。我们可以绘制出学习速率w.r.t。成本函数的下降,用于诊断/微调。在实践中,安德鲁通常使用L-BFGS算法(在第12页中提到)来获得“足够好”的学习率。

票数 26
EN

Data Science用户

发布于 2015-08-17 14:13:39

选择一个学习率是一个被称为超参数优化的“元问题”的例子。最佳学习率取决于手头的问题,以及正在优化的模型的体系结构,甚至取决于当前优化过程中模型的状态!甚至还有一些软件包专门用于超参数优化,如斯皮尔蒙超选择 (仅举几个例子,还有许多其他的例子!)

除了全面的超参数优化之外,我还想提到一种在选择学习速率方面很常见的技术,到目前为止还没有提到过。模拟退火是一种优化模型的技术,它从一个大的学习速率开始,并随着优化的进展逐渐降低学习速度。通常情况下,你会用一个很高的学习率(0.1左右)优化你的模型,然后逐步降低这个比率,通常是一个数量级(所以是0.01,然后是0.001,0.0001等等)。

这可以与早期停止相结合,只要取得了进展,就可以用一个学习速率来优化模型,然后在进度出现放缓时切换到较小的学习速率。较大的学习率似乎有助于模型定位一般的、大规模的最优区域,而较小的学习率则有助于模型集中于一个特定的局部最优区域。

票数 12
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档