Jacobian creation technique in Neural Network (NN)

6 views (last 30 days)
I am working with an NN and I am trying to make a Jacobian (a new one by getting the differential values)of dy/dw, where 'y' is the output of the network and 'w' is the weights or bias parameters of the network.
Well, originally MatLab also creates a Jacobian as same as mine (while a NN is being trained), but values of my Jacobian and the values from MatLab Jacobian are different.
So i found out that when I disabled the 'mapminmax' function on inputs and outputs, both Jacobians have same results, but when they are enabled the values are different. But i need to keep 'mapminmax' switched on to have good results from the NN.
So can anyone please tell me what MatLab code does as an extra work on their Jacobian when the 'mapminmax' function is imposed on inputs and outputs of the NN.
Please be kind enough to help I am trying to figure out this since several weeks.
  2 Comments
Buddhi Wimarshana
Buddhi Wimarshana on 12 Oct 2012
I am sorry, I found that even the 'mapminmax' is switched off the Jacobian values are different.
Buddhi Wimarshana
Buddhi Wimarshana on 12 Oct 2012
Well I thought to add some more explanation here for the question.
The NN is a simple feedforward network and if the NN is having one hidden layer and one output layer, say b2 is the bias value connected to the output layer.
Then dy/db2 should be equal to 'one' mathematically. But in Jacobian created by originally by the MatLab (not in my Jacobian) that particular value is different from 'one' and it is always having a value which it seems to be having a connection between the number of inputs. When the number of inputs kept constant that value (dy/db2) is not changing, when the number of inputs are changed then dy/db2 is changed.
sorry for the missing information in the original post. Hope these information will help you to figure out my problem.
Thanx.

Sign in to comment.

Accepted Answer

Greg Heath
Greg Heath on 15 Oct 2012
I cannot access the current source code.
>> help nntraining.perfs_jejj
Copyright 2010 The MathWorks, Inc.
TODO - if no memory split, return intermediate variables
if their output arg is present.
>> doc nntraining.perfs_jejj
>> type nntraining.perfs_jejj
Error using type
File 'nntraining.perfs_jejj' not found.
====================================================
Try an older version that might not be considered proprietary
Hope this helps.
Greg
Thank you for formally accepting my answer.
  1 Comment
Buddhi Wimarshana
Buddhi Wimarshana on 16 Oct 2012
Thanx a lot sir for your effort. Well i found the answer by my self. i tried several days and found that i need to reverse the 'mapminmax' effect on the results of the Jacobian values. i will write a descriptive one later because i have seen similar question to this in this forum. But at the moment i am really busy with my works, so after some time i will write a full descriptive one.
And yes, that nntraining.perfs_jejj is the place to look for understanding it, somehow i opened that function file, but it is getting values from some other places so its quite hard and my matlab knowledge is not good enough to understand them all.
thanks again and much appreciate your help, without helpers like you the life of novice programmers like me will be quite miserable.

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!