The values of all of the neurons in my neural network are initialized to 0 and the connection strengths between the neurons are set to randomly generated floats, between 0 and 1. I have seen other people setting their ranges from 0 to .5, however. Are there any benefits of one over the other? and Should the neuron values be randomly set to either 1 or 0, instead?
Randomizing the nodes and connections, increases the initial entropy of the network.
Creating stronger biases in the network at the beginning (before training), would presumably facilitate the formation of some of the neural paths faster.
When all other factors are equal for an input, this will amortize worst cases during training (this should happen rarely, but in a network training session it may happen a few times).
In practice the difference in efficience is probably infinitesimal throughout the training period (if it matters at all) - so in the end, it is a matter of prefference.
Similarly, if you implement qsort and choose the pivot position randomly, (instead of picking the middle of each sorted segment) the sorting tends to have on average, a faster execution time (observable usually only over many repetitions).