神经网络的目标值

问题描述:

我一直在使用MATLAB的神经网络工具箱来产生良好的字符识别。我想开发自己的比较,也尝试和使用不同的方法来更新体重。我有网络只返回0和1之间的值。我想知道如何适应这种情况,以便网络返回说1,2,3,4;数字对应于我的数据矩阵中的行,其中每行是不同的字母。神经网络的目标值

通常在谈论字符多重字符识别时,不要只使用1个输出来为每个字符使用输出。 所以如果你有10个字符(比如0-9的数字),你可以有N个输入(每个像素1个)和10个输出(每个字符1个)。就像那样,你不仅可以得到一个结果,而且可以分析NN调整得有多好,结果精度有多好。

所以,如果你输入的图像和结果是[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]你知道,即使这个数字似乎是相同的之前,结果的可行性要低得多。

话虽如此,你可以训练你的神经网络给你一个nu,ber从0到1的每种情况下,如果你仍然想要做1输出。

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

不过我可以向你保证,你的结果会变得更糟。每个数字使用从0到1的1个输出!

+0

如果我的输入向量如下,则letter_X = [0 1 0; 1 0 1; 0 1 0]; letter_C = [0 0 0; 0 1 1; 0 0 0]; input = [letter_X(:),letter_C(:)];我的目标向量应该是什么样子?它不应该与输入相同。 – roldy 2013-05-10 01:13:13

+0

@roldy首先选择要识别的字符数。所以如果你想重新输入4个不同的字符(例如'[X,Y,C,M]'),你所需的'letter_X'输出是'[1,0,0,0]',而'letter_C'是' 0,0,1,0]'。 – 2013-05-10 12:53:07

+0

好的,谢谢。这使事情变得更清晰。 – roldy 2013-05-10 20:06:37