Hello! I'm trying to make a forecast program using neural networks. The training function I'm using is the Bayesian Regularization.
Results are pretty good, but when I see the performance, I notice that the training error has decreased but the Test values didn't.
In fact, when I test the network with additional new values, the results are pretty awful. I believe that this was because the network became overfitted.
My question is,how can I prevent the 'trainbr' function from overfitting? Every time I train the network the error of the values assigned for testing does not decrease.
inputs = tonndata(x,false,false);targets = tonndata(t,false,false);net = feedforwardnet([15,13],'trainbr');net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};net.divideFcn = 'dividerand'; net.divideMode = 'time'; net.divideParam.trainRatio = 85/100;net.divideParam.valRatio = 0/100;net.divideParam.testRatio = 15/100;net.layers{1}.transferFcn = 'logsig';net.layers{2}.transferFcn = 'logsig';net.performFcn = 'mse';net = train(net,inputs,targets);outputs = net(inputs);errors = gsubtract(targets,outputs);performance = perform(net,targets,outputs)
Best Answer