I would like to reconstruct an image by using autoencoder. I have an autoencoder that I implemented by following the UFLDL Stanford tutorial.
- I extract random 8x8 patches from images (512x512).
- the patches are then normalized to [0.1, 0.9].
- then the autoencoder is trained using the normalized patches (with sigmoid activation function).
With trained autoencoder I can encode and decode the patches, but the result after passing it through the autoencoder has somehow different ranges. Could you please explain me why? I thought that the autoencoder should try to reconstruct the input, but somehow it doesn't preserve the ranges what is not clear to me why.
An example of an input (a patch) to the autoencoder (left) and the output (right):
After normalization of both (the input and the output) it seems to be correctly reconstructed (roughly), but I'm not sure why the ranges are not the same. Is that due to regularization? Could somebody help me to understand that?
I'm asking because I would like to reconstruct the whole image, however the original image has black background, but after decoding it is somehow gray-ish. I also thought that it might be problem of my implementation, but after checking some solutions on-line it seems that most of them work the same.