How to change the performance function of neural network to mean absolute relative error
23 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kamuran Turksoy
le 26 Avr 2017
Modifié(e) : Jinlong Fu
le 8 Juin 2019
Hello,
I know the Matlab NN toolbox has MSE, SSE, MAE and SAE performance functions but would like to implement a custom performance function as:
myperf=mean(abs((t-y)./t));
where t is the target output vector and y is the NN output.
Any thoughts on how can this be implemented?
Thanks in advance.
2 commentaires
Réponse acceptée
Kamuran Turksoy
le 4 Mai 2017
Modifié(e) : Kamuran Turksoy
le 4 Mai 2017
1 commentaire
Jinlong Fu
le 8 Juin 2019
Modifié(e) : Jinlong Fu
le 8 Juin 2019
In my view, it should be as follows:
net.performFcn='mse'; % mean suqare error
net= train(net,x,t,{},{},1./t.^2); % 1./t.^2 is the error weight
or
net.performFcn='mae'; % mean absolut error
net= train(net,x,t,{},{},1./t); % 1./t is the error weight
Plus de réponses (1)
Greg Heath
le 28 Avr 2017
You have at least 2 obstacles:
1. When t --> 0
2. abs is not differentiable
If t --> 0 is not a problem try
myperf = mse( 1-y./t);
Hope this helps.
Thank you for formally accepting my answer
Greg
1 commentaire
Voir également
Catégories
En savoir plus sur Sequence and Numeric Feature Data Workflows dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!