目前我正在学习神经网络,我正在尝试创建一个可以训练识别手写字符的应用程序。 对于这个问题,我使用前馈神经网络,当我训练它识别1,2或3个不同的字符时,它似乎工作。但是当我尝试使网络学习超过3个字符时,它将停留在40 - 60%左右的错误百分比。
我尝试使用多个层次和更少/更多的神经元,但我似乎无法做到正确,现在我想知道前馈神经网络是否能够识别那么多信息。
一些统计数据:
网络类型:前馈神经网络
输入神经元: 100(10 * 10)网格用于绘制字符
输出神经元:要重新定位的字符数
有谁知道我的架构中可能存在的缺陷是什么?输入神经元太多了吗?前馈神经网络是不是能够进行角色定位吗?
答案 0 :(得分:14)
对于手写字符识别,您需要
一个好的测试问题是手写数字数据集MNIST。以下是在该数据集上成功应用神经网络的论文:
ÿ。 LeCun,L。Bottou,Y。Bengio和P. Haffner:基于梯度的学习应用于文档识别,http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf
Dan Claudiu Ciresan,Ueli Meier,Luca Maria Gambardella,Juergen Schmidhuber:Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition,http://arxiv.org/abs/1003.0358
我使用784-200-50-10架构训练了一个MLP,并且在测试集上获得了> 96%的准确度。
答案 1 :(得分:10)
您可能希望在http://www.ml-class.org关注第3和第4讲。吴教授解决了这个确切的问题。他正在分类10位数(0 ... 9)。他在课堂上所做的一些让他达到95%训练准确度的事情是:
答案 2 :(得分:3)
答案 3 :(得分:1)
前段时间我遇到了类似的问题,试图使用MNIST数据集来识别手写数字。我的前馈神经网络在验证集上给出了大约92%的准确度,但是经常对我给出的图像进行错误分类。
我通过在网络中添加隐藏图层并使用RMSProp修复了此问题。网现在提供大约97%的准确度,并正确地分类我给它的图像。
此外,如果您的费用没有下降,这可能意味着您的学习率太高或您的网络可能陷入局部最小值。在这种情况下,您可以尝试降低学习率和初始权重。