神经网络学习率和批量权重更新
Posted
技术标签:
【中文标题】神经网络学习率和批量权重更新【英文标题】:Neural Network learning rate and batch weight update 【发布时间】:2012-07-09 23:48:35 【问题描述】:我已经用 Java 编写了一个神经网络,现在正在研究反向传播算法。
我了解到,批量更新权重会导致更稳定的梯度搜索,而不是在线权重更新。
作为测试,我创建了一个 100 点的时间序列函数,例如 x = [0..99]
和 y = f(x)
。我创建了一个具有一个输入和一个输出的神经网络以及 2 个具有 10 个神经元的隐藏层用于测试。我正在努力解决这个问题时反向传播算法的学习率。
我有 100 个输入点,所以当我计算每个节点的权重变化 dw_ij
时,它实际上是一个总和:
dw_ij = dw_ij,1 + dw_ij,2 + ... + dw_ij,p
这里是p = 100
。
现在权重更新变得非常大,因此我的错误E
反复出现,因此很难找到最小值。我获得正确行为的唯一方法是将学习率 y
设置为 0.7 / p^2
之类的值。
是否有一些根据样本量设置学习率的一般规则?
【问题讨论】:
【参考方案1】:http://francky.me/faqai.php#otherFAQs:
主题:应该使用什么学习率 反向传播?
在标准反向传播中,学习率过低会使网络学习非常缓慢。学习率太高 使权重和目标函数发散,因此根本没有学习。如果目标函数是 二次方,与线性模型一样,可以从 Hessian 矩阵(Bertsekas 和 齐齐克利斯,1996)。如果目标函数具有许多局部和全局最优值,如典型的前馈 NN 对于隐藏单元,最优学习率通常在训练过程中发生巨大变化,因为 黑森州也发生了巨大的变化。尝试使用恒定学习率训练 NN 通常是 繁琐的过程需要大量的反复试验。有关如何选择学习率和 在一些非常简单的网络中,动量与数值条件相互作用,参见 ftp://ftp.sas.com/pub/neural/illcond/illcond.html
通过批量训练,无需使用恒定的学习率。其实没有理由使用 完全标准的反向传播,因为存在更高效、可靠和方便的批量训练算法 (参见“什么是反向传播?”下的 Quickprop 和 RPROP 以及提到的众多训练算法 在“什么是共轭梯度、Levenberg-Marquardt 等?”下)。
已经发明了许多其他的反向传播变体。大多数人都遭受相同的理论缺陷 标准反向传播:权重变化的幅度(步长)不应该是 梯度的大小。在权重空间的某些区域,梯度很小,你需要一个 大步长;当您初始化具有较小随机权重的网络时,就会发生这种情况。在其他地区 权重空间,梯度小,需要小步长;当您靠近 局部最小值。同样,大梯度可能需要小步或大步。多种算法 尝试调整学习率,但任何将学习率乘以梯度来计算的算法 当梯度突然变化时,权重的变化可能会产生不稳定的行为。这 Quickprop 和 RPROP 的最大优势在于它们不会过度依赖 梯度的大小。传统的优化算法不仅使用梯度,还使用二阶导数或线搜索(或它们的某种组合)来获得良好的步长。
使用增量训练,要编造一种自动调整 训练期间的学习率。 NN 文献中出现了各种提议,但大多数都没有 工作。 Darken 和 Moody (1992) 说明了其中一些建议的问题,他们 不幸的是,不提供解决方案。 LeCun、Simard 和 Pearlmutter (1993) 以及 Orr 和 Leen (1997),他们适应的是动量而不是学习率。 还有一种随机近似的变体,称为“迭代平均”或“Polyak 平均” (Kushner 和 Yin 1997),理论上通过保持运行来提供最佳收敛速度 权重值的平均值。我对这些方法没有个人经验;如果你有任何固体 证明这些或其他自动设置学习率和/或动量的方法 增量训练实际上适用于各种 NN 应用程序,请告知 FAQ 维护者 (saswss@unx.sas.com)。
参考文献:
Bertsekas, D. P. 和 Tsitsiklis, J. N. (1996),Neuro-Dynamic 编程,马萨诸塞州贝尔蒙特:Athena Scientific,ISBN 1-886529-10-8。 Darken, C. 和 Moody, J. (1992),“走向更快的随机梯度 搜索”,载于 Moody, J.E.、Hanson, S.J. 和 Lippmann, R.P. 编辑。 神经信息处理系统的进步 4,加利福尼亚州圣马特奥: 摩根考夫曼出版社,第 1009-1016 页。库什纳、H.J. 和尹, G. (1997),随机逼近算法和应用,纽约: 施普林格出版社。 LeCun, Y.、Simard, P.Y. 和 Pearlmetter, B. (1993),“通过在线估计的自动学习率最大化 Hessian 的特征向量,”在 Hanson, S.J.、Cowan, J.D. 和 Giles 中, C.L. (eds.), Advances in Neural Information Processing Systems 5, San 加利福尼亚州马特奥:摩根考夫曼,第 156-163 页。奥尔,G.B.和 Leen, T.K. (1997),“使用曲率信息进行快速随机搜索”,在 Mozer, M.C.、Jordan, M.I. 和 Petsche, T.,(编辑)神经学进展 信息处理系统 9,剑桥,马萨诸塞州:麻省理工学院出版社,pp。 606-612。学分:
存档名称:ai-faq/neural-nets/part1 最后修改时间:2002-05-17 网址:ftp://ftp.sas.com/pub/neural/FAQ.html 维护者:saswss@unx.sas.com (Warren S. Sarle) 版权所有 1997、1998、1999、2000、2001、2002,由美国北卡罗来纳州卡里市的 Warren S. Sarle 提供。【讨论】:
感谢您提供非常详细的答案!这对我有很大帮助!【参考方案2】:一个简单的解决方案是取一个批次的平均重量,而不是求和。这样,您可以只使用 0.7 的学习率(或您喜欢的任何其他值),而不必担心优化另一个参数。
更多关于批量更新和学习率的有趣信息可以在this article by Wilson (2003)找到。
【讨论】:
以上是关于神经网络学习率和批量权重更新的主要内容,如果未能解决你的问题,请参考以下文章