Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 神经网络学习率与批量权重更新_Neural Network_Backpropagation - Fatal编程技术网

Neural network 神经网络学习率与批量权重更新

Neural network 神经网络学习率与批量权重更新,neural-network,backpropagation,Neural Network,Backpropagation,我已经用Java编程了一个神经网络,现在正在研究反向传播算法 我已经读到,批量更新权重将导致更稳定的梯度搜索,而不是在线权重更新 作为测试,我创建了一个100点的时间序列函数,这样x=[0..99]和y=f(x)。我已经创建了一个神经网络,有一个输入和一个输出,还有两个隐藏层,有10个神经元用于测试。在解决这个问题时,我所面临的是反向传播算法的学习速度 我有100个输入点,因此当我计算每个节点的权重变化时,它实际上是一个总和: dw_{ij} = dw_{ij,1} + dw_{ij,2} +

我已经用Java编程了一个神经网络,现在正在研究反向传播算法

我已经读到,批量更新权重将导致更稳定的梯度搜索,而不是在线权重更新

作为测试,我创建了一个100点的时间序列函数,这样
x=[0..99]
y=f(x)
。我已经创建了一个神经网络,有一个输入和一个输出,还有两个隐藏层,有10个神经元用于测试。在解决这个问题时,我所面临的是反向传播算法的学习速度

我有100个输入点,因此当我计算每个节点的权重变化时,它实际上是一个总和:

dw_{ij} = dw_{ij,1} + dw_{ij,2} + ... + dw_{ij,p}
在这种情况下,
p=100

现在重量更新变得非常巨大,因此我的错误
E
会反弹,因此很难找到最小值。我获得正确行为的唯一方法是将学习率
y
设置为
0.7/p^2

是否有一些基于样本量设置学习率的一般规则?

主题:学习率应该是多少 背撑?

在标准的backprop中,学习率过低会使网络学习非常缓慢。学习率太高 使权重和目标函数发散,因此根本没有学习。如果目标函数为 与线性模型一样,二次模型可以从Hessian矩阵(Bertsekas和 齐齐克利斯,1996年)。如果目标函数有许多局部和全局最优解,如典型的前馈神经网络 对于隐藏单元,在训练过程中,最佳学习率通常会发生显著变化,因为 黑森河也发生了巨大的变化。尝试使用恒定的学习速率来训练神经网络通常是一种困难 需要反复试验的繁琐过程。关于如何选择学习率和 在一些非常简单的网络中,动量与数值条件相互作用,参见

对于批量培训,无需使用恒定的学习速率。事实上,没有理由使用 标准的backprop,因为存在更高效、可靠和方便的批量训练算法 (参见“什么是backprop?”下的Quickprop和RPROP以及提到的众多训练算法 在“什么是共轭梯度,Levenberg-Marquardt等?”下

已经发明了许多其他的backprop变体。大多数人都有与之相同的理论缺陷 标准backprop:权重(步长)的变化幅度不应是 梯度的大小。在权重空间的某些区域,梯度很小,您需要 步长大;当使用较小的随机权重初始化网络时,会发生这种情况。在世界其他地区 权重空间,梯度小,你需要一个小的步长;当你接近一个目标时就会发生这种情况 局部最小值。同样,大梯度可能需要小步或大步。多种算法 尝试调整学习率,但任何将学习率乘以梯度的算法都需要计算 当梯度突然变化时,权重的变化可能会产生不稳定的行为。这个 Quickprop和RPROP的最大优点是它们不会过度依赖 梯度的大小。传统的优化算法不仅使用梯度,还使用二阶导数或线搜索(或其组合)来获得良好的步长

在增量训练中,编造一个自动调整训练时间的算法要困难得多 培训期间的学习率。NN文献中出现了各种各样的建议,但大多数都没有 工作Darken和Moody(1992)举例说明了其中一些提案的问题,他说: 不幸的是,我们没有提供解决方案。LeCun、Simard和 Pearlmutter(1993年)和Orr和Leen(1997年),他们采用了动量而不是学习率。 还有一种随机近似的变体,称为“迭代平均”或“Polyak平均” (Kushner和Yin,1997年),理论上通过保持运行 权重值的平均值。我个人没有使用这些方法的经验;如果你有固体 证明这些或其他自动设置学习速度和/或动量的方法 增量培训实际上适用于各种NN应用程序,请告知常见问题解答维护人员 (saswss@unx.sas.com).

参考资料

  • Bertsekas,D.P.和Tsitsiklis,J.N.(1996),神经动力学 编程,马萨诸塞州贝尔蒙特:雅典娜科学出版社,ISBN 1-886529-10-8
  • Darken,C.和Moody,J.(1992),“朝向更快的随机梯度 搜索,“在穆迪,J.E.,汉森,S.J.,和利普曼,R.P.,编辑
  • 神经信息处理系统进展4,加利福尼亚州圣马特奥: 摩根·考夫曼出版社,第1009-1016页。库什纳、H.J.和尹, G.(1997),《随机逼近算法与应用》,纽约: 斯普林格·维拉格。Y.LeCun、P.Y.Simard和B.Pearlmetter。 (1993),“通过在线评估学习效率最大化” 海森的特征向量“,在汉森,s.J.,考恩,J.D.,和吉尔斯
  • C.L.(编辑),《神经信息处理系统的进展》,第5期,旧金山 加利福尼亚州马特奥:摩根·考夫曼,第156-163页。Orr,G.B.和Leen,T.K。 (1997),“使用曲率信息进行快速随机搜索”,年
  • Mozer,M.C.,Jordan,M.I.,和Petsche,T.,(编辑)神经科学的进展 信息处理系统9,麻省剑桥:麻省理工学院出版社,pp。 606-612
学分

  • 档案名称:ai常见问题/神经网络/第1部分
  • 最后修改日期:2002-05-17
  • 网址:
  • 维护者:saswss@