How to change the performance function of neural network to mean absolute relative error
23 ビュー (過去 30 日間)
古いコメントを表示
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.
採用された回答
Kamuran Turksoy
2017 年 5 月 4 日
編集済み: Kamuran Turksoy
2017 年 5 月 4 日
1 件のコメント
Jinlong Fu
2019 年 6 月 8 日
編集済み: Jinlong Fu
2019 年 6 月 8 日
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
その他の回答 (1 件)
Greg Heath
2017 年 4 月 28 日
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
参考
カテゴリ
Help Center および File Exchange で Sequence and Numeric Feature Data Workflows についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!