谷歌在iOS和Android设备的虚拟键盘Gboard中提高了手写识别能力,人工智能系统速度更快,错误比其取代的机器学习模型少20%到40%。这是谷歌人工智能的研究人员所说,他们在今天下午发表的一篇博客文章中描述了他们的工作。
“机器学习的进步促成了新的模型架构和培训方法,允许我们修改我们的初始方法[而且]构建一个单一的......模型,对整个输入进行操作,”高级软件工程师Sandro Feuz和Pedro Gonnet写道。“我们在今年年初在Gboard为所有基于拉丁语脚本的语言推出了这些新模型。”
正如Feuz和Gonnet解释的那样,大多数手写识别器使用触摸点来处理草绘的拉丁字符。绘制的输入表示为笔划序列,并且这些笔划又包括时间戳点的序列。Gboard首先对触摸点坐标进行标准化,以确保它们在具有不同采样率和精度的设备之间保持一致,然后将它们转换为一系列三次Bézier曲线 - 计算机图形中常用的参数曲线。
Feuz和Gonnet说,这些序列的主要优点是它们比输入点的基础序列更紧凑。为此,每条曲线由起点,终点和控制点定义的多项式(变量和系数的表达式)表示。例如,单词“go”可能包含186个这样的点,由字母“G”(和两个控制点)的四个立方Bézier曲线序列和字母“O”的三个曲线表示。
这些序列被输入到经过训练以识别被写入字符的递归神经网络 - 特别是准回归神经网络(QRNN)的双向版本,能够“有效”并行化并因此具有良好预测性能的网络。重要的是,QRNN还保持权重的数量 - 构成网络的数学函数或节点之间的连接强度 - 相对较小,减小了文件大小。
那么AI模型如何理解曲线呢?通过生成列和行矩阵,其中每列对应于一个输入曲线,每行对应于字母表中的字母。网络的输出与基于字符的语言模型相结合,该模型将奖励奖励给语言中常见的字符序列,并对不常见的序列进行处罚。单独地,触摸点序列被转换为对应于单个曲线的较短序列。最后,给定一系列曲线的基于QRNN的识别器吐出一系列字符概率。
Gboard的手写识别堆栈在设备上运行,这是团队通过将识别模型(在Google的TensorFlow机器学习框架中训练)转换为TensorFlow Lite模型而实现的壮举。与完整的TensorFlow实施相比,这使他们不仅可以降低推理时间,还可以减少Gboard的存储空间。“我们将继续推动改进拉丁语言语言识别器,”Feuz和Gonnet写道。“手写团队已经在努力为Gboard中所有支持的手写语言推出新模型。”