[Neural network] How does neural network calculate output from net.IW, net.LW, net.b ?
19 views (last 30 days)
Show older comments
Example I have a trained neural network as following
clear all
clc
[ x, t ] = simplefit_dataset;
net = feedforwardnet;
rng('default')
net = configure(net,x,t);
[net,tr,y,e] = train(net,x,t);
After training finished, weights will be save to net.IW, net.LW, net.b
How does the network calculate output from these weights ?
If output can be calculated as :
y=[ones(Ns,1) tansig([ones(Ns,1) x]*W1')] * W2'
Where Ns is number of training samples.
How can W1 and W2 be formed from net.IW, net.LW and net.b ?
0 Comments
Accepted Answer
Greg Heath
on 8 Dec 2014
I will let you figure out how to do it when the default normalization and de-normalization are not removed:
clear all, clc
[ x, t ] = simplefit_dataset;
[ I N ] = size(x) %[ 1 94 ]
[ O N ] = size(t) %[ 1 94 ]
net = fitnet; % H=10 default
rng('default') % For repeatability
% net = configure(net,x,t); % For multiple designs
A = net.input.processFcns % see below
B = net.output.processFcns % see below
% processFcns = {'removeconstantrows' 'mapminmax'}
net.input.processFcns = { }; % Remove normalization
net.output.processFcns= { };
[net,tr,y,e] = train(net,x,t);
R2 = 1-mse(e)/var(t,1) % 0.99998
IW = net.IW{1,1}
b1 = net.b{1}
b2 = net.b{2}
LW = net.LW{2,1}
y1 = b2 + LW * tansig( b1 * ones(1,N) + IW * x );
dy = max(abs(y1-y)) %2.6645e-15
Hope this helps.
Thank you for formally accepting my answer
Greg
3 Comments
Greg Heath
on 10 Dec 2014
It is better to just use the random weights assigned by the program.
Otherwise, reverse the above assignment statements. For example
net.IW{1,1}= 0.01*randn(H,I);
for I input nodes and H hidden nodes.
Asaduz Zaman
on 27 Jul 2016
Helped me a lot. Couldn't find why
sim(net,input)
and
classify(net,input)
wasn't producing same response as I'm new in NNTool. Now I got it. Thanks again.
More Answers (1)
Greg Heath
on 2 May 2018
You did not consider
net.input.processFcns
and
net.output.processFcns
Search in ANSWERS and
comp.soft-sys.matlab
Hope this helps.
Greg
0 Comments
See Also
Categories
Find more on Modeling and Prediction with NARX and Time-Delay Networks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!