I can't understand how is dimensionality reduction achieved in autoencoder since it learns to compress data from the input layer into a short code, and then uncompress that code into the original data I can' t see where is the reduction: the imput and the putput data have the same dimensionality?
Autoencoders are trained using both encoder and decoder section, but after training then only the encoder is used, and the decoder is trashed.
So, if you want to obtain the dimensionality reduction you have to set the layer between encoder and decoder of a dimension lower than the input's one. Then trash the decoder, and use that middle layer as output layer.
For better understanding I have added a picture here. Auto encoder follows the strategy of neural network. Auto encoder is comprised with encoder and decoder. Half of it's encoder and remaining is decoder. According to the image there are multiple features
x1, x2,x3 and encoder encoding it and providing
z2 as output. So
z2 is the encoded output. Reversely, if you decode again in the same way you will get the input. However, it may not be exact as the input. But, it's close to the input. Basically, depends on error rate.
Auto encoder is used for multidimensional feature to be reduced as shown in the picture. The Decoder part is used to measure the auto encoder is preforming well or not. I mean measure the error rate of encoded features. Most of the time after training the model the decoder remains unused.