Regression is not natively supported within the autoencoder framework. There is no equivalent to the trainSoftmaxLayer function which accepts a feature input matrix of dimensions featureSize-by-numObs.
The trainNetwork function in MATLAB R2017a is designed for image learning problems – i.e. when the input data has dimensions height-by-width-by-channels-by-numObs. So the autoencoder output is not natively supported by trainNetwork.
However, you can manipulate the dimensions of the autoencoded features to make it compatible with the regressionLayer in trainNetwork. See below an example script which demonstrates this, using the feat2 output from the second autoencoder from the example in "Train Stacked Autoencoders for Image Classification". Again, keep in mind this is not quite the intended workflow for either autoencoders or SeriesNetworks from trainNetwork.
The key here is to reshape the data into image format, and to include an input layer and fully connected layer alongside the regressionLayer in the output.
layers = [ imageInputLayer([1 50])
fullyConnectedLayer(10)
regressionLayer() ];
feat2ImageFormat = reshape( feat2, [1 50 1 5000] );
trainReg = trainNetwork( feat2ImageFormat, tTrain', layers, trainingOptions('sgdm') );
Best Answer