对于低重要度的特征,最终做了删除,从而降低模型大小。例如我们发现方位角的重要度在实际模型训练中不如角变量。推测方位角本身的不连续性(0 = 2pi)可能对模型训练是一种干扰。
对于异常值,做了基本的数据清洗,如无效的速度值,无效的方位角;对于不足的GPS序列长度,用0进行填充(但需要额外注意起点属性)等。
3.4.3. 模型选择、训练与效果
DNN:只需要相对简单的算法实现,引入较小的模型库。然而GPS轨迹数据具有典型的时间序列特征,在4万样本下,应用利用DNN模型调参优化后,训练结果准确率最高达到91%。Bad case中存在大量时间不敏感的情形,最典型的情形就是——轨迹由差转优时,判定结果未能及时转变为高质量。
CNN:这里可以尝试两种实现方式,一种是通过生成bitmap进行识别,然而GPS跨度不确定性较高,方向性不易表达,在实现上具有一定困难。第二种将序列化数据转化为二维数组,C模型能够识别出前后时间戳之间的变化特征,但并不能保留更长的时间的变化特征。最终训练出的准确率在93%左右。另外,CNN模型应用在移动端有一个明显的缺点,即模型尺寸一般较大。
LSTM(长短期记忆网络):一种特殊的RNN模型,相比前述模型对轨迹质量序列判定有明显优势。在轨迹质量由好转差,或由差转好的识别上具有非常高的灵敏度,使用128个unit能够达到97%的准确率。缺点是LSTM模型训练速度相对较慢,算法库实现相对复杂。
最终我们选择了使用LSTM模型。使用LSTM的训练结果,准确率大幅提升。在剩余3%的错误样例中,很多轨迹在形态上表现出较高的真实性,但却无法同路网进行匹配。
理论上通过引入路网属性能够上带来准确率的进一步提升,然而这种数据的耦合脱离了轨迹质量判定的初衷——服务于偏航引擎专家系统,而非直接用于偏航判定。对此我们将会在最后进行更详细的介绍。
3.4.4. 移动端性能优化
模型推算性能对于移动端尤为重要。偏航场景下,GPS更新频繁,选择在必要的时候进行模型推算能够避免不必要的计算开销。通常我们会计算当前GPS点与规划路线的偏离度,只有偏离度大于阈值时才会进行轨迹质量判定。
▍3.5 基于深度学习的专家系统探索
轨迹质量模型作为偏航判定的重要依据,能够以较小的代价移植到移动端。如果不考虑前端性能及数据限制,我们完全可以定义整个偏航判定问题,训练相应的偏航模型。
然而偏航场景种类繁多,过于复杂,训练出一套通用的偏航模型需要大量的数据,充足的路网信息,和较大的模型存储,这对于移动端而言不太现实。