I am running an LSTM neural network. I have two inputs and want two output classifications. The two inputs are crack-related signals (top image) and noise signals (bottom image). I have 125 signals as my training data and 59 signals as my testing data.
The network layers and training options are seen in the lines of code below. No matter what training options I change ('sgdm' vs. 'adam', # of max epochs, initial learn rate, etc.) I consistantly get a training accuracy of 51.20%. A screenshot of my training process can be seen under the code and a confusion matrix for my testing data can be seen below the training process image. Originally, I was working with only 27 training signals and 27 testing signals and was getting an accuracy of only 62% and I thought that maybe I just didn't have enough data but after adding more data, my training accuracy went down.
inLayer = sequenceInputLayer(1);
lstm = bilstmLayer(100,'OutputMode','last');
outLayers = [
layers = [inLayer;lstm;outLayers];
options = trainingOptions('sgdm', ...
net = trainNetwork(dataTrain,fTrain,layers,options);
Does anyone know what I can do to improve my accuracy?