How to get real-valued continous output from Neural Network? In most of the examples I've seen so far of neural networks, the network is used for classification and the nodes are transformed with a sigmoid function .  However, I would like to use a neural network to output a continuous real value (realistically the output would usually be in the range of -5 to +5).  
My questions are:
1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?

I'm looking to initially implement it PyBrain which describes these layer types.
So I'm thinking that I should have 3 layers to start (an input, hidden, and output layer) that are all linear layers?  Is that a reasonable way?  Or alternatively could I "stretch" the sigmoid function over the range -5 to 5?
 A: 1. Should I still scale the input features using feature scaling? What range?
Scaling does not make anything worse. Read this answer from Sarle's neural network FAQ: Subject: Should I normalize/standardize/rescale the data? .
2. What transformation function should I use in place of the sigmoid?
You could use logistic sigmoid or tanh as activation function. That doesn't matter. You don't have to change the learning algorithm. You just have to scale the outputs of your training set down to the range of the output layer activation function ($[0,1]$ or $[-1,1]$) and when you trained your network, you have to scale the output of your network to $[-5,5]$. You really don't have to change anything else.
A: Disclaimer: the approach presented is not feasible for continuous values, but I do believe bears some weight in decision making for the project
Smarty77 brings up a good point about utilizing a rescaled sigmoid function. Inherently, the sigmoid function produces a probability, which describes a sampling success rate (ie 95 out of 100 photos with these features are successfully 'dog'). The final outcome described is a binary one, and the training, using 'binary cross-entropy' describes a process of separating diametrically opposed outcomes, which inherently discourages results in the middle-range. The continuum of the output is merely there for scaling based on number of samples (ie a result of 0.9761 means that 9761 out of 10000 samples displaying those or similar triats are 'dog'), but each result itself must still be considered to be binary and not arbitrarily granular. As such, it should not be mistaken for and applied as one would real numbers and may not be applicable here. Though I am not sure of the utilization of the network, I would normalize the output vector w.r.t. itself. This can be done with softmax. This will also require there to be 11 linear outputs (bins) from the network (one for each output -5 to +5), one for each class. It will provide an assurance value for any one 'bin' being the correct answer. This architecture would be trainable with one-hot encoding, with the 1 indicating the correct bin. The result is interpretable then in a manner of ways, like a greedy strategy or probabilistic sampling.
However, to recast it into a continuous variable, the assuredness of each index can be used as a weight to place a marker on a number-line (similar to the behavior of the sigmoid unit), but this also highlights the primary issue: if the network is fairly certain the result is -2 or +3, but absolutely certain that it is not anything else, is +1 a viable result? Thank you for your consideration. Good luck on your project.
