神经网络函数收敛到 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 之间。
我正在尝试在 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 之间。