I am currently trying to automate some identification process of characteristic noise sounds. For acoustic feature, I calculate MFCC. I have downloaded a free MATLAB toolbox from Dan Ellis'es website. As a classifier, I am trying Neural Network patternnet
with Softmax transfer function from Neural Network Toolbox in MATLAB. I have built a training file which consists of ~ 200 sounds samples and ~ 200 additional sounds of "anything else" to give NN a sort of counter balance. I extract 13 MFCC coefficients, 13 delta coefficients calculated from MFCC, and 13 delta2 coefficients calculated from delta1. Also, I feed 5 consecutive frames in sequence at once to NN. So all together, I have like 13*3*5 = 195 inputs. I have also 10 outputs, 5 per frame, and 2 per each class.
When I analyse NN's performance and its gradient progress, I am not quite sure if NN is trained correctly. It looks OK at first as the gradient gets low but it doesn't reach its threshold $10^{-6}$. NN simply stops due to validation. When I test the model on another test file, NN seems to pick also other sounds. It's like its training is not done correctly. I did try different configurations such as 195, 390, 780 neurons in one, two, and three layer but it doesn't seem improve the performance.
Perhaps someone could give an advice on how to improve the classification.
Thanks
Below I have provided some screenshots from NN performances.
NN Gradient. 195 inputs, 195 neurons in a hidden layer, 10 outputs
NN Performance. 195 inputs, 195 neurons in a hidden layer, 10 outputs
NN Gradient. 195 inputs, 3 hidden layers, 780 neurons in each hidden layer, 10 outputs
NN Performance. 195 inputs, 3 hidden layers, 780 neurons in each hidden layer, 10 outputs