2013-05-09 78 views
0

我一直在使用MATLAB的神經網絡工具箱來產生良好的字符識別。我想開發自己的比較,也嘗試和使用不同的方法來更新體重。我有網絡只返回0和1之間的值。我想知道如何適應這種情況,以便網絡返回說1,2,3,4;數字對應於我的數據矩陣中的行,其中每行是不同的字母。神經網絡的目標值

回答

0

通常在談論字符多重字符識別時,不要只使用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