I would like to know exactly WHY NN inputs have to be within -1 and 1 My questions is similar to this other question but I want to know exactly why the inputs have (or is strongly recommended) to be within this range.  I know computers can deal with numbers within a huge range.  Of all the information I have read out there, it just says you have to normalize the inputs to be in a -1 to 1 range, but never why.
 A: Short answer is that what is usually done is to standardize the data of the input factors such that they are zero mean, unity variance (and thus unity standard deviation).
The formula for standardization is
$$X^{\prime}= \frac{(X-\mu)}{\sigma}$$
where $X$ is an unstandardized factor, $\mu$ is its mean over some population or interval, $\sigma$ is its standard deviation over that population or interval.
The reason this is done is to mitigate the effects of scaling on the convergence of the NN algorithm. By scaling , I mean differences in the mean and standard deviation of individual factors. These differences in scale can arise because of different natural ranges of each factor's measurement, or even within a single factor itself if it is changing over time.
If there are large differences in scale between factors, this can degrade the performance of NN and many other algorithms. It can cause it to converge to a suboptimal local minimum dominated by the larger scaled factors that is not predictive of the effects of all the factors. Even if that doesn't happen, uncorrected scaling in the factors can cause it to take longer to train the NN, depending on the training algorithm.
