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

时间:2017-01-07 13:28:51

标签: machine-learning neural-network backpropagation

我正在尝试用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行的根本没有做任何事情。只是尝试了一些想法)

任何可能出错的想法?你见过这样的行为吗?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

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

e.g:

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的神经网络教程重写了整个循环,然后就可以了。

它仍然不支持偏见但它可以进行分类。对于回归来说,它不够精确,但我想这与缺失的偏见有关。

这是代码: http://pastebin.com/hRCKe1dK

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