How can I access the weights and connections in nftool in MATLAB?

11 vues (au cours des 30 derniers jours)
Hi. I want to create a neural network for a fitting problem and assign the connections between neurons by myself. I also would like to access the weights and see how they change with each epoch. Is there any way to do this ?

Réponse acceptée

Greg Heath
Greg Heath le 3 Avr 2015
I don't understand: The weights are the connections between neurons.
Also, I do not understand why you would want to do this. In general, knowing the weight values doesn't help much because there are a huge number of weight combinations that will minimize the error.
What are the sizes of your input and target matrices?
However, it should help quite a bit if you
1. Transform inputs to be uncorrelated, zero-mean and unit variance (zscore or mapstd).
2. Similarly for outputs.
3. Minimize the number of hidden nodes subject to a maximum error constraint (e.g., MSEgoal =
0.01 (or 0.005) * mean(var(target',1))
4. NOTE: Given the output transformation in 2, mean(var(target',1)) = 1
Access:
IW = net.IW ; B = net.b ; LW = net.LW;
Modification:
net.IW = IWnew; net.b = Bnew; net.LW = LWnew
To modify connections see the doc and website documentation.
Hope this helps
Thank you for formally accepting my answer
Greg
  2 commentaires
Ananthakrishnan Rajendran
I am trying to build a neural network on hardware. So I have access to only a limited rage of weights. I want to compare my results with a software implementation. I know the weights are huge and don't make sense usually. But I would like to set an upper and lower bound to the weights so that I can compare the results I get and make sense of it.
If you think there is no way to actually control the weights, then I guess there is no point in me pursuing implementing a neural net using MATLAB.
Ananthakrishnan Rajendran
Also, I'm trying a simple 3 bit parity problem. It basically has 3 inputs and one output. The total data that I have at my disposal is only 8 input combinations. This is a very simple problem, but this will be my baseline for the remaining work.

Connectez-vous pour commenter.

Plus de réponses (1)

Greg Heath
Greg Heath le 30 Mar 2015
I think you will have to use the command line approach and loop over 1 epoch at a time.
It will be painfully slow even if you modify train or adapt.
Hope this helps.
Thank you for formally accepting my answer
Greg
  1 commentaire
Ananthakrishnan Rajendran
Hi Greg!
Thanks for responding. Do you know how I'll be able to access and modify the weights in the neural network if I decide to use the toolbox? I need to modify the connections between neurons as well.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by