我正在学习神经网络,一切都按计划进行,但就像人类一样,调整自己以更有效地学习,我试图从概念上理解如何为神经网络实现自动调整学习率。
我试图根据错误来做到这一点,比如错误学习率有多大,也越来越大。[可以在这里澄清一下——不完全确定你在说什么。如果可以澄清,我很乐意清理英语。-周公】
*如果你想给我一个基于 C 语言或数学的例子,因为我没有使用 Python 或 Pascal 的经验。
我正在学习神经网络,一切都按计划进行,但就像人类一样,调整自己以更有效地学习,我试图从概念上理解如何为神经网络实现自动调整学习率。
我试图根据错误来做到这一点,比如错误学习率有多大,也越来越大。[可以在这里澄清一下——不完全确定你在说什么。如果可以澄清,我很乐意清理英语。-周公】
*如果你想给我一个基于 C 语言或数学的例子,因为我没有使用 Python 或 Pascal 的经验。
调整学习率是机器学习中的常见场景。关于它的文献丰富,论文数不胜数。最常见的实现:
还有更多变体。你需要做一些研究。请看一下:
除了已经提到的方法之外,我最近遇到的一种方法是循环学习率。
主流方法通常会单调地降低学习率。在大多数情况下,它们运行良好。然而,它们在处理鞍点和局部最小值方面做得并不好。CLR 方法声称通过有效处理鞍点的情况来解决问题。
虽然在训练期间调整学习率当然很有趣,但找到一个好的初始学习率也是如此。
训练神经网络的循环学习率,fast.ai(pytorch)实现。
这是一个很好的从业者对学习率计划的概述(python,但可读性强并且图表很好)。