Вопрос

I've been using MATLAB's neural network toolbox to generate good for character recognition. I wanted to develop my own to compare against and also try and use different methods for weight updates. I've got the network to return only values between 0 and 1. I was wondering how I can adapt this so that the network returns say 1, 2, 3, 4; numbers corresponding to rows in my data matrix, where each row is a different letter.

Это было полезно?

Решение

Usually when talking about character multiple character recognition it is a good approach to instead of using only 1 output to use an output for each of the characters you have. So if you have 10 characters (say digits from 0-9) you can have N inputs (1 per pixel) and 10 outputs (1 per character). Like that you can not only get a result, but analize how good is your NN tuned and how good is your result precision.

So if you input an image and the result is [0.2 0.1 0.98 0.3 0.12 0.2 0.1 0.4 0.1 0.2] you know that the NN is pretty well tuned and the result is very accurate, but instead if you get [0.4 0.1 0.6 0.54 0.5 0.3 0.5 0.3 0.57 0.2] you know that even if the number seems to be the same as before, the fiability of the result is much lower.

Having said that you can just train you NN to give you a nu,ber from 0 to 1 for each case, if you still want to do it with 1 output.

 0 ->0 
 1->0.1
 2->0.2 
 ...

Still I can assure you that your result are going to be worse like this. Use 1 output from 0 to 1 for each digit!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top