11

目前我正在學習神經網絡,並試圖創建一個可以訓練識別手寫字符的應用程序。 這個問題我使用前饋神經網絡,它似乎工作時,我訓練它識別1,2或3個不同的字符。但是當我嘗試讓網絡學習超過3個字符時,它會停滯在40-60%左右的錯誤百分比。OCR的訓練前饋神經網絡

我嘗試了多層次,更少/更多數量的神經元,但我似乎無法得到它的權利,現在我想知道如果一個前饋神經網絡能夠識別這麼多的信息。

一些統計數據:

網絡類型:前饋神經網絡。

輸入神經元: 100(10 * 10)網格用於繪製人物

輸出神經元:字符量regocnize

沒有人知道什麼是可能的缺陷在我的架構是?有太多輸入神經元嗎?前饋神經網絡不能進行字符分配嗎?

在此先感謝。

+1

您使用了多少個隱藏的神經元? – mbatchkarov 2012-03-13 12:49:37

+0

輸入和輸出神經元似乎對你的任務很好,但你如何訓練你的網絡,你使用什麼算法?你如何初始化權重? – maximdim 2012-03-13 12:53:32

+0

我嘗試使用backpopagation和遺傳算法。我還試着用一個70神經元的隱藏層和一個隱藏層(70和40)的神經元。 – 2012-03-13 12:55:59

回答

12

對於手寫字符識別需要

  1. 許多訓練實例(也許你應該創建你的訓練集的扭曲)輸出層
  2. SOFTMAX激活功能
  3. 交叉熵誤差函數
  4. 隨機訓練梯度下降
  5. 每層偏差

一個很好的測試問題是手寫數字數據集MNIST。以下是論文,在這個數據集成功地應用於神經網絡:

Y. LeCun,L. Bottou,Y. Bengio和P.哈夫納:基於梯度學習應用於文檔識別,http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf

丹克勞迪烏Ciresan ,Ueli Meier,Luca Maria Gambardella,Juergen Schmidhuber:手寫數字識別的深大簡單神經網絡Excel,http://arxiv.org/abs/1003.0358

我訓練了一個採用784-200-50-10架構的MLP,並且在測試集上獲得了> 96%的準確度。

10

您可能想要按照講座3和4在http://www.ml-class.org。吳教授解決了這個問題。他正在分類10個數字(0 ... 9)。一些認爲他在得到他的95%的訓練精度類做的事情是:

  • 輸入Nueron:400(20×20)
    • 隱藏圖層:2
    • 隱藏層的大小: 25
    • 激活函數:乙狀結腸
    • 訓練方法:梯度下降
    • 數據大小:5000
+0

-1表示無效鏈接。 – jpjacobs 2012-03-14 21:16:22

+0

對不起,沒有鏈接..正確的鏈接是http://www.ml-class.org。班級由斯坦福大學提供。 – nitin 2012-03-14 21:25:10

+1

upvoted相應;) – jpjacobs 2012-03-14 21:47:19

1

我前一段時間也有類似的問題,試圖找出使用MNIST數據集手寫的數字。我的前饋神經網絡在驗證集上給出了大約92%的精確度,但經常對我給它的圖像進行錯誤分類。

我通過在我的網絡中添加一個隱藏層並使用RMSProp解決了這個問題。網絡現在提供了大約97%的準確度,並正確分類我給它的圖像。此外,如果你的成本沒有下降,這可能意味着你的納稅率太高,或者你的網絡可能停留在當地最低標準。在這種情況下,您可以嘗試降低您的學習率和初始權重。