Issue about Autoencoder Network Architecture

2 views (last 30 days)
jiajun
jiajun on 23 Oct 2023
Answered: Ayush Aniket on 27 Dec 2023
I'm having a problem with the autoencoder. I have both the encoder and decoder transfer functions for the network set to logsig. according to the formula that autoencoder runs on, the output should not be negative. However, this does happen, can you answer my query?
  4 Comments
jiajun
jiajun on 16 Dec 2023
From a theoretical point of view, the activation function of both the encoder and the decoder is logsig, with no negative output values being possible. However, this does happen in my program (both input and output values are negative). So I would love to know why the decoder is still able to output negative values when using the logsig activation function
Venu
Venu on 27 Dec 2023
I think you have to review your network architecture, layer connectivity. Inspect the properties of each layer to ensure that the correct activation function is assigned. You can try checking Initialization of weights and biases, verify whether your input data is scaled (Normalization) properly to work well with logsig function.

Sign in to comment.

Answers (1)

Ayush Aniket
Ayush Aniket on 27 Dec 2023
Hi jiajun,
As per my understanding, the output from your autoencoder is negative even after setting the encoder and decoder transfer functions to 'logsig'. The reason for this occurrence is scaling of data. Since you mentioned that your input data is negative, to apply 'logsig' the 'trainAutoencoder' function scales the data to the range of the decoder activation function. This is a default 'true' parameter. Now, if the input data has been scaled, the output data is also scaled back to the initial range by the 'predict', 'encode' and 'decode' methods.
Please refer to the following documentation section link to read more about the 'ScaleData' input argument and the process of scaling:
Hope it helps.

Community Treasure Hunt

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

Start Hunting!