According to what I've read, the output layer of a neural network is going to either perform "classification" or "regression". In regression, a numerical value is chosen on a single output node, and in classification, a choice is made of the "best" or "favorite" answer. If my output layer were to represent an image, it needs to have an output neuron expressing a value for each pixel, but I'm not sure how to do this. Is it even possible? I'm wondering because the examples of regression I've seen have all been using multiple variables to predict one value. I want multiple inputs to predict multiple outputs.
I implemented a simple variant of this. Some example images are included for convenience: https://github.com/iver56/image-regression
For black-white images place logistic activation(it will have 0-1 range) at the output layer for each pixel. Then rescale the pixel intensities to this range. For example if your intensities are 0-255, divide by 255. For RGB you can model each channel separately.
If you apply the same normalization idea to input layer and feed the same image to input and output then you are effectively building an image compression tool. I did this before the compression artifacts are really funny lines (reflecting the linear operation at each node) very much different from JPEG compression.
The output of the hidden layer is the compressed image, while the first layer acts as a compressor and second layer acting as a decompressor.