3

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

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

  1. 首先,我应该使用偏见吗?我应该将网络中的偏见连接到哪里?我应该在隐藏层和输出层中每层都放置一个偏置单元吗?输入层呢?
  2. 在此链接中,他们将最后一个增量定义为输入-输出,并反向传播增量,如图所示。在实际以前馈方式传播错误之前,他们持有一张表格来放置所有的增量。这是否背离了标准的反向传播算法? 替代文字
  3. 我应该随着时间的推移减少学习因素吗?
  4. 万一有人知道,弹性传播是在线还是批量学习技术?

谢谢

编辑:还有一件事。在下图中,d f1(e) / de,假设我使用的是sigmoid函数,是f1(e) * [1- f1(e)],对吧? 替代文字

4

2 回答 2

3
  1. 它因人而异。就个人而言,我看不出有太多偏见的原因,但我对神经网络的研究还不够多,无法真正提出支持或反对它们的有效理由。我会尝试并测试结果。

  2. 这是正确的。反向传播首先涉及计算增量,然后在网络中传播它们。

  3. 是的。学习因素应该随着时间的推移而降低。但是,使用 BP,您可能会遇到不正确的局部平台,因此有时在第 500 次迭代左右,将学习因子重置为初始速率是有意义的。

  4. 我无法回答……从来没有听说过关于 RP 的任何消息。

于 2009-12-12T09:52:10.327 回答
2

您的问题需要更彻底地说明...您需要什么?概括还是记忆?你期待一个复杂的模式匹配数据集,还是一个连续域的输入输出关系?这是我的 0.02 美元:

  1. 我建议你留下一个偏置神经元以备不时之需。如果 NN 认为没有必要,训练应该将权重驱动到可以忽略的值。它将连接到前面层中的每个神经元,但不连接到前一层中的任何神经元。

  2. 据我所知,这个方程看起来像标准的反向传播。

  3. 很难概括您的学习率是否需要随着时间的推移而降低。该行为高度依赖数据。你的学习率越小,你的训练就越稳定。但是,它可能会非常缓慢,尤其是当您像我以前那样使用脚本语言运行它时。

  4. 弹性反向传播(或 MATLAB 中的 RProp)应该同时处理在线和批量训练模式。

我想补充一点,如果可能的话,您可能需要考虑替代激活函数。sigmoid 函数并不总是能给出最好的结果......

于 2009-12-13T19:49:04.517 回答