How do I find the features extracted from input data set using auto encoder?

11 views (last 30 days)
Input data has 34 features
I have used trainAutoencoder function to train the network
I used hidden layer of 10 neurons
I have used encode function to retrieve encoded data from input
But I am unable to map the 10 features in hidden layer to any of the 34 features in input because the encoder part of autoencoder has encoded the input
I need to identify which of the 10 features out of total of 34 features have been extracted. Please advise regarding how to proceed.

Accepted Answer

Pratyush Roy
Pratyush Roy on 5 Jan 2022
Hi Kusal,
In my understanding, you want to identify which of the input features has been extracted during the encoding process in an autoencoder.
Currently there might be no direct way to extract this information. However, as a workaorund you can consider exracting the encoder weights and biases using the EncoderWeights and EncoderBiases properties of the AutoEncoder object obtained afetr training the model.
The following code snippet might demonstrates how to obtain the biases and weights
autoenc = trainAutoencoder(X);
W = autoenc.EncoderWeights;
b = autoenc.EncoderBiases;
h = autoenc.EncoderTransferFunction;
The input(X) and the encoded vector(Z) are related to each other through the following relation:
This can help us to understand which of the input vector components have been extracted as part of the hidden output.
For more information, this documentation link might be helpful.
Hope this helps!
  1 Comment
Kusal DuttaGupta
Kusal DuttaGupta on 7 Jan 2022
Hi Pratyush,
Thanks for your feedback. I have been reading up some more on auto encoders and as per my understanding the encoder part of the autoencoder performs a transformation of the inputs into either a lower dimensional or higher dimensional subspace depending on number of hidden layers and also may learn new features during the transformation. It generates code which is used by the decoder to re-construct the input. I am working on an outlier detection problem and think I will use the reconstruction error of the autoencoder to detect outliers in the input data.
Thanks once again!
Regards
Kusal DuttaGupta

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!