I just read "Make your own neural network" book. Now I am trying to create NeuralNetwork class in Python. I use sigmoid activation function. I wrote basic code and tried to test it. But my implementation didn't work properly at all. After long debugging and comparation to code from book I found out that sigmoid of very big number is 1 because Python rounds it. I use numpy.random.rand() to generate weights and this function returns only values from 0 to 1. After summing all products of weights and inputs I get very big number. I fixed this problem with numpy.random.normal() function that generates random numbers from range, (-1, 1) for example. But I have some questions.
- Is sigmoid good activation function?
- What to do if output of node is still so big and Python rounds result to 1, which is impossible for sigmoid?
- How can I prevent Python to rounding floats that are very close to integer
- Any advices for me as beginner in neural networks (books, techniques, etc).