我一直在使用MATLAB的神经网络工具箱来生成良好的字符识别。我想开发自己的方法来进行比较,并尝试使用不同的方法来更新权重。我让网络只返回0到1之间的值。我在想我该如何调整这个,让网络返回1,2,3,4;与数据矩阵中的行相对应的数字,其中每行是一个不同的字母。
通常在讨论字符多字符识别时,与其只使用一个输出,不如使用每个字符的输出,这是一个很好的方法。因此,如果您有10个字符(例如0-9之间的数字),则可以有N个输入(每个像素1个)和10个输出(每个字符1个)。这样,你不仅可以得到一个结果,还可以分析你的神经网络调整得有多好,你的结果精度有多好。
所以如果你输入一个图像,结果是[0.2 0.1 0.98 0.3 0.12 0.2 0.1 0.4 0.1 0.2]
,你知道神经网络是很好的调整,结果是非常准确的,但相反,如果你得到[0.4 0.1 0.6 0.54 0.5 0.3 0.5 0.3 0.57 0.2]
,你知道即使数字看起来和以前一样,结果的可靠性要低得多。
你可以训练你的神经网络给你一个从0到1的nu,如果你仍然想用1个输出。
0 ->0
1->0.1
2->0.2
...
但我可以向你保证,你的结果会更糟。对每个数字使用从0到1的1个输出!