【发布时间】:2013-05-09 16:03:29
【问题描述】:
我一直在使用 MATLAB 的神经网络工具箱来生成良好的字符识别。我想开发自己的进行比较,并尝试使用不同的方法来更新体重。我让网络只返回 0 和 1 之间的值。我想知道如何调整它以便网络返回 1、2、3、4;与我的数据矩阵中的行对应的数字,其中每一行是一个不同的字母。
【问题讨论】:
标签: matlab neural-network targets
我一直在使用 MATLAB 的神经网络工具箱来生成良好的字符识别。我想开发自己的进行比较,并尝试使用不同的方法来更新体重。我让网络只返回 0 和 1 之间的值。我想知道如何调整它以便网络返回 1、2、3、4;与我的数据矩阵中的行对应的数字,其中每一行是一个不同的字母。
【问题讨论】:
标签: matlab neural-network targets
通常在谈论字符多字符识别时,它是一种很好的方法,而不是仅使用一个输出来为您拥有的每个字符使用一个输出。 因此,如果您有 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],您知道 NN 调整得非常好并且结果非常准确,但是如果您输入 [0.4 0.1 0.6 0.54 0.5 0.3 0.5 0.3 0.57 0.2],您知道即使数字看起来是和以前一样,结果的可信度要低得多。
话虽如此,如果您仍然想用 1 个输出来做,您可以只训练您的 NN 给您一个从 0 到 1 的 nu,ber。
0 ->0
1->0.1
2->0.2
...
但我可以向您保证,您的结果会像这样更糟。每个数字使用 1 个从 0 到 1 的输出!
【讨论】:
[X,Y,C,M]),您想要的 letter_X 输出是 [1,0,0,0] 和 letter_C 是 [0, 0 , 1 ,0]。