Apple详细介绍了他们用于进行手写中文汉字识别的实时机器学习引擎,该引擎支持近 30,000 个汉字。据 Apple 所说,随着字符池大小的增加,该模型的精度的降低程度仅呈渐进分布。这使得研究人员能够识别像 GB18030-2005 这种大字符集中的汉字,其精确度仅比识别 GB2312-80 这种小字符集中的汉字的精确度略低一点。
中国国家标准字符集 GB18030-2005 包含 27,533 个条目,这么多的汉字使得多年以来键盘的实现颇具挑战性,因此一个手写识别器的价值在使用中文的人群中不言而喻。多年以来,随着时间和地域的变化,许多中文也已经被演变出了不同的版本。潜在字符值的庞大语料库、书写方式的不同、每个人独特的手写风格的属性和特质使得中文手写识别问题成为了一个极具挑战性的机器学习问题。
卷积神经网络(CNN)通常用于解决图像识别和标记相关的机器学习问题。文章中提到的早期的研究方法经过了一段时间的模型方法的演变,笔顺在将剩余字符切分子集的概率中所产生的影响很大,早期模型希望在匹配的过程中能够产生更多的可能性。
虽然早期识别算法主要依赖于基于笔顺分析的结构方法,但在之后,需要实现笔顺无关的方法,因此激发了对使用整体形状信息的统计方法的兴趣。这显然会使大语料库的识别变得复杂,因为正确的字符分类往往会随着分类的数量而变得更加困难。
在基于笔顺的方法中,应用到大字符集时暴露出了许多问题。对于每一个n
个笔顺的汉字来说,随着字符集的增大,计算的复杂性和计算开销大大提升。这使得 Apple 的研究员们使用一种更倾向于“形状驱动(shape driven)”的方法,它是不依赖于笔顺的。
Apple 所使用的方法类似于基于 MNIST 的一种在拉丁文手写识别上很好用的方法,在这种方法中 CNN(Convolutional Neural Networks)是行业标准。但是,对于 3 万多汉字的实时识别来说,使用 CNN 就显得很具有挑战性了。字符库之间的冲突和模糊性为该问题增加了额外的复杂性。
快速的书写会导致书写的样式呈曲线化,这会增加识别的不确定性。比如,对于 U+738B (王) and U+4E94 (五)的识别。最后,国际化会导致意想不到的冲突:例如,汉字 U+4E8C (二)的草体很有可能会和拉丁文中的“2”或者“Z”产生冲突。
每一个手写输入都会被转换成为一个 48 x 48 像素的图像,该图像用于表示原始字符。这是第一个被输入到剩余前馈神经网络(feed-forward neural network)的卷积特性。预处理步骤,或卷积步骤被用来最小化 CNN 处理图像所需的整体尺寸。有限数量的像素和这些像素的可能值为模型的复杂度提供了一个上限,并且能够产生一个可靠的输入字符的粗糙表示,经过训练的网络能够在 Apple Watch 等外部设备上运行。
训练数据集是根据各种不同地域和基于人口学从使用中文的人群中进行收集的上千万的手写文字。研究人员表示,成功识别的准确度足以使其在商业软件中具有良好的表现。
查看英文原文: How Apple Does Realtime Recognition of Handwritten Chinese Characters
评论