Neural Network - Pattern recognition network
이전 댓글 표시
Hello, I have NN for Pattern recognition. I use the function "patternnet". My question is, if I train my net with 3 different signals/classes, and then try to test it with a fourth one, to my understanding it will always try to give me the "closest one"...while I'd expect the net will tell me, such class doesn't exist in the data base...
Can this be done somehow?
댓글 수: 3
Greg Heath
2015년 8월 14일
편집: Greg Heath
2015년 8월 19일
Moved to an answer.
moose
2015년 8월 18일
Greg Heath
2015년 8월 28일
You are clear. However, you are wrong.
If the target columns are {0,1} unit vectors, indicating distinct classes, the output columns will also be unit vectors if you use the default softmax output transfer function. There is no telling what the result of an input from a vector that does not belong to any of the specified classes will be.
If the output transfer function is logsig, the outputs are not constrained to a unit sum. However, if you divide the outputs by the column sum to create a unit vector, the results are statistically consistent estimates of the input-conditional posterior probability.
So if you expect to encounter "innapropriate" data, do the following:
For each class, plot the two, probably overlapping, output histograms of that class and 'not that class'. Then you can see how that classes error rate varies as a threshold is changed.
If your data set is large enough, use training and validation data to set the thresholds. Then you can get unbiased estimates of error rates using the test set.
If your data set is not large enough, try f-fold cross-validation and final results are obtained by averaging over the f results.
Hope this helps.
Greg
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!