2

我试图了解人工神经网络中使用的错误反向传播算法。

据我了解,每个神经元都有一个 sigmoid 函数的结果作为输出,该函数将每个权重/输入对的乘积之和加上“偏差”值作为参数。

一旦计算了网络的总误差,就可以使用误差对各种权重的导数来找到误差函数的“局部最小值”。这些应该是误差最小的权重。

但是,导数为零的点在理论上也可能是局部最大值......我该如何解决这个问题?

干杯:)

4

1 回答 1

3

神经网络本身无法摆脱局部最小值问题。所以我们需要额外的技术。

减少局部最小值问题的一种简单方法是使用动量。(但是,这不是圣杯)使用 delta 的历史运动(例如移动平均线)更新权重将很有用。例如,如果在某个时期,delta 是-1,但最近的 delta 历史是 +1、+2、+4、+2。我们定义 MA 大小为 5。那么这个时期的实际增量将是 (+1 +2 +4 +2 -1)/5 = +1.6

也许,如果你对移动窗口权重使用指数衰减函数,这种动量方法会显示出更好的结果。

于 2013-06-13T14:36:11.560 回答