Art. Neural Network (ANN): How to get a binary output response
3 ビュー (過去 30 日間)
古いコメントを表示
Hello,
my questions concerns the use of the ANN via: 'output = net(x)'. In my case I use a pattern net with binary outputs (1,0). Thus my network gives me (correct) output probabilities between 0 and 1. But I want to have direct decisions of the network, wether the output is 1 or 0. Is this possible?
I know that I can do that myself using a simple threshold function (e.g.: … if output > 0.5…) or using more complex algorithms afterwards, but I think there should be a way to get this directly, doesn't it?
Thank you for your help!
0 件のコメント
採用された回答
Greg Heath
2011 年 11 月 26 日
If you have c classes/categories and the targets are the columns of the c-dimensional unit matrix, then the outputs are estimates of the input conditional posterior probabilities for each class.
The input is assigned to the class corresponding to the maximum output regardless of the type of activation function when one of the following are used:
softmax: 0 < P(i=c|x) < 1, sum(i=1:c){P(i=c|x)} = 1
logsig: 0 < P(i=c|x) < 1
purelin: sum(i=1:c){P(i=c|x)} = 1
Typically, the most important goal is correct classification and not necessarily the best estimate of the posteriors.
Use softmax if the best posterior estimates are desired. Otherwise use logsig and normalize to a unity sum after training. Since the estimates using purelin can be negative and/or exceed unity, you can dream up a number of ways to make them look appealing. But why bother when you can just as easily use the other functions?
Hope this helps.
Greg
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
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!