神经网络函数收敛到 y=1

Neural network function converges to y=1

我正在尝试在 python 中使用反向传播对神经网络进行编程。

Usually converges to 1. To the left of the image there are some delta values. They are very small, should they be larger? Do you know a reason why this converging could happen?

有时会朝点的方向上升然后又下降

完整代码如下: http://pastebin.com/9BiwhWrD 反向传播代码从第 146 行开始 (第 165 行的根内容什么都不做。只是尝试一些想法)

有什么地方不对吗?你见过这样的行为吗?

非常感谢。

之所以会出现这种情况,是因为输入的数据太大了。对于 x -> inf,激活 sigmoid 函数收敛到 f(x)=1。我必须规范化数据

例如:

a = np.array([1,2,3,4,5])
a /= a.max()

或完全防止生成非规范化数据。

此外,在应用 sigmoid 之前更新了临时值。但是sigmoid的推导看起来是这样的:y'(x) = y(x)-(1-y(x))。在我的例子中,它只是:y'(x) = x-(1-x)

我在计算增量后更新权重的方式也有错误。我使用 python 的神经网络教程重写了整个循环,然后它起作用了。

还是不支持bias,但是可以做classification。对于回归,它不够精确,但我想这与缺失的偏差有关。

代码如下: http://pastebin.com/hRCKe1dK

有人建议我应该将我的训练数据放入神经网络框架中,看看它是否有效。它没有。所以很明显它必须与之相关,所以我不得不认为它应该在 -1 和 1 之间。