How do I scale my input so that outliers aren't throwing off the data? I've scaled my inputs between -1 and 1 but outliers are still throwing my data off. i.e. 99% of the range is occupied by one outlier and the rest of the data sits between -0.001 and 0.001.
I see that one way to handle this problem is to take the logarithm of all the data before scaling it. But you can't take the logarithm of a negative value. So how should I handle outliers here? Is there some way to utilize the logarithm still?

Scaling input (and sometimes the reponse/label) is a fairly common/fundamental task and there are many different ways to achieve it. Some fairly common examples are:

*

*Standardization (mean variance scaling): See Here

*MinMax Scaling (which I assume is the scaling method you used here) See Here

*Nonlinear Scaling/Transformation See Here

*Normalization See Here
Among many others of course. I should also mention Inverse Rank Transformation which is fairly common.
Now with regards to your question: I recommend using robust scaling unless of course you have to stick to a range, which then there are other solutions to address that.
