Jacobian creation technique in Neural Network (NN)

5 ビュー (過去 30 日間)
Buddhi Wimarshana
Buddhi Wimarshana 2012 年 10 月 12 日
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 件のコメント
Buddhi Wimarshana
Buddhi Wimarshana 2012 年 10 月 12 日
I am sorry, I found that even the 'mapminmax' is switched off the Jacobian values are different.
Buddhi Wimarshana
Buddhi Wimarshana 2012 年 10 月 12 日
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.

サインインしてコメントする。

採用された回答

Greg Heath
Greg Heath 2012 年 10 月 15 日
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 件のコメント
Buddhi Wimarshana
Buddhi Wimarshana 2012 年 10 月 16 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by