如何实现神经网络的自动学习率?

人工智能 神经网络
2021-11-17 09:24:02

我正在学习神经网络,一切都按计划进行,但就像人类一样,调整自己以更有效地学习,我试图从概念上理解如何为神经网络实现自动调整学习率。

我试图根据错误来做到这一点,比如错误学习率有多大,也越来越大。[可以在这里澄清一下——不完全确定你在说什么。如果可以澄清,我很乐意清理英语。-周公】

*如果你想给我一个基于 C 语言或数学的例子,因为我没有使用 Python 或 Pascal 的经验。

3个回答

调整学习率是机器学习中的常见场景。关于它的文献丰富,论文数不胜数。最常见的实现:

  • 阿达格拉德
  • RMSProp
  • 亚当

还有更多变体。你需要做一些研究。请看一下:

https://en.wikipedia.org/wiki/Stochastic_gradient_descent

在此处输入图像描述

除了已经提到的方法之外,我最近遇到的一种方法是循环学习率。

主流方法通常会单调地降低学习率。在大多数情况下,它们运行良好。然而,它们在处理鞍点和局部最小值方面做得并不好。CLR 方法声称通过有效处理鞍点的情况来解决问题。

参考:https ://arxiv.org/abs/1506.01186

虽然在训练期间调整学习率当然很有趣,但找到一个好的初始学习率也是如此。

训练神经网络的循环学习率fast.ai(pytorch)实现

这是一个很好的从业者对学习率计划的概述(python,但可读性强并且图表很好)。