Hi,
I'm trying to implement a neural network, replicating that from a research paper.
There are 150 input variables, with values in the range [0,1]. The net has 4 hidden layers, the first 3 have 128 nodes, the final layer 20 nodes.
As per the paper, I'm creating the network by sequentially training auto encoders, then stacking them to create the final network.
However, whatever input I provide, every value is mapped to ~0.05 in the final output.
Is this an issue anyone has seen, and are there any suggestions as to why it may be occurring?
Code below, with some random numbers added as input so it will execute.
X = rand(150, 3000);
noNodes = 128;
ae1 = trainAutoencoder(X, noNodes);
f1 = encode(ae1, X);
ae2 = trainAutoencoder(f1, noNodes, 'ScaleData', false);
f2 = encode(ae2, f1);
ae3 = trainAutoencoder(f2, noNodes, 'ScaleData', false);
f3 = encode(ae3, f2);
ae4 = trainAutoencoder(f3, 20, 'ScaleData', false);
dnn = stack(ae1, ae2, ae3, ae4);
Y = dnn(X);
Thanks,
David.