反向传播问题

3

关于神经网络反向传播算法的编码,我有几个问题:

我的网络拓扑结构是输入层、隐藏层和输出层。隐藏层和输出层都有sigmoid函数。

  1. 首先,我应该使用偏置吗? 在我的网络中,偏置应连接到哪里? 我应该在隐藏层和输出层中每层放置一个偏置单元吗? 那输入层呢?
  2. 在这个链接中,他们将最后一个delta定义为输入-输出,然后像图中所示回传delta。他们保留了一张表来存放所有的delta,然后以前馈方式实际传播误差。这是否与标准的反向传播算法不同? alt text
  3. 我应该逐渐降低学习因子吗?
  4. 如果有人知道,Resilient Propagation是在线学习还是批量学习技术?

谢谢

编辑:还有一件事。在下面的图片中,假设我使用sigmoid函数,d f1(e) / de是f1(e) * [1- f1(e)],对吗? alt text

2个回答

3
  1. 情况各有不同。就我个人而言,我没有看到偏见的太多理由,但是我还没有深入学习神经网络,不能就它们的优缺点进行有效的论证。建议大家可以尝试并测试结果。

  2. 没错。反向传播首先涉及计算delta值,然后将其沿着网络传播。

  3. 是的。学习因子应该随着时间的推移而逐渐降低。然而,使用BP时,可能会陷入本地、错误的高原状态,所以有时在第500次迭代左右,将学习因子重置为初始速率是有意义的。

  4. 我无法回答这个问题……从未听说过RP。


1
  1. 我认为RP可以在线或批处理。
- Richard H

2
您的问题需要更详细地说明一下...您的需求是什么?概括还是记忆?您是否预期一个复杂的模式匹配数据集,还是一个连续域输入输出关系?以下是我的$0.02:
  1. 我建议您保留偏置神经元以防万一。如果NN认为它不必要,训练应该会将权重驱动到可以忽略的值。它将连接到前面每一层的每个神经元,但不会从前面任何一个神经元连接过来。
  2. 就我所知,这个方程看起来像标准的反向传播。
  3. 很难一般化你的学习率是否需要随时间减小。行为高度依赖于数据。您的学习率越小,训练就越稳定。然而,如果您像我曾经一样在脚本语言中运行它,那么它可能会非常缓慢。
  4. 弹性反向传播(或MATLAB中的RProp)应该处理在线和批处理训练模式。
我只想补充一点,如果可能的话,您可能希望考虑替代激活函数。Sigmoid函数并不总是给出最好的结果...

我的目标是泛化。我现在实际上正在使用tanh。除此之外,你还有什么建议? - devoured elysium
隐藏层和输出神经元分别采用tanh和线性函数的组合适用于连续函数映射。阶跃函数适用于模式识别。请在您的问题中添加更多细节。 - Zaid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接