Google AI研究团队通过递归神经网络(RNN),将Gboard手写输入识别模型的错误率降低了20%~40%,Google也为所有以拉丁字母书写的语言,推出新版的识别模型,并发布相关的研究论文,详细解释该版本模型背后的技术。
过去,Google采用的识别方法是将手写输入切割成单个字符,再针对字符进行解码,Google解释,对每个手写识别系统而言,接触点是开端,系统将一串行的点视为笔画,而手写输入就是用笔画串行来表示,且每个点都会附有时间戳,由于Gboard被用于多种不同的设备,也意味着有着不同的屏幕分辨率,因此,Google的第一步即是要将接触点座标范式,接着,为了正确地截取手写输入的形状,Google将接触点组成的串行,转换三次贝兹曲线(cubic Bézier curves)串行,再将其串行作为递归神经网络的输入数据。
Google表示,虽然用贝兹曲线作为手写识别的数据已经实行有些年头,但是将其当作AI模型的输入数据却是非常新颖的,如此一来,也能够在不同样本数量和正确率的多种设备中,提供一致的输入数据,有别于过去切割和解码的识别方法,Google现在则是创建多个如何将笔画分解字符的不同假设,接着从这些分解后的串行中,找出最适合的字符串行。
这个新方法的另外一个优点是,贝兹曲线的串行比接触点串行来得小,使模型更容易取得输入数据的时间依赖性,也就是每条曲线都是由起始点、终点,以及两个额外的控制点所定义的多项式来表示,通过迭代的方式将输入座标和曲线之间的平方距离最小化,来找出准确表示手写输入的三次贝兹曲线串行。
找出手写输入的三次贝兹曲线串行之后,还需要将曲线串行转译为真实写作字符,为此,Google利用多层递归神经网络来处理曲线串行,并针对每个曲线搜索所有可能字符的机率分布,再将该机率分布输出成矩阵。
在研究的过程中,Google尝试过多种不同种类的递归神经网络,最后选择双向版本的准递归神经网络(quasi-recurrent neural networks),准递归神经网络能够在卷积层和递归层之间交替,提供有效的预测能力,同时也能够维持相对较少的权重数量,权重数量会直接影响模型的大小,模型越小性能就越好。
此外,为了提供最佳的用户体验,模型不但要准确也要快速,因此,Google将在TensorFlow训练好的模型转换成移动设备版的TensorFlow Lite模型,在模型训练的过程中量化所有权重,同时,TensorFlow Lite针对二进制进行优化的特型,能够减少APK的大小。