我刚刚读了“制作你自己的神经网络”一书。现在我正在尝试在 Python 中创建 NeuralNetwork 类。我使用 sigmoid 激活函数。我编写了基本代码并尝试对其进行测试。但是我的实现根本无法正常工作。经过长时间的调试和与书中代码的比较后,我发现非常大的 sigmoid 是 1,因为 Python 将它四舍五入。我numpy.random.rand()
用来生成权重,这个函数只返回从 0 到 1 的值。在对权重和输入的所有乘积求和后,我得到非常大的数字。numpy.random.normal()
我使用从范围生成随机数的函数解决了这个问题,例如 (-1, 1)。但我有一些问题。
- sigmoid 是好的激活函数吗?
- 如果 node 的输出仍然很大并且 Python 将结果四舍五入为 1,这对于 sigmoid 是不可能的怎么办?
- 如何防止 Python 舍入非常接近整数的浮点数
- 对我作为神经网络初学者的任何建议(书籍、技术等)。