神经网络反向传播

时间:2013-06-13 11:51:18

标签: neural-network

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

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

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

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

干杯:)

1 个答案:

答案 0 :(得分:1)

神经网络本身无法解决当地的最小问题。 所以我们需要其他技术。

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

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