Where in documentation does it say that fitnet([]) gives a linear model?

1 vue (au cours des 30 derniers jours)
KAE
KAE le 4 Oct 2018
Modifié(e) : KAE le 9 Oct 2018
I have seen Greg Heath's posts such as this one in which fitnet([]) is used to fit a linear model, i.e. with no hidden layers. But I can't find a reference in the fitnet documentation that this is the expected result of [] as an input, and I find this hard to spot in the fitnet.m code. Can someone please point me to a description in the documentation of the expected behavior of fitnet([])? I just want to understand this better.

Réponse acceptée

Greg Heath
Greg Heath le 4 Oct 2018
fitnet(H) yields H nodes in the hidden layer
A linear function needs no hidden layer
I could only think of 2 possibilities
a. net1 = fitnet(0), view(net1)
b. net2 = fitnet([]), view(net2)
So, as I did, try them out and see what happens.
Not sure if I checked the documentation.
Since I don't have MATLAB on this computer I can't check.
Also can't remember what happens when you try fitnet(0).
Hope this helps.
Greg
  7 commentaires
KAE
KAE le 9 Oct 2018
Modifié(e) : KAE le 9 Oct 2018
As a side note, I am not sure how to reverse the scaling to regain the unscaled weight and bias values for the linear model y=mx+b. Here is what I tried,
weightBiasUnscaled = ...
mapminmax('reverse', [net.IW{1} net.b{1}],...
net.outputs{1}.processSettings{1});
% Unscaled weight
weightUnscaled = weightBiasUnscaled(1);
% Unscaled bias
biasUnscaled = weightBiasUnscaled(2);
However this gives a slope (weight) of -8.07 instead of the expected value of m=-5, and a bias (offset) of -5.5 not the expected value of b=-3 in y=mx+b. What am I doing wrong?
KAE
KAE le 9 Oct 2018
Modifié(e) : KAE le 9 Oct 2018
MathWorks has confirmed that fitnet([]) produces a linear model like linear regression. They pointed me to this helpful post for background. I have asked them to add info on fitnet([]) to the documentation. Thanks all for your help!

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 4 Oct 2018
In the Input Arguments section of the documentation, where it discusses the hiddenSizes input, there is the sentence, "The length of the vector determines the number of hidden layers in the network."
Since the length of the empty vector is zero:
>> length([])
ans =
0
one can infer, I suppose, that there will be zero hidden layers. This could certainly be made more explicit, though. (I don't think I would have thought to try, had it not been for your question.)
I don't have access to the code, but I'm guessing that armed with the above knowledge, you can find where MATLAB determines the number of hidden layers from the length of that input.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by