马 仑,刘 鑫,赵 斌,王瑞平,廖桂生,张亚静
(1.长安大学 信息工程学院,陕西 西安 710064;2.西安电子科技大学 雷达信号处理国家重点实验室,陕西 西安 710071)
随着可穿戴设备的高速发展与普及,基于可穿戴传感器采集数据对人类行为进行识别(Human Activity Recognition,HAR)展现出了巨大的研究价值[1]。具体来说,在不同身体部位佩戴多个可穿戴传感器来感知行为信息,对采集到的数据进行预处理、特征提取及分类识别的数据处理框架。基于可穿戴传感数据的HAR凭借其独有的灵活性高、适应性强等特点,在医疗、健康监测、军事、安全应用等众多领域得到了更广泛的研究与应用[2]。另一方面,相比于普通人群,在临床上被诊断为生理和心理层面有残疾的(如自闭症、抽搐等)及有特殊需要的人群,所表现出的障碍行为(自伤行为、破坏性行为和攻击性等)的智能识别还鲜有研究报道。
笔者致力于探索利用可穿戴设备传感器结合先进的人工智能技术对障碍人群的问题行为进行识别的数据处理方法。根据障碍行为的运动学特性(主要针对撞墙、打自己的头部和抽搐等3种自伤行为,打他人1种伤害他人行为对比走路1种正常行为),将MPU9250九轴传感器分别佩戴在测试者的胸部周围,手腕和脚踝采集行为数据。行为识别的关键在于特征提取,传统机器学习方法过于依赖运动学专业领域知识,且提取特征需花费大量时间和精力。近年来,基于深度学习的方式逐渐受到更多的关注。其实验步骤由5部分构成,分别是数据采集,数据预处理,数据滑窗,特征提取和行为分类识别[1-2],其中,数据处理和特征提取是笔者研究的重点。
针对特征提取步骤,文献[3]采用单头网络结构,首先通过长短时记忆网络(Long Short-Term Memory,LSTM)提取序列时间特征,再通过卷积神经网络(Convolutional Neural Networks,CNN)进行特征提取,在3种数据集(UCI-HAR,WISDM,OPPORTUNITY)上均达到较高的识别率;文献[4]采用多头网络结构,将传感器数据分别通过3个子网络提取特征,其中子网络均需通过卷积神经网络层,再通过双向长短时记忆网络(Bidirectional Long Short-Term Memory,BiLSTM)提取序列前后时间信息,在两种数据集(WISDM,MHEALTH)上,该模型展现出良好的性能;文献[5]针对行为识别中存在的弱监督问题,利用孪生网络进行特征提取,并通过均方误差损失函数(Mean Squared Error,MSE)对比特征之间的相似度,在3种数据集(Daphnet Gait,WISDM,SBHAR)上验证了孪生网络在行为识别的弱监督领域中具有有效性,其中孪生网络具有两个子网络且子网络之间共享权值。孪生网络最早由BROMLEY等于1993年提出[6],由于它具有度量输入信号之间相似性及关联性的特点而广泛应用于人脸识别、语义相似度匹配等领域。另一方面,单头网络首先需对多传感器数据进行融合,之后通过网络提取特征,而数据级融合增大处理数据量,实时性差[7],且不同数据经融合后输入神经网络会被映射到一个特征空间,使得多传感器数据处理等同于单个传感器数据处理,致使传感器之间的关联性被忽略;传统多头网络由于子网络之间不共享权值,因此各子网络的结构、超参数无需一致,相对于孪生网络,在不共享权值的情况下,考虑到每个子网络分别提取特征会增大训练参数,不便于网络在计算能力有限的平台部署。
考虑到不同部位佩戴的传感器为同质传感器,提取特定行为所采用的传感器之间存在较强的相关性,因此笔者借鉴孪生网络权值共享[8]的基本思路,即由3种传感器数据输入相同的子网络中进行特征提取,之后进行特征融合。相对于单头网络,传感器之间的信息能够相互关联,相对于传统多头网络,可有效降低训练参数。本实验是单标签多分类任务,标签不存在缺失现象,最后通过softmax分类器进行分类。针对优化器的选取问题,正常行为识别领域普遍采用Adam优化器来更新网络参数的方式,而障碍行为识别目前鲜有研究,因此采用AdamW优化器与Adam优化器进行对比分析,以此来选取该领域更为合适的优化器。另外,考虑到了可穿戴设备传感器的采集数据缺失问题,即通过数据预处理对缺失数据进行均衡。最后,鉴于文献[3]和[4]的网络在多种数据集上的出色表现,将采用其作为对比实验。
综上所述,笔者主要围绕以下方面展开研究:① 针对障碍行为识别进行参考性实验;② 提出多头-连体神经网络,将传感器的关联性通过网络来描述,并对比3种网络证明障碍行为识别在监督式学习中具有有效性;③ 引入AdamW优化器,解决行为识别领域中常用的Adam优化器所存在L2正则化效果不理想的问题。
针对传统行为识别融合多传感器采集数据过程中,单头网络结构在数据级融合数据量大,实时性差且传感器之间的关联性被忽略,多头网络结构每个子网络分别提取特征使训练参数增大这一问题,笔者提出多头-连体神经网络,网络构架如图1所示。考虑到传感器数目与网络构架的内在联系,即3种传感器之间的关联特性需要通过神经网络来描述,该架构首先采用特征级融合,使用3种子网络分别处理不同部位的传感器数据。进一步,由文献[9]可知,深度、卷积、递归模型对于不同类型数据集的表现不同,其中,卷积模式更适合处理持续时间长且具有类周期性的动作。如上所述,障碍人士的实际行为具有长期重复性,如打头,打人等行为需通过发力部位的反复运动来完成,抽搐依赖躯体的小幅度周期性运动,另一方面,卷积网络具有平移不变性,有利于捕捉行为的重复特性,因此图1中每个子网络采用卷积模式提取深层特征。最后,针对传感器之间存在内在关联性这一特点,参考传统孪生网络,3个子网络需要同质构架来确保假设空间的一致性。每个子网络由3层卷积层提取数据的非线性特征,再通过池化操作对每次提取的特征进行降维,并加入Dropout层防止过拟合,最后,将子网络处理结果融合并通过全连接层进行分类识别。
如上所述,图1所示网络具有两类权值共享:在子网络层面,多传感器数据需通过卷积模式提取数据特征,由于每个卷积核需对数据样本沿时间轴进行特征提取构成神经元,因此每份数据样本共享卷积核权重值,其次,卷积层需要通过多卷积核提取数据的不同特征,因此这种共享权重值的方式将会多次进行。由于卷积层具有权值共享的特点,神经元之间采用局部连接的方式,在一定程度上减少了网络训练参数;同时,由于行为的进行依赖于身体各部位之间的协同,反映到传感器层面,指不同传感器之间的关联性,反映到网络架构层面,指输入信号的关联性由每个子网络构架来度量,即在子网络架构相同的前提下,需保证子网络之间的权值一致,意味着子网络输入与输出之间的映射方式是一致的。网络构架层面的权值共享能够进一步减少网络参数,降低模型的复杂度。
1.2.1 贝叶斯优化
基于图1所示神经网络结构,需要对如表1所示的10个超参数进行调参。首先,鉴于所调参数数目较多,不同超参数组合之间存在相关性;其次,神经网络的假设空间无法由具体函数来表征,因此采用贝叶斯优化调参[10]。贝叶斯优化首先需要初始化超参数,通过超参数来训练神经网络,同时以测试集损失作为超参数的评估指标,并构建关于超参数的高斯模型来对神经网络的代价损失函数建模。以增益期望(Expected Improvement,EI)在超参数搜索空间中找寻新的超参数,并再次训练神经网络。多次重复这个过程直到贝叶斯优化器修正好高斯模型。工作流程如图2所示。通过修正高斯模型10次,贝叶斯优化后得到每个超参数取值结果如表1所示。
表1 超参数设定
1.2.2 Adam优化器与AdamW优化器对比
深度学习领域存在诸多优化器,不同优化器均需要更新网络参数,使之逼近最优解,从而使代价损失函数最小化。其中Adam是目前较为普遍使用的优化器,Adam优化器使用动量作为参数的更新方向,而且可以自适应调整学习率,虽然Adam优化器收敛速度快,但其存在L2正则化效果不理想以及过拟合的问题。而AdamW优化器成功引入L2正则化,在一定程度上减少了过拟合现象。选用AdamW优化器[11],并与Adam优化器进行对比,结果如图3所示。
图3(a)是验证集损失对比,图3(b)是验证集准确率对比。Adam优化器损失值在5个训练迭代(epochs)内降到0.2以下,但在随后的30个epochs中反弹至0.2到0.4之间,在接下来的40到80个epochs中,损失值总体在0.3到0.7之间。随着训练次数的增大,损失值总体呈现增大的趋势。而AdamW优化器,在5个epoch内降到0.2以下,随着训练次数的增大,损失值逐渐稳定在0.2之间。分别对两种优化器下的网络训练10次,得到测试集准确率对比如图4所示。综合验证集和测试集的表现,笔者采用AdamW优化器进行后续研究。
基于python3.7编写代码,在系统为Windows 64位,CPU为i5-10300H的计算机上执行代码。
文献[12]在实验者的不同部位(臀部,手腕,手臂,脚踝,腿部)放置5个加速度传感器,来感知实验者的日常行为,通过特征提取及分类器识别。结果表明,引入多个传感器有助于行为识别,但考虑到实际情况,采样过多传感器会对受试者造成不便。文献[13]将两个MPU6050传感器分别放置在实验者的手腕和脚踝处,来感知10项日常活动及11项体育活动,通过特征提取及分类器识别,日常活动识别率达到约98.23%,体育活动的识别率达到约99.55%,说明传感器位置布设和优化的重要性和可行性。
参考上述文献,同时考虑到如引言中所述,针对5种行为(撞墙、打自己的头部和抽搐等3种自伤行为,打他人1种伤害他人行为对比走路1种正常行为)的运动学特征,即发力部位以及动作发生主要区域,采用3个MPU9250传感器[14]分别布设于胸部(撞墙与抽搐的主要动作区域)、腕部(打人与击打自己头部的主要发力部位)和踝部(走路以及抽搐的主要动作区域),如图1所示。另一方面,各个行为的进行需协同不同身体部位[15],比如打人,不仅需要手臂和腿部,躯体的平衡也需要协调,因此,多个传感器之间具有明显的关联性。笔者提出的多头-连体神经网络正是利用此关联性将3个传感器数据输入相同的子网络中进行特征提取,之后进行特征融合,在大幅减少训练参数的基础上提高分类准确率。
文中数据录取于长安大学公共实验教室,根据不同行为的频率差异,如抽搐、打人相对于走路、撞墙更快,设定传感器采样频率为20 Hz,每个动作均采集10 s。所提取每个传感器数据有9类自由度,分别是三轴加速度(x-acceleration,y-acceleration,z-acceleration),三轴磁强针(x-magnetometer,y-magnetometer,z-magnetometer),三轴陀螺仪(x-gyroscope,y-gyroscope,z-gyroscope)。不同类型的数据相差较大,需进行预处理。预处理后的数据通过滑窗将数据分割,笔者采用窗口大小为80,为保证同一动作滑窗时不会间断,采用重复滑窗为50%。
表2 传感器数据量
文中数据集来自36位志愿者,年龄在18~38岁之间,每个志愿者分别重复5种行为3次。理想情况下,依据传感器采样频率为20 Hz以及动作采集时长为10 s,得到每种行为每次采集数据点是200个,每个人的每种行为有600(200×3)个数据点,总计每种行为21 600个数据点。实际数据量统计如表2所示。
2.3.1 数据均衡
从表2可以看出3种传感器数据均存在缺失现象(数据记录过程中的人为失误及数据处理管道中的软件bug)。其中,手腕位置和胸部的传感器均缺少一次走路数据,脚踝位置的传感器缺失一次撞墙数据和抽搐数据,3种不同位置的数据缺失将对神经网络的特征融合以及分类识别造成影响。由于缺失数据所占比例较小,采取上采样方式进行数据均衡,合成少数类过采样技术(Synthetic Minority Oversampling TEchnique,SMOTE)未能考虑非缺失数据的分布情况,仅对缺失数据进行扩充[16],存在一定的盲目性,因此文中采取BorderlineSMOTE1算法[17]进行数据均衡,BorderlineSMOTE1算法将缺失数据依照位置分布划分成3种类型:danger集,safe集,noise集,其中,noise集的最近邻数据均为多数数据;safe集的最近邻数据超过一半为少数数据;danger集的最近邻数据超过一半为多数数据,只选取danger集数据进行上采样。采样公式如下:
hij=fi+rand(0,1)(fi-fij) ,
(1)
其中,fij是danger集数据fi的最近邻,通过BorderlineSMOTE1得到的3种传感器数据中,每种行为均有21 600 份数据点,将3种数据集中,后8人作为测试集,前28人中的80%作为训练集,20%作为验证集。前24人数据通过50%的重叠进行滑窗,为保证测试集数据不过拟合,只对后8人数据进行滑窗,不经过重叠操作,得到训练样本有1 343份,验证样本有336份,测试样本有299份。
2.3.2 数据标准化
为更好地分析数据分布和大小,需对传感器数据进行可视化。由于篇幅原因,笔者节选每种传感器数据的加速度数据(x-acceleration),陀螺仪(x-gyroscope),磁强针(x-magnetometer)数据,可视化结果如图5所示。
由图5可以看出,陀螺仪(x-gyroscope)数值较小,磁强针(x-magnetometer)数值较大,且数据呈现高斯分布,故采用标准化处理数据集[18]。求出训练集数据的均值μij和方差σij。根据如下公式处理数据集:
(2)
其中i=1,2,3,是传感器个数;j=1,2,…,9,是每类传感器自由度数目。
标准化和非标准化后模型训练10次得到的结果对比见图6,可知标准化处理对网络准确率影响比较大。
为证实多头-连体网络的有效性,将其与基线网络及文献[3]的单头网路和文献[4]的传统多头网络进行对比。基线网络是单头网络,采用多头-连体网络的子网络结构,文献[3]的网络架构由2个LSTM层,2个CNN层,1个最大池化层 (maxpooling),1个全局池化层(Global_Average_Pooling,GAP),1个批标准化(Batch Normalization,BN),1个Dense层组成。文献[4]提出MCBLSTM的网络构架,笔者引用该模型,为与多头-连体网络对比,采取与多头-连体网络相同的数据处理思路,即3种传感器数据分别输入子网络进行特征提取,进而证明这种特征级融合对行为识别具有有效性,MCBLSTM的3个子网络分别由3个CNN提取特征,经最大池化降维,融合数据特征后由BiLSTM提取特征前后信息。模型训练参数量如表3所示。
表3 4种模型的训练参数
基线网络总训练参数比多头-连体网络多出约28.59%,文献[3]所提出的模型总训练参数比多头-连体网络少约14.49%,文献[4]所提出的模型总训练参数比多头-连体网络多出约92.22%。4种模型在验证集上的表现如图7所示。
从图7可以看出,笔者提出模型的验证集损失基本稳定在0.2左右,其余模型均在0.2以上。在验证集准确率上,笔者提出的模型相比其余模型表现更好。
根据测试集在4种模型上的表现来评估网络泛化能力,得到4种模型的混淆矩阵,如图8所示。
从图8可以看出,前2种单头网络均未能很好的识别走路动作,基线网络走路的召回率约为67.7%,约有28.1%被误识为打头,文献[3]的网络走路的召回率约为83.3%,约有12.5%被误识为打头,相对基线网络提高了约15.6%,但走路与打头之间的混淆问题依旧存在。文献[4]和笔者提出的网络很好地解决了这一问题,但相对笔者提出的网络,文献[3]的网络总训练参数过大,导致模型复杂度较高,不便于网络实际应用。4种模型的行为识别f1-score和准确率如表4所示。
表4 4种模型的行为识别f1-score和准确率 %
由表4可以看出,两种单头网络的走路和打头的f1-score均比较低,笔者提出的网络很好的解决了这一问题,在5种行为上的f1-score均在0.920以上,网络准确率约达到96.0%,比两种单头网络分别提高了约6.1%和8.8%,比文献[4]的网络提高了约2.4%,说明笔者提出的算法对5种障碍行为的识别具有有效性。
笔者提出一种基于权值共享的多头-连体神经网络,通过探讨数据缺失、标准化、网络超参数和优化器的选择来提高识别准确率。实验结果表明,相对单头网络,笔者提出的模型明显降低走路和打头的混淆程度;相对传统多头网络,笔者提出的模型明显降低了网络训练参数,并在5种行为的f1-score上取得了良好的表现;笔者提出的网络准确率均高于其余网络,证明文中模型采用权值共享的方法可以降低行为之间的误识程度,减少网络训练参数并提高准确率,因此笔者提出的模型是有意义的。
目前,由于障碍人士的行为具有明显的重复性,在一定程度上限制了网络模式的选择。下一步将着重采集障碍人士具有非周期特性的行为数据,并对现有网络的结构进行调整,如加入循环神经网络或引入注意力机制,以期进一步完善障碍人士的行为识别。