基于多任务BiLSTM的配送人员活动识别
2022-02-03蓝雯飞
徐 盈,蓝雯飞,田 鹏
(中南民族大学计算机科学学院,武汉 430074)
0 引言
当前我国现代物流快速发展,高科技含量的信息技术与设备被不断引入[1],互联网技术的重点还是针对线上产品和系统研发[2],但配送人员作为物流行业中最基础且最重要的一环却被大多数人忽略。针对配送人员在配送过程中的行为活动合理分析可以促进薪酬合理分配,从而提升整个物流环节效率。
随着基于传感器设备[3]的人体活动识别的实验研究越来越多,人体活动识别的应用[4]也越来越广泛。可穿戴式人体传感器的可扩展性和可用性,使人体活动识别的数据采集[5]更加有效和可行,也使数据处理更加简单和可操作。基于视频记录形式的人类活动识别[6-8]逐渐被传感器记录数据所取代。早期的研究大多基于传统的机器学习[9-11]方法实现活动分类,机器方法使用手工制作的统计特征来识别基于传感器数据的活动,这需要领域专家来获取最相关的手工制作特征集。近年来深度学习技术飞速发展,深度学习模型可以从原始的传感器数据中自动提取人类活动的抽象特征,有利于准确分类活动,不同的卷积神经网络(CNN)[12-13]被设计用于活动识别。LSTM(long-short term memory)网络是循环神经网络的变体,最早由Hochreiter等[14]在1997 年提出。与传统算法不同,LSTM能够捕捉数据在时间维度上的关系,LSTM 及相关算法[15-16]也被应用于人类活动识别中。与活动分类相比,对配送人员的能量消耗进行分类也是一项相对较困难的任务[17-19],因为传统方法需要昂贵的技术,且用固定的设备测量。这种测量方法在日常生活中并不实用。
为了解决以上问题,本文提出了一种利用可穿戴传感器数据进行活动类型分类和强度估计的多任务双向长短时记忆(Bi-LSTM)模型。与多个模型相比,单一模型的主要优点是:可以利用该单一模型同时获得来自传感器的同一时间序列数据的活动和强度特征;对于移动和可穿戴平台,单个模型可以减少任务的执行时间和功耗,以识别活动类型和测量强度。
1 数据集组成
1.1 数据采集
本实验的数据集来自顺丰快递公司的运动状态识别测试数据,共有25 名配送人员参与本实验。25 名参与者分为五种体型:正常、高、矮、胖和瘦,参与者的情况详情见表1,活动行为说明见表2。参与者将传感器戴在手腕上,进行六种不同形式的锻炼,站、坐、走、跑、上下楼梯,收集参与者在运动过程中的三轴加速度和三轴角速度,信号数据采样频率为25 Hz。
表1 数据集参与者的情况
表2 活动行为说明
1.2 能量消耗等级划分
在现实生活中,人们做日常的活动如走路、跑步时手臂都会自然地挥动。波峰法[20]通过分析横向加速度传感器的数值,将数据波动(波峰)作为一次运动,并根据一段时间内的运动次数对运动进行评估。由波峰法[20]可知,传感器佩戴在手腕上位于身体的水平方向,以加速度传感器的x值为检测数据,然后求检测数据每两点之间斜率,在波峰的左侧,斜率大于0;在波峰的右侧,斜率小于0,当斜率从正变为负时,则为一个波峰,并视为一次动作。实验通过统计前进方向的加速度数据,减少垂直方向的加速度数据的影响。在单位时间内,动作次数越多,则相对应的运动强度等级越高。站立和坐着两个活动为静止活动,加速度传感器的x值不呈规律性的波动,只是有一些噪声,故视为同一等级,能量消耗等级为一级。
如图1所示,横坐标为时间节点,纵坐标为加速度传感器在水平方向上的数值。在相同的时间(100 个时间节点)内,步行的动作次数最少,故能量消耗等级为二级。其次是跑步,故跑步动作所消耗的能量等级为三级。上、下楼梯的动作次数最多,由于上楼梯和下楼梯一般会一起进行,故也视为同一等级,能量消耗等级为四级,能量消耗分级见表3。
图1 四种不同运动的水平加速度
表3 能量消耗等级
2 算法设计
2.1 多任务模型构建
为同时实现对配送人员的活动识别和能量消耗分级,本文设计了一个基于BiLSTM 深度神经网络的多任务模型,模型结构如图2所示,主要由四部分组成。
图2 多任务模型架构
(1)输入层:接收三轴加速传感器和三轴角速度传感器数据。对数据进行归一化处理,并将数据处理成包含2 s 非重叠窗口的三维特征向量(时间步长×样本数量×特征数量)。
(2)共享BiLSTM层:共享BiLSTM层对数据进行一系列的线性或非线性变换,使得模型能够学习到时间节点前后双向的特征。这些特征在模型的两个不同分支之间共享,并以一定的Drop⁃out率反馈给每个分支,以调节模型学习。
(3)活动分类分支:在图2 的顶部,通过共享的BiLSTM 层学习到的特征,连接到一个完全连接的输出层,并使用Softmax 获得类别概率,输出配送人员的活动分类结果。
(4)能量分级分支:在图2 的底部,共享的BiLSTM 层连接到另一个完全连接的层,以一定的Dropout率反馈到下一个输出层,根据Softmax获得类别概率,输出配送人员的能量分级结果。
2.2 双向长短期记忆层
为了更好地学习到传感器数据的时序特征,本文模型选择双向长短期记忆层(BiLSTM)作为特征提取器,提取配送人员活动过程中的时序特征。
LSTM 内部结构图如图3 所示。输入门、遗忘门和输出门组成LSTM 网络,遗忘门、输入门和输出门分别决定从细胞中遗忘哪些信息、添加新的信息到细胞中以及最终的输出。
图3 LSTM内部结构
在t时刻,神经元各部分运算如下:
在上式中,ht-1为上一时刻隐藏状态的输出,xt为当前时刻的输入,遗忘门、输入门、候选单元和输出门的权值向量依次为Wf、Wi、Wg、Wo,遗忘门、输入门、候选单元和输出门的偏置项依次分别为bf、bi、bg、bo,⊙为Hadamard 乘积(向量的元素相乘)。
双向LSTM 的改进在于,当前输出不仅与之前的信息有关,还与后续信息有关。双向长短时记忆网络(BiLSTM)是LSTM 网络的改进,它由一个前向LSTM 层和一个后向LSTM 层构成,如图4所示。
图4 双向LSTM网络结构
在t时刻,BiLSTM层输出yt的表达式为
相较于LSTM,BiLSTM 可以实现对传感器数据的时序特征的双向特征学习,同时学习到活动过程中传感器的内部特征,能够更好学习活动识别和能量分级时序数据特征之间的相关性,从而提升准确率。
2.3 模型训练
本文提出的多任务模型是通过共享多任务网络的BiLSTM 特征来联合训练活动分类和能量消耗等级的。活动分类和能量消耗网络的部分都有单独的分支,它们共享由BiLSTM 层提取的相同特征,以预测每种类型的输出。由于两个任务都是分类任务,故我们将BiLSTM 层输出的K 维特征向量通过两个不同的全连接层连向两个不同的输出。两个分类的损失函数都是由Keras库中提供的分类交叉熵损失函数确定的。
损失函数计算了真实值yi和预测值之间的误差。损失函数的值越小,表示模型预测的结果越准确。为了改善模型可能出现的过拟合现象,引入了随机丢弃部分神经元结点方法(Dropout方法),避免训练得到的模型过于复杂。
3 实验与分析
本实验使用深度学习框架搭建了基于多任务双向LSTM 的人类活动识别和能量消耗模型,并使用实验数据集得出模型的精确度。实验在macOS Big Sur11.5.2 操作系统完成,代码运行环境为Python 3.7,计算机处理器为1.8 GHz 双核Intel Core i5,内存为8 GB。
实验首先通过训练数据集的一个子集,即选取测试人员N1 数据进行训练来判断BiLSTM层的记忆细胞数量对结果的影响,并找出最佳记忆细胞数。测试人员N1 在不同参数下的准确率和F1 值见表4。精准率、召回率和F1 值的计算分别公式为
表4 测试人员N1在不同参数下的准确率和F1值
其中,TP为预测答案正确的样本数量,FP为错将其他类预测为本类的样本数量,FN为本类标签预测为其他类标的样本数量。
如表4所示,分类任务中最不成功的模型是细胞数量为16 的BiLSTM 网络,因为它无法捕获区分特征,而对于细胞数量为64 的BiLSTM网络,因为它变得相对复杂,无法使用当前数据集进行训练。最成功的模型是通过细胞数量为16 的BiLSTM 网络层获得的,因为不论是对于活动类型任务还是能量消耗任务,它在训练和测试集中都达到了最高的精度。故设置模型BiLSTM 网络层的细胞数量为48,批处理大小为128,训练迭代次数为100,初始学习率设置为0.001,学习率下降因子设置为0.1。
3.1 多任务模型
多任务CNN、多任务LSTM 模型和多任务BiLSTM 模型通过训练集进行训练,三个模型训练过程中两个不同任务的准确率和损失值曲线如图5所示,模型训练过程的活动识别和能量消耗分级准确率曲线分别如图5(a)、5(b)所示,横坐标为迭代次数,纵坐标分别为人体活动的识别准确率和能量分级的分级准确率。模型训练过程的活动识别和能量消耗分级的损失值曲线分别如图5(c)、5(d)所示。横坐标为迭代次数,纵坐标分别为训练过程中活动识别和能量分级的损失值。
从图5(a)和5(b)中可以看出,多任务BiL⁃STM 模型活动分类准确率达到稳定状态所需时间最短,而多任务LSTM 和多任务CNN 的准确率达到稳定状态需花较长时间,且随着迭代次数增加,多任务BiLSTM 模型的分类准确率稳步上升为三个模型中的最高值。
从图5(c)和5(d)中可以看出,多任务BiL⁃STM 以最短的时间使训练集损失函数值达到接近0的稳定状态,且随着迭代次数增加,多任务BiLSTM 模型的损失值稳步降低到三个模型中的最小值。
图5 多任务模型训练过程性能曲线
表5 所示多任务CNN、多任务LSTM 和多任务BiLSTM 模型的性能对比,无论是在活动分类还是能量分级任务中,多任务BiLSTM 的表现都是最好的。
表5 多任务LSTM模型、多任务CNN、多任务BiLSTM模型性能对比
4 结语
本文通过可穿戴传感器设备对配送人员的日常活动进行记录和跟踪,且提出了一个多任务模型对配送人员进行活动分类和能量消耗分级。经实验,多任务BiLSTM 模型的分类结果准确,对能量消耗等级的划分也合理。在未来的工作中,我们计划利用受试者相关的信息改进模型,以实现更高的活动性分类和能量消耗分级精度,从而改进现有的配送酬劳分配方式。