필터 지우기
필터 지우기

change input of tansig with scaler

조회 수: 1 (최근 30일)
mangood UK
mangood UK 2013년 1월 5일
hi.. i want to train my neural network by use matlab command but the problem is that my transfer function in my neural network equal tanh(m*x) the m may 0.01 or 0.001 or 2 the derivative of function is m*(1-tanh(m*x).^2)
can any suggestion !!!!!
thank in advance
  댓글 수: 2
Greg Heath
Greg Heath 2013년 1월 5일
I don't understand your problem.
What version of the NNTBX are you using?
Details?
Code??
mangood UK
mangood UK 2013년 1월 5일
편집: mangood UK 2013년 1월 5일
dear Greg i have matlab 2012. i have this neural network, net = newff([0 1;0 1 ;0 1],[4 1],{'tansig','purelin'})
the problem is i want to replace the tansig with tanh(3*X) and train network using net=train(net,I,O);
can we do this in matlab!!!! any suggestion to solve the problem

댓글을 달려면 로그인하십시오.

채택된 답변

Greg Heath
Greg Heath 2013년 1월 6일
편집: Greg Heath 2013년 1월 8일
What you want to do is totally unnecessary. What is your reason for wanting to do this?
tanh = tansig.
The weight initialization logic in init automatically determines an optimal range for the intial weights. The final weights needed are automatically determined by the training algorithm.
Since your very obsolete version of newff does not automatically normalize the input to the range [-1,1], you can test what happens if you keep the same target but multiply all of the inputs by the same constant (equivalent to using the multiplier in tanh).
[ x0, t ] = simplefit_dataset;
MSE00 = mean(var(t',1)) % Reference MSE
H = 6,
nmax = 10,
Ntrials = 10,
rng(0),
j = 0
for n =1:nmax
j = j+1
x = n*x0;
for i = 1:Ntrials
net = newff( minmax(x), [ H O ] ,{'tansig' 'purelin'});
net.trainParam.goal = 0.01*MSE00;
[net tr ] = train(net,x,t);
time(i,j) = tr.time(end);
Nepochs(i,j) = tr.epoch(end);
MSE = tr.perf(end);
R2(i,j) = 1-MSE/MSE00;
end
end
n = (1:nmax)
time = time
Nepochs = Nepochs
R2 = R2
Does looking at the summary statistics of time, Nepochs and R2 indicate any advantage to using a multiplier?
Hope this help.
Thank you for formally accepting my answer.
Greg
P.S. If you have 2012, why are you using the very obsolete version of newff?
Does it have anything to do with the fact that the more recent obsolete version of newff (net =newff(x,t,H)) or the current version of fitnet (fitnet(H) ) normalize, by default, the inputs to the range [-1,1]?
  댓글 수: 5
Greg Heath
Greg Heath 2013년 1월 8일
@Jan Is that sufficient or would you like me to do something more?
mangood UK
mangood UK 2013년 1월 8일
thank you

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by