Trouble training sequential data with neural network

1 次查看(过去 30 天)
I am trying to get started with neural networks using own data, so my initial attempt has been to try and classify communication signals of 3 different bandwidth values using their periodograms. A typical case (one periodogram from each class) looks like this:
So it is pretty straightforward. If the human eye can tell them apart, so can a NN, right?
I see that the only way to classify sequential data is via an LSTM network, so convolutional ones are out of the question. It is worth mentioning that the dataset consists of 18700 such sequences, each with a size of 1x12000.
Following the example from the documentation, I define my LSTM network as such:
inputSize = 1;
outputSize = 75;
outputMode = 'last';
numClasses = 3;
layers = [ ...
sequenceInputLayer(inputSize)
lstmLayer(outputSize,'OutputMode',outputMode)
reluLayer()
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer]
options = trainingOptions('sgdm',...
'InitialLearnRate', 0.03,...
'LearnRateSchedule','piecewise',...
'LearnRateDropFactor',0.2,...
'LearnRateDropPeriod',5,...
'MaxEpochs',30,...
'MiniBatchSize',64,...
'Plots','training-progress')
Then I proceed to let MATLAB train the network. The results are not even worth commenting upon:
So no significant improvement over 11 whole epochs, performance always worse than random classifier. What should I do in this case, then? Do I need to define different parameters? A different network altogether? Different formatting of data? What might be the solution to this seemingly simple problem?

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deep Learning Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by