I get a "Performance function replaced with squared error performance" warning when trying to set 'crossentropy' as the performance function.

15 visualizzazioni (ultimi 30 giorni)
If I run the following code:
[x,t] = house_dataset;
net = fitnet(10);
net.performFcn = 'crossentropy';
[net,tr] = train(net,x,t);
I get this warning:
Warning: Performance function replaced with squared error performance.
> In trainlm>formatNet (line 155)
In trainlm (line 65)
In nntraining.setup (line 14)
In network/train (line 335)
How can I use 'crossentropy' as the performance function then?
Regards

Risposte (4)

Greg Heath
Greg Heath il 19 Apr 2016
Crossentropy is, theoretically, not appropriate for regression.
Classically, it is only used for classification and pattern-recognition. It's definition involves probability distribution functions and their logarithms.
That is not to say that it will not yield good answers for regression problems. Obviously I have never tried it and, one day when I get bored, I might tinker around with it.
Hope this helps.
If you think this answer is worth accepting, THANKS!
Greg

Greg Heath
Greg Heath il 5 Ago 2017
Modificato: Greg Heath il 18 Giu 2019
If you insist on using CROSSENTROPY, try PATTERNNET.
Hope this helps.
Thank you for formally accepting my answer
Greg

Alex
Alex il 7 Apr 2016
It worked for me after adding
net.performParam.regularization = 0.1;
net.performParam.normalization = 'none';
Seems to be necessary when using cross entropy.

Chinmay Maheshwari
Chinmay Maheshwari il 2 Ago 2017
Any updates on it as i am also facing the same trouble. I am not to customize my performance function because of this Thanks in advance

Categorie

Scopri di più su Sequence and Numeric Feature Data Workflows in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by