这里有一个手写数字的巨大数据库链接。首页还列出了许多不同方法的相对性能数据,包括2层神经网络。这应该会给你一个很好的开端:MNIST digits database and performance 你可能还想看看Geoff Hinton的限制玻尔兹曼机(Restricted Boltzmann Machines)研究,他说这个方法表现得相当不错,在他的网站上还有一个很好的解释性讲座(非常易懂)。
直接将位图的每个像素馈送到神经网络中需要大量训练,并且不能很好地处理图像的缩放或旋转。为了帮助神经网络进行良好的分类,您需要执行一些预处理步骤。 归一化图像: 调整对比度和亮度,使图像的直方图与参考图像相匹配。 模糊图像以去除噪声。 使用某个阈值将其转换为黑白。 找到形状的边界框,缩放到预定义大小。 计算可用于区分一个数字与另一个数字的各种图像特征: 图像的Euler数 - 告诉您形状中有多少“孔”(例如数字8有两个孔)。 白色像素的数量(数字的面积) 白色像素坐标集的主成分 - 告诉您形状有多“细长”。 ...您可以想到的其他具有类似值的特征,用于相似数字。 主成分也可以用于规范化形状的旋转,使最长轴垂直。 特征是您输入神经网络进行分类的内容,而不是像素。