b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

图像识别 神经网络 输入法引擎 AI 化已成为输入法产品发展的趋势。[好网角文章(4)

电脑杂谈  发布时间:2018-02-17 01:56:23  来源:网络整理

深度神经网络输入法引擎的那些坑

从理论上来讲,LSTM 可以完美解决 N-gram 语言模型的问题:不仅能够充分利用词序列信息进行预测,还可以准确预测语料数据集中未出现的单词序列。但是,在实际利用 LSTM 技术实现在手机上可以准确流畅运行的输入法引擎时,在云端和客户端都存在一些坑需要解决。

在云端,有两个问题需要重点解决:

充分利用词序列和键码序列信息。如前所述,在输入法引擎的预测过程中,LSTM 的输入包含词序列和键码序列两类不同的序列信息,需要设计一个完备的 LSTM 网络可以充分利用这两类信息。对此,我们经过若干实验,最终设计了图 3 所示的两阶段网络结构。在第一个阶段,词序列信息被充分利用,然后将最后一个词对应隐层的输出作为下一个阶段的输入,并和键码序列一起来进行计算,最后通过 Softmax 计算来生成最终结果。同时,在两阶段间加入「Start Flag」,以区隔词序列和键码序列。

图 3 词序列 / 键码序列混合

高质量训练数据的生成:在训练 LSTM 语言模型时,训练语料的质量和覆盖度是关键因素。从质量角度来讲,必须确保其中没有乱码、其他语言以及过短的句子等数据。从覆盖度角度来讲,一方面要确保训练语料的规模,使其能够覆盖语言中的大部分词汇,并足以支持语言模型的统计有效性,一般来讲训练语料的量级应该在千万或者亿;覆盖度的另一个角度为文本类型,需要确保训练语料中文本类型 (比如新闻、聊天、搜索等) 的分布同目标应用场景一致,对于手机输入法来讲,日常聊天类型的数据应该占足够大的比例;覆盖度的第三个维度为时间维度,需要确保训练语料可以覆盖对应国家 / 语言固定时间周期 (通常为年) 中各个时间段的数据,尤其是大型节日的数据。

在客户端,性能和内存是必须解决的关键问题。一个优秀的输入法引擎,在手机端运行时,需要始终稳定地保持低内存占用,确保在 Android Oreo (Go edition) 系统上也可以稳定运行,且保持良好的性能 (每次按键响应时间小于 60ms)。而 LSTM 原始模型通常较大 (例如美式英语的模型超过 1G),在手机端运行时响应时间也远超 1s,需进行大幅优化。可以利用稀疏表示与学习的技术,来压缩图 3 LSTM 网络中的 word/ch embedding 矩阵及输出端 softmax 向量矩阵,同时基于 Kmeans 聚类对模型参数进行自适应量化学习,最终可以将超过 1G 的模型量化压缩到小于 5M。性能优化则意味着需要控制手机端的计算量,需要在保证效果的前提下优化模型结构,减少不必要的层数和神经元;同时,可基于 TensorFlow Lite (而非 TensorFlow Mobile) 进行手机端计算模块的开发,大幅提升性能和内存占用,唯一的成本是需要自己实现一些必备的 operators。我们采用该方案可以将运行时内存占用控制在 25M 以内,且响应时间保持在 20ms。图 4 是 TensorFlow Mobile 和 TensorFlow Lite 在相同 benchmark 上的对比数据。

图 4 TensorFlow Mobile 和 TensorFlow Lite 在相同 Benchmark 上的对比数据

python车牌识别_matlab树叶识别_图像识别 神经网络

基于以上的云端建模和客户端预测技术,我们完成了基于深度神经网络 (LSTM) 的输入法引擎方案的整体部署,并在大量语言上,同基于 N-gram 的语言模型进行了对比测试。在对比测试中,我们关注的关键指标为输入效率 (Input Efficiency):

输入效率 = # 输入的文字长度 / # 完成文字输入所需的按键次数


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-81276-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...