How do I find the features extracted from input data set using auto encoder?
12 views (last 30 days)
Kusal DuttaGupta on 30 Dec 2021
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.
Pratyush Roy on 5 Jan 2022
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!