Machine learning 需要好的方法来选择和调整“a”;“学习率”;

Machine learning 需要好的方法来选择和调整“a”;“学习率”;,machine-learning,statistics,neural-network,Machine Learning,Statistics,Neural Network,在下图中,您可以看到一个学习算法试图学习生成所需的输出(红线)。学习算法类似于反向误差传播神经网络 “学习率”是一个控制培训过程中调整大小的值。如果学习率过高,则算法学习速度很快,但其预测在训练过程中跳跃很多(绿线-学习率为0.001),如果学习率较低,则预测跳跃较少,但算法学习时间较长(蓝线-学习率为0.0001) 黑线是移动平均线 我如何调整学习速率,使其最初收敛到接近所需的输出,但随后变慢,以便磨练到正确的值 你回答了自己的问题,你说你需要随着网络的学习而改变学习率。有很多不同的方法可以做

在下图中,您可以看到一个学习算法试图学习生成所需的输出(红线)。学习算法类似于反向误差传播神经网络

“学习率”是一个控制培训过程中调整大小的值。如果学习率过高,则算法学习速度很快,但其预测在训练过程中跳跃很多(绿线-学习率为0.001),如果学习率较低,则预测跳跃较少,但算法学习时间较长(蓝线-学习率为0.0001)

黑线是移动平均线

我如何调整学习速率,使其最初收敛到接近所需的输出,但随后变慢,以便磨练到正确的值


你回答了自己的问题,你说你需要随着网络的学习而改变学习率。有很多不同的方法可以做到这一点

最简单的方法是随着迭代次数线性降低学习速率。每25(或其他任意数字),从速率中减去一部分,直到它达到一个好的最小值

您还可以通过迭代次数非线性地执行此操作。例如,每次迭代将学习率乘以.99,直到它达到一个好的最小值


或者你可以变得更狡猾。使用网络结果确定网络的下一个学习率。它的适应性指标做得越好,它的学习率就越低。这样,只要需要,它就会快速收敛,然后缓慢收敛。这可能是最好的方法,但比简单的迭代方法成本更高。

可能是在一个负反馈循环中编码到学习算法中,并以速率为关键。开始摆动过大的学习速率值击中了反馈回路的调节部分,导致反馈回路以另一种方式摆动,此时相反的调节力开始起作用


状态向量最终会在“太多”和“太少”之间找到平衡。这是生物学中有多少系统在工作,有时随着时间的推移,学习率下降的过程被称为“退火”学习率

有许多可能的“退火计划”,如学习速率是时间的线性函数:

u(t) = c / t
…其中
c
是某个常数。或者有“搜索然后收敛”的时间表:

u(t) = A * (1 + (c/A)*(t/T)) / 
           (1 + (c/A)*(t/T) + T*(t^2)/(T^2))
…当
t
t
小(“搜索”阶段)时,它将学习率保持在
A
附近,然后当
t
t
大(“收敛”阶段)时,它将降低学习率。当然,对于这两种方法,您都必须调整参数(例如,
c
A
、或
T
),但希望引入它们能带来更多帮助,而不是伤害

一些参考资料:

  • 更快随机梯度搜索的学习速率计划,Christian Darken,Joseph Chang和John Moody,信号处理的神经网络2--1992年IEEE研讨会论文集,IEEE出版社,新泽西州皮斯卡塔韦,1992年
  • 随机近似法,赫伯特·罗宾斯和萨顿·蒙罗,《数理统计年鉴》22,#3(1951年9月),第400-407页
  • 神经网络和学习机(特别是第3.13节),Simon S.Haykin,第三版(2008),ISBN 0131471392,9780131471399
  • 这是一本书

您是否考虑过与任何学习率无关的其他培训方法?
有一些训练方法绕过了计算Hessian矩阵的学习率的需要(如Levenberg Marquardt),而我也遇到过直接搜索算法(如Norio Baba开发的算法)。

搜索然后收敛实际上有一个比你在这里写的更复杂的定义。你的公式从来都不是常数。看见编辑添加:看起来错误最初出现在源材料中。所以这不是你的错,但还是值得注意。@DavidJ.Harris接得好。我已经更新了搜索然后聚合计划。你有这张图片的副本吗?图像消失了,没有它,问题就不太清楚了。