【问题标题】:Target values for neural network神经网络的目标值
【发布时间】:2013-05-09 16:03:29
【问题描述】:

我一直在使用 MATLAB 的神经网络工具箱来生成良好的字符识别。我想开发自己的进行比较,并尝试使用不同的方法来更新体重。我让网络只返回 0 和 1 之间的值。我想知道如何调整它以便网络返回 1、2、3、4;与我的数据矩阵中的行对应的数字,其中每一行是一个不同的字母。

【问题讨论】:

    标签: matlab neural-network targets


    【解决方案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],您知道 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 的输出!

    【讨论】:

    • 如果我的输入向量如下, letter_X = [0 1 0; 1 0 1; 0 1 0];字母_C = [0 0 0; 0 1 1; 0 0 0];输入=[字母_X(:),字母_C(:)];我的目标向量应该是什么样子?它不应该与输入相同。
    • @roldy 首先选择你想识别多少个字符。因此,如果您想识别 4 个不同的字符(例如 [X,Y,C,M]),您想要的 letter_X 输出是 [1,0,0,0] 和 letter_C 是 [0, 0 , 1 ,0]。
    • @roldy 如果它帮助你不要忘记将 aswer 标记为正确!
    • 我忘了在最初的问题中问我将如何使用这个训练有素的网络来识别选定的字母?我可以将权重与所选输入相乘吗?这似乎不对。
    • 如果您使用的是 Matlab NNtoolbox,请尝试搜索帮助。有很好的例子@roldy
    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2019-09-11
    • 2018-10-27
    • 2015-02-10
    • 2010-10-13
    • 2014-07-05
    • 2017-12-21
    • 2015-03-05
    相关资源
    最近更新 更多