How do I improve the performance in training neural network ?

조회 수: 1 (최근 30일)
Iwan
Iwan 2014년 2월 25일
답변: Greg Heath 2014년 2월 26일
Im currently working on MATLAB project especially in neural network training. Im currently working on collecting samples from evaluated nuclear data files (Energy and total cross section). My project is to get the new value of energy after it trained with neural network and compare it with energy from samples but with the same total cross section. Here is my source code
E1 =transpose (E);
B =transpose (A);
net = newff(B,E1,[70 70 70 70],{'logsig','logsig','tansig','logsig'});
net = train(net,B,E1);
Ereg = sim(net,B);
net.trainParam.goal = 0.0000000000000001;
net.trainParam.epochs=1000;
net.trainParam.min_grad = 0;
E is the energy and A is the total cross section from samples. Each of them consist of 40306 elements. I used transpose function because I kept getting error "Matrix Dimension Must Agree' when I trained the samples and somehow changing the array help me to solve the problem. My question is after I trained it using trainlm the performance is not so good. The error is so high that I tried to chenge the input and transfer function for each layer but it didnt work so well. How I can increase the performance or is there something wrong with my code? Thanks.

채택된 답변

Greg Heath
Greg Heath 2014년 2월 26일
Try this. Details can be discussed later
[ I N ] = size(B) % = ?
{ O N ] = size(E1) % = ?
MSE00 = mean(var(E1'),1) % Reference MSE = ?
net = newff(B,E1,H);% vary H in [ 1, -1 + ceil( (N*O-O) / (I+O+1) ) ]
[ net tr Ereg err ]= train(net,B,E1); % err = E1-Ereg
NMSE = mse(err)/MSE00 % Good values are below 0.01

추가 답변 (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