首页 理论教育 手写体数字识别

手写体数字识别

时间:2022-02-11 理论教育 版权反馈
【摘要】:识别手写体数字是许多应用中的一个重要问题,这些应用包括根据邮政编码进行的邮件自动分拣、账单和纳税申报单的自动读取以及掌上电脑的数据输入等。图20.29 来自NIST手写体数字数据库的样本。迄今为止,虚拟SVM获得了最佳错误率纪录,0.56%。

20.7 案例分析:手写体数字识别

识别手写体数字是许多应用中的一个重要问题,这些应用包括根据邮政编码进行的邮件自动分拣、账单和纳税申报单的自动读取以及掌上电脑的数据输入等。这个领域取得了飞速的进展,部分是由于更好的学习算法,部分是由于更优良的训练集。美国国家科学技术学会(NIST)建立了一个包含60 000个经过标注的数字的数据库,每个数字的图像大小为20×20 = 400个像素,每个像素使用8bit灰度值。它已经成为对新的学习算法进行比较的性能测试标准。图20.29中显示了其中的一些样本。


图20.29 来自NIST手写体数字数据库的样本。上面一行:比较容易识别的数字0~9样本。下面一行:同样数字的更难识别的样本

人们尝试过许多不同的学习方法。第一种,也很可能是最简单的方法,是一个3最近邻分类器,它具有不需要训练时间的优点。不过,作为一个基于存储的算法,它必须存储所有的60 000幅图片,并且它在实际运行时的性能表现非常慢。这个方法的测试错误率为2.4%。

一种单隐层神经元网络是为这个问题而设计的,它使用400个输入单元(每像素一个单元)和10个输出单元(每类一个)。通过交叉验证,我们可以知道大约300个隐单元可以达到最佳性能。在层之间使用全连接,总共有123 300个权值。这样的网络可以达到1.6%的错误率。

一系列称为LeNet的专用神经元网络被设计出来,以利用此问题的结构——输入部分由像素的两维矩阵组成,并且图像位置以及倾斜度的微小变化无关紧要。每个网络有一32×32个单元的输入层,在这个层上面居中放置20×20的图像像素,为每个输入单元提供像素的局部邻域。这层后面跟着三层隐单元。每一层包含若干n × n矩阵的平面,n小于前面的层,因此网络对输入进行向下采样,而且其中同一平面中每个单元的权值都被限定为相同的,这样平面就可以完成特征检测器的功能:它可以挑选出诸如长竖直线或者短半圆弧这样的特征。输出层有10个单元。人们试验了许多不同版本的此类体系结构,一个有代表性的体系结构的隐层分别有768个,192个和30个单元。训练集通过对实际输入进行仿射变换得到扩展:平移、轻微旋转和图像缩放等(当然,变换应该是小规模的,否则6可能被变换成9!)。LeNet的最佳错误率可以达到0.9%。

改进型神经元网络组合了3个LeNet体系结构的副本,其中第2个的训练集是那些在第1个中有50%错误的混合模式,而第3个则在前两个不一致的那些模式上进行训练。在测试过程中,3个网络分别对10个数字进行自己的加权投票,把分数相加以判决胜者。测试的错误率为0.7%。

支持向量机(参见第20.6节)使用25 000个支持向量时,可以达到1.1%的错误率。SVM技术使它值得注意,因为SVM技术和简单最近邻方法一样,几乎不需要开发者过多考虑或者进行迭代实验,而它仍然能和经过多年发展的LeNet的性能相当。事实上,支持向量机不利用问题的结构,并且当像素以改变过的顺序出现时保持同样的性能。

虚拟支持向量机从一个常规的 SVM 出发,并通过一种设计用以利用问题结构的技术对其进行改进。取代允许所有像素对的乘积,这种方法专注于由邻近像素对形成的核。和LeNet所做的一样,它也通过对样本的变换扩大了训练集。迄今为止,虚拟SVM获得了最佳错误率纪录,0.56%。

形状匹配是一种来自于计算机视觉的技术,它用于把物体的两幅不同图像的对应部分对齐。(参见第二十四章。)主要思路是从每幅图像中挑出一组点,然后对第一幅图像中的每个点,计算它对应于第二幅图像中的哪个点。通过这样的对齐,我们就可以计算出图像之间的变换。变换为我们提供了图像之间距离的一个度量。此距离度量比仅仅计算不同的像素数更有根据,研究表明使用这种度量的3最近邻算法就可以有很好的性能表现了。训练仅在60 000个数字中的20 000个上进行,且对于每幅图像使用从Canny边缘检测器中抽取的100个样本点,形状匹配分类器就可以达到0.63%的测试错误率。

人类在这个问题上的估计错误率大约为0.2%。这个结论多少有些可疑,因为人类无法像机器学习算法那样进行彻底的测试。在来自美国邮政服务的一个类似数据集上,人类的错误率为2.5%。

下面的表格总结了我们讨论过的7种算法的错误率、运行性能、内存需求以及训练时间。还加入了另一个度量——为了达到0.5%错误率而必须拒识的数字所占的百分比。例如,如果SVM允许拒识1.8%的输入——也就是,把它们交给其它方法进行最终判决——则在剩下的 98.2%输入上,错误率就从1.1%减小到了0.5%。

下面的表格总结了我们讨论过的7个算法的错误率以及其它一些特点。


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈