我正在尝试理解在人工神经网络中使用的误差反向传播算法。
据我所知,每个神经元都有一个sigmoid函数的输出结果,该函数将每个权重/输入对的乘积之和加上一个“偏差”值作为参数。
一旦计算出网络的总误差,就可以使用误差相对于各种权重的导数来找到误差函数的“局部最小值”。这些应该是误差最小的权重。
然而,理论上导数为零的点也可能是局部最大值……我该如何解决这个问题?
干杯:)
发布于 2013-06-13 14:36:12
神经网络本身无法摆脱局部极小问题。所以我们需要额外的技术。
减少局部最小问题的一种简单方法是使用动量。(但是,这不是圣杯)使用增量的历史移动(例如移动平均)来更新权重将是有用的。例如,如果在某个时期,增量为-1,但最近的增量历史记录为+1、+2、+4、+2。并且我们定义了MA大小5,则此时期的实际增量将为(+1 +2 +4 +2 -1)/5 = +1.6
也许,如果对移动窗口权重使用指数衰减函数,这种动量方法会显示出更好的结果。
https://stackoverflow.com/questions/17086367
复制