CN110020623B - 基于条件变分自编码器的人体活动识别系统及方法 - Google Patents
基于条件变分自编码器的人体活动识别系统及方法 Download PDFInfo
- Publication number
- CN110020623B CN110020623B CN201910268544.9A CN201910268544A CN110020623B CN 110020623 B CN110020623 B CN 110020623B CN 201910268544 A CN201910268544 A CN 201910268544A CN 110020623 B CN110020623 B CN 110020623B
- Authority
- CN
- China
- Prior art keywords
- network
- prior
- batch data
- data
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于条件变分自编码器的人体活动识别系统及方法,该方法包括获取原始时间序列:通过传感器获取采样样本,多个采样样本构成原始时间序列;构建批数据:通过随机序列起始点的数据增强方式构建批数据,得到构造好的传感器批数据X和对应的活动标签批数据Y;训练条件变分自编码器模型:批数据输入到模型中,通过损失函数和反向传播算法训练模型;预测人体活动:将传感器批数据X作为测试数据,输入到训练好的变分自编码器模型中,批数据输入变分自编码器模型得到最终的预测活动标签。本发明以一个采样样本为单位预测其对应的活动标签,具有实时活动识别的能力,能够对同类样本的相关性进行建模,从而提升识别准确率。
Description
技术领域
本发明涉及基于可穿戴设备的人体活动识别,重点关注的是以一个采样样本的预测单位的人体活动识别,尤其涉及一种基于条件变分自编码器的人体活动识别系统及方法。
背景技术
人体活动识别(Human Activity Recognition,HAR),也称为基于可穿戴传感器的活动识别,在这个问题当中,我们需要根据佩戴在人体上的传感器(例如三轴加速度计和心率计)触发的时间序列,识别人当前所处的活动或姿态。活动识别一直是许多应用的基础问题之一,例如摔倒检测,手势识别等。总而言之,人体活动识别在普适计算,智能看护和行为分析等众多领域都扮演着十分重要的角色。
人体活动识别的通用框架一般包括三个环节:(1)数据预处理;(2)特征提取;(3)分类器的训练和活动预测。原始的传感器数据一般是一段很长的时间序列,而为了更好的提取特征,一般会在数据预处理阶段将原始时间序列进行分段。最常见的数据预处理技术是滑动窗口切割的技术,这种技术会通过一个固定长度窗口进行滑动,从而将原始序列分成许多相互之间重叠的子序列,这样的子序列也可以看成一帧或一段。需要注意的是,之后的特征提取全部是在一帧之内进行的,而分类器的活动预测也是以一帧为单位。所以实际上基于滑动窗口切割的人体活动识别呈现的是基于一帧的活动识别方式。特征提取和分类器的学习是两个联系十分紧密的环节,它们的发展可以分成两个阶段:第一个阶段,分类器主要是基于机器学习的方法,因此特征需要通过人工手动构造,常用的特征包括统计特征,例如均值和方差等。需要说明的是,人工特征的构造常常依赖于研究者的领域知识,并且人工特征一般是低语义并且低维的,因此丧失了许多时序信息。第二个阶段,随着深度学习的兴起,卷积神经网络(Convolutional neural network,CNN)等深度模型开始应用于活动识别问题当中。目前主流的方法,包括基于机器学习和基于深度学习的方法,都依赖于滑动窗口切割的预处理方法。然而这种预处理存在一些问题,首先,子序列包含的传感器采样样本不一定都具有相同活动标签,可能子序列包含两种或多种以上活动类别的样本,同时,在实际应用当中,最优的窗口大小的选取也是一个难题。另一方面,尽管卷积神经网络等深度模型已经取得了不错的结果,但仍然存在许多未解决的难题。例如,现有的深度模型并不能显式地对同类采样样本的相关性进行建模,即不能充分挖掘活动的类间相似度。而这一点也阻碍着活动识别准确率的进一步提升。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提供一种基于条件变分自编码器的人体活动识别系统及方法,以一个采样样本为单位预测其对应的活动标签,具有实时活动识别的能力,能够对同类样本的相关性进行建模,从而提升识别准确率。
为了达到上述目的,本发明采用以下技术方案:
本发明提供一种基于条件变分自编码器的人体活动识别方法,包括下述步骤:
S1:获取原始时间序列:通过传感器获取采样样本,多个采样样本构成原始时间序列;
S2:构建批数据:通过随机序列起始点的数据增强方式构建批数据,包括传感器批数据X、对应的活动标签批数据Y;
S3:训练条件变分自编码器模型:构造好的传感器批数据X和对应的活动标签批数据Y输入到条件变分自编码器模型当中,条件变分自编码器采用神经网络的反向传播框架进行训练,通过设定的损失函数和Adam优化算法训练模型,所述损失函数基于交叉熵函数计算得到;
S4:预测人体活动:步骤S2构造的传感器批数据X作为测试数据,输入到步骤S3中训练好的变分自编码器模型中,得到最终的预测活动标签。
作为优选的技术方案,还包括数据预处理步骤,进行填充数据遗漏值和数据标准归一化,所述填充数据遗漏值为:对传感器采集数据中的NaN数据采用数据0填充,所述数据标准归一化为:对传感器采集数据的每个维度进行标准归一化,减去选定维度数据对应的均值,然后再除以选定维度数据对应的标准差。
作为优选的技术方案,步骤S2中构建批数据的具体步骤为:
设定原始时间序列长度为Lmax,批数据的大小设为N,子序列的长度为L,在范围[0,Lmax-L]内随机选取N个点,作为N个子序列的起始点,从原始时间序列上分别截取N个长度为L的子序列,N个子序列构成一次批数据,得到构造好的传感器批数据X、对应的活动标签批数据Y。
作为优选的技术方案,步骤S3所述训练条件变分自编码器模型的具体步骤如下所述:
条件变分自编码器模型包括先验网络,识别网络和生成网络;
先验网络包括三个先验网络全连接层,第一个先验网络全连接层将输入的传感器批数据X映射成隐变量Hprior,另外两个先验网络全连接层将Hprior作为输入,分别输出先验网络对应的高斯隐变量的均值和方差向量,经过重新参数化得到先验网络高斯隐变量Zprior;
识别网络包括三个识别网络全连接层,第一个识别网络全连接层将传感器批数据X和对应的活动标签批数据Y作为输入,对应的活动标签批数据Y先进行One-hot编码,再和传感器批数据X进行张量拼接和维度变换,输入到第一个识别网络全连接层中,输出隐变量Hencode,另外两个识别网络全连接层将Hencode作为输入,分别输出识别网络的高斯隐变量对应的均值和方差向量,经过重新参数化得到识别网络高斯隐变量Zencode;
生成网络包括两个生成网络全连接层,生成网络的输入分别经过两个生成网络全连接层,得到的输出采用softmax函数进行计算,其中Zprior和Zencode分别输入到生成网络中,当Zprior作为生成网络的输入时,生成网络输出活动标签的预测概率Yprior,当Zencode作为生成网络的输入时,生成网络输出活动标签的重构概率Yencode。
作为优选的技术方案,步骤S3所述训练条件变分自编码器模型,损失函数包括预测误差损失函数,和重构误差损失函数:
所述预测误差损失函数采用交叉熵函数进行计算,公式表示为:
所述重构误差损失函数包括两部分,一是先验网络的输出高斯分布和识别网络输出的高斯分布的KL散度损失,二是重构概率的误差损失函数,采用交叉熵函数计算,重构误差损失函数公式表示为:
其中,KL表示KL散度损失,qφ(z|x,y)和pθ(z|x)分别代表先验网络高斯隐变量Zprior和识别网络高斯隐变量Zencode对应的高斯分布;L代表活动标签批数据Y的大小,M代表活动标签的类别个数,yc为指示变量,当c等于第l个样本对应的活动标签时,yc等于1,否则yc等于0,代表第l个样本和第c类活动对应的重构概率Yencode;
最终的损失函数为:
Lossall=αLossencode+(1-α)Lossprior;
其中α是模型的超参,控制两部分损失在训练模型过程中的贡献度,当α为0的时候,损失函数退化为预测误差损失函数,当α为1的时候,损失函数退化为重构误差损失函数。
作为优选的技术方案,步骤S4所述预测人体活动具体步骤为:
构造好的传感器批数据经过条件变分自编码器模型的先验网络,得到的先验网络高斯隐变量Zprior再输入到生成网络中得到预测概率,然后再根据预测概率得到最终的预测活动标签。
作为优选的技术方案,所述重新参数化,根据均值和方差向量得到高斯隐变量,具体步骤为:
将均值和方差向量分别设为μ和σ,对应的维度为N;
从标准正态分布采样得到向量ε,相对应的维度为N,最终高斯隐变量Z为:
Z=μ+σ*ε,其中*指的是向量间逐元素相乘,得到维度为N的向量。
本发明还提供一种基于条件变分自编码器的人体活动识别的系统,包括:
批数据构建模块:原始时间序列随机选取起始点,截取子序列,构建批数据;
条件变分自编码器模型构建模块:条件变分自编码器模型包括先验网络,识别网络和生成网络,识别网络包括三个识别网络全连接层,生成网络包括两个生成网络全连接层;
条件变分自编码器模型训练模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,传感器批数据X和对应的活动标签批数据Y输入到识别网络得到识别网络高斯隐变量Zencode,然后Zprior和Zencode分别输入到生成网络,分别得到预测概率Yprior和重构概率Yencode,最后活动标签批数据Y,预测概率Yprior和重构概率Yencode都输入到损失函数当中计算对应损失;
人体活动预测模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,然后Zprior输入到生成网络得到预测概率Yprior,然后再根据预测概率Yprior得到最终的预测活动标签。
作为优选的技术方案,还包括数据预处理模块,对采集数据填充数据遗漏值,对每个维度进行标准归一化。
本发明与现有技术相比,具有如下优点和有益效果:
(1)现有技术依赖于滑动窗口切割的方式构造训练集,这样有以下两个弊端:模型只能以一帧为单位预测其对应的活动标签,并且构造得到的训练集规模受限于滑动窗口的滑动步长大小。而本发明采用了随机序列起始点的方式构造训练集,一方面能使得模型能够以一个采样样本为预测单位预测其对应的标签,使得模型具有实时活动预测的能力,另一方面,随机序列起始点可以看成是一种数据增强的方式,其使得训练集不再受限于滑动步长,因为能更充分挖掘原始数据的时序信息,从而提高了模型的泛化能力。
(2)本发明采用了基于条件变分自编码器的模型,解决现有技术不能对从属于同一活动的传感器数据的相关性进行建模的问题,这使得发明提出的模型能够更好地挖掘同类数据的相似关系,从而提升了活动识别的准确率。
附图说明
图1为本实施例条件变分自编码器在训练阶段的流程示意图;
图2为本实施例条件变分自编码器在预测阶段的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例活动识别的OPPORTUNITY数据集为例,具体阐述实施方式。
OPPORTUNITY数据集是用于评估活动识别模型效果的数据集,它包括许多不同语义级别的活动识别任务,本实施例选择其中的中级语义的姿态识别具体说明。姿态识别包括17种真实的活动和1中无活动状态无活动状态可以表示人此时并没有采取任何姿态。这17中姿态是人在准备早餐的真实场景中采集得到,因此这些姿态涉及到和厨房一些家具的交互过程。这17种真实姿态如表1所示:
表1姿态名称汇总
本实施例提供一种基于条件变分自编码器的人体活动识别的系统,包括:
批数据构建模块:原始时间序列随机选取起始点,截取子序列,构建批数据;
条件变分自编码器模型构建模块:条件变分自编码器模型包括先验网络,识别网络和生成网络,识别网络包括三个识别网络全连接层,生成网络包括两个生成网络全连接层;
条件变分自编码器模型训练模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,传感器批数据X和对应的活动标签批数据Y输入到识别网络得到识别网络高斯隐变量Zencode,然后Zprior和Zencode分别输入到生成网络,分别得到预测概率Yprior和重构概率Yencode,最后活动标签批数据Y,预测概率Yprior和重构概率Yencode都会输入到损失函数当中计算对应损失;
人体活动预测模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,然后Zprior输入到生成网络得到预测概率Yprior,然后再根据预测概率Yprior得到最终的预测活动标签。
在本实施例中,还包括数据预处理模块,对采集数据填充数据遗漏值,对每个维度进行标准归一化。
本实施例还提供一种基于条件变分自编码器的人体活动识别方法,包括以下步骤:
步骤S1:获取原始时间序列:通过传感器获取采样样本,多个采样样本构成原始时间序列;
步骤S2:批数据构造,通过一种随机序列起始点的数据增强方式构造批数据;
在本实施例中,步骤S2包括以下步骤:
设原始的时间序列的长度为Lmax,批数据的大小为N,子序列的长度为L,也就意味着这批数据中有N个子序列。在每次构造批数据之前,都会先得到N个随机的点,它们的取值在范围[0,Lmax-L]内随机选取,然后将这N个点分别作为N个子序列的起始点,到原始的时间序列上分别截取N个长度为L的子序列,最后,这N个子序列便构成一次批数据。得到的批数据包括传感器批数据X、对应的活动标签批数据Y,传感器序列包含许多的采样样本,而每一个采样样本都有一个对应的活动标签,因此传感器序列和标签序列是一一对应的关系。因此对应的批数据构造方式也是一样的。
需要说明的是,由于输入是一段很长的时间序列,而神经网络的训练数据一般是要构造成批数据(batch data)的形式。即需要首先将时间序列切分成许多子序列,然后将子序列分批的构成批数据。本实施例采用一种随机序列起始点的做法构造批数据。随机序列起始点可以看成是一种数据增强的手段,它能够有效挖掘原始的时间序列的时序相关性,提高训练得到的模型的泛化能力。
本实施例中将批数据的大小设置为64,子序列的长度为128。训练集包括743122个采样样本,也就是说训练集构成的时间序列的长度为743122。按照之前的步骤说明,首先在[0,743122-128]的范围内随机选取64个整数,将其作为64个子序列的起始点。接着在分别以这64个起始点从训练的时间序列上取长度为128的子序列,这样得到的64个子序列就构成了一次批数据,这样得到的批数据看成一个张量,其维度为64x128x77,其中64表示批大小,128表示子序列的长度,77表示每个采样样本的维度(即传感器的数量),采用同样的方式可以得到对应标签的批数据,其中标签数据的维度为64x128,它的数值代表对应采样样本的活动标签。
本实施例实现的是以采样样本为预测单位的人体活动识别,对于一个输入的传感器序列,都会输出一个活动标签序列,其中输入序列和输出序列具有相同的长度;在训练时,由于活动标签是已知的,因此模型的输入批数据实际上包括两个部分:N个传感器子序列构成的批数据及其对应的标签序列构成的批数据;当预测时,标签未知,因此模型的输入只有传感器序列构成的批数据。
步骤S3:将S2中构造好的批数据输入到条件变分自编码器模型当中,然后通过设定的损失函数和Adam优化算法训练模型。
如图1所示,在本实施例中,具体介绍不同模块当中输入的维度变化及各个网络的内部的参数设置,条件变分自编码器模型包括先验网络,识别网络和生成网络这三个主要模块,
在本实施例中,由于先验网络,识别网络和生成网络均只由全连接层组成,全连接层的本质上可以看成是二维矩阵,其中矩阵的数值代表可以学习的参数。设其维度为MxN,而全连接层的作用类似于维度映射,将输入维度为N映射成输出维度M。
在本实施例中,设步骤S2构造好的触感器批数据为X,其对应的活动标签批数据为Y;每个模块的结构和功能如下所述:
先验网络:包括三个全连接层。其中第一个全连接层先将传感器批数据X映射成隐变量Hprior,然后另外两个全连接层将Hprior作为输入,分别输出先验网络对应的高斯隐变量的均值和方差(这里的均值和方差是向量),然后通过重新参数化得到先验网络高斯隐变量Zprior;
在本实施例中,将传感器批数据X映射成隐变量Hprior中的“映射”指的是张量乘法操作,也就是Y=XA,其中X的维度是BxTxC,而Y的维度是BxTxD,而A就是这里提到的全连接层,其对应的维度就是CxD,Y也就是Hprior。
在本实施例中,先验网络的输入数据是维度为64x128x77的传感器批数据,在输入前,首先会将传感器批数据的维度变换为64x9856的二维形式,然后再输入到第一个全连接层中,第一个全连接层的维度是9856x400,因此经过第一个全连接层输出的维度64x400,接着这个输出结果会分别输入到另外两个全连接层当中,这两个全连接层的维度都是400x20,因此这两个全连接层的输出维度都是64x20,这两个全连接层可以看成是先验网络高斯隐变量的均值和方差,接着通过重新参数化得到维度为62x20的先验网络高斯隐变量。
在本实施例中,所述重新参数化指的是根据均值和方差向量,去其对应的正太分布当中采样一个向量,得到的结果就是上述先验网络高斯隐变量Zprior。具体来说,因为已经得到了均值和方差,其都是向量的形式,设为μprior和σprior,其维度为N。然后会生成了一个向量ε,其对应的维度也是N,这个向量的每个数值都是从标准正态分布采样得到的,即而最终Zprior=μprior+σprior*ε,其中*指的是向量间逐元素相乘,得到也是维度为N的向量。
识别网络:同样包括三个全连接层,不同点在于识别网络中的第一个全连接层将传感器批数据X和对应的活动标签批数据Y作为输入,而此时Y会先进行One-hot编码,然后再和传感器批数据X进行张量拼接,然后再进行维度变换,最后一起输入到全连接层当中。最后该层会输出隐变量Hencode,而另外两个全连接层则将Hencode作为输入,分别输出识别网络的高斯隐变量对应的均值和方差(均值和方差同样都是向量),同样通过“重新参数化”得到识别网络高斯隐变量Zencode;
在本实施例中,张量拼接和维度变化均属于张量操作:
张量拼接:张量实际上就是广义上的矩阵,设X和Y的维度为3维,X的维度为BxTxC,设Y的维度为BxTxD,则拼接后得到的结果的维度为BxTx(C+D),直观上理解就是两个张量将最后一维进行拼接,得到一个更大的张量。
维度变换:在本实施例中维度变换指的是将3维的张量变成2维的矩阵,具体来说,上一步的张量拼接的结果的维度为BxTx(C+D),而维度变换将其维度变为Bx(T*(C+D)),也就是2维。
在本实施例中,识别网络输入数据是维度为64x128x77的传感器批数据和64x128对应的活动标签批数据,由于标签数据不适合直接输入模型,所以进行one-hot编码,经过编码后活动标签批数据的维度变为64x128x18,这里的18就代表需要预测的活动数量(17个姿态加一个无活动状态)。由于识别网络输入是传感器批数据和它对应的标签,因此首先会对这两个输入进行张量拼接,然后再进行维度变换。最终输入的维度是64x12160。而对应的第一个全连接层的维度就是12160x400。剩下的两个全连接层的维度和先验网络的一样,因此最终输出的均值和方差的维度也是64x20,同样经过重新参数化得到维度为64x20的识别网络高斯隐变量。
生成网络:要说明的是,图1中为了表示方便将生成网络画成了两个,但实际上模型只有一个生成网络,只是先验网络和识别网络的输出会分别输入到生成网络,两个网络输出的高斯隐变量维度都是64x20。
在本实施例中,生成网络:包括两个全连接层,生成网络的目的有两个:一是对标签进行预测,二是对标签进行重构。而为了达到这两个目的,Zprior和Zencode会各自作为生成网络的输入。需要说明的是,当Zprior作为生成网络的输入的时候,生成网络输出活动标签的预测概率Yprior。而当Zencode作为生成网络的输入的时候,生成网络输出活动标签的重构概率Yencode。
在本实施例中,第一个全连接层的输入是高斯隐变量和输入批数据,因此同样经过张量拼接和维度变换,最终输入的维度是64x9876,而全连接层的维度是9876x400。因此最终该层的输出是64x400。第二个全连接层的输入是第一个全连接层的输出,其对应的维度是400x2304,而输出的原始维度是64x2304,然后再经过维度变换,最终输出的维度是64x128x18,这里的18就等于之前提到的需要预测活动的数目,而这一维度的值可以看成对应活动的概率值,实际上概率值最大的那个活动即为最终预测的活动。需要说明的是,当生成网络的输入来自于先验网络的时候,生成网络的输出可以看成预测的标签。而输入来自识别网络时,输出看成是重构的标签。
在本实施例中,在经过条件变分自编码器模型之后,模型输出重构标签和预测标签,接着这两个输出会和真实标签一起输入到损失函数当中计算最终的损失,损失函数包括两个部分:预测误差和重构误差。
在本实施例中,预测误差的损失可以表示为:
其中L代表活动标签批数据Y的大小,M代表活动标签的类别个数,yc为指示变量,当c等于第l个样本对应的活动标签时,yc等于1,否则yc等于0,代表第l个样本和第c类活动对应的预测概率Yprior;预测误差损失函数可以用交叉熵函数进行计算。
在本实施例中,重构误差计算由两部分构成:一部分是Zprior和Zencode对应的高斯分布计算所得到KL散度损失;其中KL散度衡量的是两个分布之间的相似性,希望先验网络得到的高斯分布能够和识别网络得到的高斯分布尽量一致。另一部分由Zencode得到活动标签的重构概率Yencode预测误差,其中这部分预测误差也能通过交叉熵函数计算所得,因此重构误差的公式为:
其中,KL表示KL散度损失,qφ(z|x,y)和pθ(z|x)分别代表先验网络的高斯隐变量Zprior和识别网络的高斯隐变量Zencode对应的高斯分布;L代表活动标签批数据Y的大小,M代表活动标签的类别个数,yc为指示变量,当c等于第l个样本对应的活动标签时,yc等于1,否则yc等于0,代表第l个样本和第c类活动对应的重构概率Yencode;
在本实施例中,最终的损失由这两部分构成:
Lossall=αLossencode+(1-α)Lossprior;
其中α是模型的超参,用于控制两部分损失在训练模型过程中的贡献度。当α为0的时候,损失函数退化为预测误差,而当α为1的时候,损失函数退化重构误差。
在本实施例中,条件变分自编码器采用神经网络的反向传播框架进行训练,训练采用的优化算法为Adam算法,是一种改进的随机梯度下降算法,能够自适应调节学习率。
步骤S4:用步骤3中训练好的模型预测活动。
如图2所示,在本实施例中,步骤S4具体包括以下步骤:
测试的数据首先会按照步骤S2构造批数据,对应的张量的维度也是64x128x77,然后在输入到步骤S3中训练好的模型当中。具体来说,在测试时,因为测试时活动标签是未知量,所以在测试时批数据只会经过模型的先验网络,得到的先验网络高斯隐变量Zprior再输入到生成网络当中,然后得到最终的预测的活动标签,其维度是64x128x18,其中18代表需要预测活动的数目。最后一个维度的数值实际上代表活动的概率值,实际上预测的标签是在维度为64x128x18的输出基础上,再在最后一维上取数值最大对应的序号。
在本实施例中,还包括数据预处理步骤,进行填充数据遗漏值和数据标准归一化,具体如下所述:
获取不同可穿戴传感器产生的数据,其形式一般为二维的时间序列,其中第一维的维数代表使用的传感器的数目,第二维的维数代表采样样本,采样样本的个数取决于传感器的采样频率和采集时间。一般传感器的采样频率为33hz-100hz左右;考虑到人的活动的持续时间一般在几秒到几十秒之间,所以数据都会统一降采样到33hz;本实施例采用IMU类型的传感器数据,这些传感器总共为77个,也就是说输入的数据为77维。由于OPPORTUNITY数据集的采样频率是33hz,因此不需要进行降采样。
由于环境及传感器稳定性等因素,传感器采集到的数据可能会出现遗漏,从而出现NaN(Not a Number)的数据,对于这种情况,本实施例会用数据0去填充出现NaN的数据;
由于传感器的触发数值可能差异很大,所以要对传感器的数据进行标准归一化,即减去这一维数据对应的均值,然后再除以这一维数据对应的标准差,标准归一化会对每个传感器生成的时间序列都进行一遍;最后再按照主流做法划分训练集和测试集,其中训练集包括743122个采样样本,测试集包括118750个。模型训练时在训练集上进行,预测时在测试集上进行。
为了定量分析模型的性能,本实施例将卷积神经网络和条件变分自编码器的效果进行对比。实施例将平均F1分数作为评价指标,这个评价指标是人体活动识别领域当中常用的衡量准确率的指标,其公式表示为:
其中|c|代表需要预测的活动的数量,在本实施例当中为18;Fm,Pm和Rm分别代表平均F1分数,平均精确率和平均召回率;Precisionc和Recallc分别代表第c类活动对应的精确率和召回率。不同模型比较的实验结果如表2所示:
表2不同模型比较的实验结果
通过上表的实验结果可以看出,本实施例采用的条件变分自编码器效果明显优于基于卷积神经网络的模型,这也从侧面也说明,通过条件变分自编码器对同类活动数据的相关性进行建模,确实能有效提升活动识别的准确率。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (8)
1.一种基于条件变分自编码器的人体活动识别方法,其特征在于,包括下述步骤:
S1:获取原始时间序列:通过传感器获取采样样本,多个采样样本构成原始时间序列;
S2:构建批数据:通过随机序列起始点的数据增强方式构建批数据,包括传感器批数据X、对应的活动标签批数据Y;
S3:训练条件变分自编码器模型:构造好的传感器批数据X和对应的活动标签批数据Y输入到条件变分自编码器模型当中,条件变分自编码器采用神经网络的反向传播框架进行训练,通过设定的损失函数和Adam优化算法训练模型,所述损失函数基于交叉熵函数计算得到;
所述训练条件变分自编码器模型的具体步骤如下所述:
条件变分自编码器模型包括先验网络,识别网络和生成网络;
先验网络包括三个先验网络全连接层,第一个先验网络全连接层将输入的传感器批数据X映射成隐变量Hprior,另外两个先验网络全连接层将Hprior作为输入,分别输出先验网络对应的高斯隐变量的均值和方差向量,经过重新参数化得到先验网络高斯隐变量Zprior;
识别网络包括三个识别网络全连接层,第一个识别网络全连接层将传感器批数据X和对应的活动标签批数据Y作为输入,对应的活动标签批数据Y先进行One-hot编码,再和传感器批数据X进行张量拼接和维度变换,输入到第一个识别网络全连接层中,输出隐变量Hencode,另外两个识别网络全连接层将Hencode作为输入,分别输出识别网络的高斯隐变量对应的均值和方差向量,经过重新参数化得到识别网络高斯隐变量Zencode;
生成网络包括两个生成网络全连接层,生成网络的输入分别经过两个生成网络全连接层,得到的输出采用softmax函数进行计算,其中Zprior和Zencode分别输入到生成网络中,当Zprior作为生成网络的输入时,生成网络输出活动标签的预测概率Yprior,当Zencode作为生成网络的输入时,生成网络输出活动标签的重构概率Yencode;
S4:预测人体活动:步骤S2构造的传感器批数据X作为测试数据,输入到步骤S3中训练好的变分自编码器模型中,得到最终的预测活动标签。
2.根据权利要求1所述的基于条件变分自编码器的人体活动识别方法,其特征在于,还包括数据预处理步骤,进行填充数据遗漏值和数据标准归一化,所述填充数据遗漏值为:对传感器采集数据中的NaN数据采用数据0填充,所述数据标准归一化为:对传感器采集数据的每个维度进行标准归一化,减去选定维度数据对应的均值,然后再除以选定维度数据对应的标准差。
3.根据权利要求2所述的基于条件变分自编码器的人体活动识别方法,其特征在于,步骤S2中构建批数据的具体步骤为:
设定原始时间序列长度为Lmax,批数据的大小设为N,子序列的长度为L,在范围[0,Lmax-L]内随机选取N个点,作为N个子序列的起始点,从原始时间序列上分别截取N个长度为L的子序列,N个子序列构成一次批数据,得到构造好的传感器批数据X、对应的活动标签批数据Y。
4.根据权利要求1所述的基于条件变分自编码器的人体活动识别方法,其特征在于,步骤S3所述训练条件变分自编码器模型,损失函数包括预测误差损失函数,和重构误差损失函数:
所述预测误差损失函数采用交叉熵函数进行计算,公式表示为:
所述重构误差损失函数包括两部分,一是先验网络的输出高斯分布和识别网络输出的高斯分布的KL散度损失,二是重构概率的误差损失函数,采用交叉熵函数计算,重构误差损失函数公式表示为:
其中,KL表示KL散度损失,qφ(z|x,y)和pθ(z|x)分别代表先验网络高斯隐变量Zprior和识别网络高斯隐变量Zencode对应的高斯分布;L代表活动标签批数据Y的大小,M代表活动标签的类别个数,yc为指示变量,当c等于第l个样本对应的活动标签时,yc等于1,否则yc等于0,代表第l个样本和第c类活动对应的重构概率Yencode;
最终的损失函数为:
Lossall=αLossencode+(1-α)Lossprior;
其中α是模型的超参,控制两部分损失在训练模型过程中的贡献度,当α为0的时候,损失函数退化为预测误差损失函数,当α为1的时候,损失函数退化为重构误差损失函数。
5.根据权利要求1所述的基于条件变分自编码器的人体活动识别方法,其特征在于,步骤S4所述预测人体活动具体步骤为:
构造好的传感器批数据经过条件变分自编码器模型的先验网络,得到的先验网络高斯隐变量Zprior再输入到生成网络中得到预测概率,然后再根据预测概率得到最终的预测活动标签。
6.根据权利要求1所述的基于条件变分自编码器的人体活动识别方法,其特征在于,所述重新参数化,根据均值和方差向量得到高斯隐变量,具体步骤为:
将均值和方差向量分别设为μ和σ,对应的维度为N;
从标准正态分布采样得到向量ε,相对应的维度为N,最终高斯隐变量Z为:
Z=μ+σ*ε,其中*指的是向量间逐元素相乘,得到维度为N的向量。
7.一种基于条件变分自编码器的人体活动识别的系统,其特征在于,包括:
批数据构建模块:原始时间序列随机选取起始点,截取子序列,构建批数据;
条件变分自编码器模型构建模块:条件变分自编码器模型包括先验网络,识别网络和生成网络,识别网络包括三个识别网络全连接层,生成网络包括两个生成网络全连接层;
条件变分自编码器模型训练模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,传感器批数据X和对应的活动标签批数据Y输入到识别网络得到识别网络高斯隐变量Zencode,然后Zprior和Zencode分别输入到生成网络,分别得到预测概率Yprior和重构概率Yencode,最后活动标签批数据Y,预测概率Yprior和重构概率Yencode都输入到损失函数当中计算对应损失;
训练条件变分自编码器模型的具体步骤如下所述:
条件变分自编码器模型包括先验网络,识别网络和生成网络;
先验网络包括三个先验网络全连接层,第一个先验网络全连接层将输入的传感器批数据X映射成隐变量Hprior,另外两个先验网络全连接层将Hprior作为输入,分别输出先验网络对应的高斯隐变量的均值和方差向量,经过重新参数化得到先验网络高斯隐变量Zprior;
识别网络包括三个识别网络全连接层,第一个识别网络全连接层将传感器批数据X和对应的活动标签批数据Y作为输入,对应的活动标签批数据Y先进行One-hot编码,再和传感器批数据X进行张量拼接和维度变换,输入到第一个识别网络全连接层中,输出隐变量Hencode,另外两个识别网络全连接层将Hencode作为输入,分别输出识别网络的高斯隐变量对应的均值和方差向量,经过重新参数化得到识别网络高斯隐变量Zencode;
生成网络包括两个生成网络全连接层,生成网络的输入分别经过两个生成网络全连接层,得到的输出采用softmax函数进行计算,其中Zprior和Zencode分别输入到生成网络中,当Zprior作为生成网络的输入时,生成网络输出活动标签的预测概率Yprior,当Zencode作为生成网络的输入时,生成网络输出活动标签的重构概率Yencode;
人体活动预测模块:传感器批数据X输入到先验网络得到先验网络高斯隐变量Zprior,然后Zprior输入到生成网络得到预测概率Yprior,然后再根据预测概率Yprior得到最终的预测活动标签。
8.根据权利要求7所述的基于条件变分自编码器的人体活动识别的系统,其特征在于,还包括数据预处理模块,对采集数据填充数据遗漏值,对每个维度进行标准归一化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268544.9A CN110020623B (zh) | 2019-04-04 | 2019-04-04 | 基于条件变分自编码器的人体活动识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268544.9A CN110020623B (zh) | 2019-04-04 | 2019-04-04 | 基于条件变分自编码器的人体活动识别系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020623A CN110020623A (zh) | 2019-07-16 |
CN110020623B true CN110020623B (zh) | 2021-01-15 |
Family
ID=67190569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910268544.9A Active CN110020623B (zh) | 2019-04-04 | 2019-04-04 | 基于条件变分自编码器的人体活动识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020623B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929733A (zh) * | 2019-12-09 | 2020-03-27 | 上海眼控科技股份有限公司 | 除噪方法、装置、计算机设备、存储介质及模型训练方法 |
CN111130697B (zh) * | 2019-12-24 | 2022-04-19 | 重庆邮电大学 | 一种降低基于自动编码器的通信物理层传输系统复杂度的方法 |
CN111161249B (zh) * | 2019-12-31 | 2023-06-02 | 复旦大学 | 一种基于域适应的无监督医学图像分割方法 |
CN111310331B (zh) * | 2020-02-12 | 2022-03-25 | 成都理工大学 | 基于条件变分自编码的地壳模型构造方法 |
CN111612078A (zh) * | 2020-05-25 | 2020-09-01 | 中国人民解放军军事科学院国防工程研究院 | 一种基于条件变分自动编码器的变压器故障样本增强方法 |
CN111652135B (zh) * | 2020-06-03 | 2023-05-23 | 广州视源电子科技股份有限公司 | 心电图数据生成方法、装置及电子设备 |
CN111967502B (zh) * | 2020-07-23 | 2021-09-24 | 电子科技大学 | 一种基于条件变分自编码器的网络入侵检测方法 |
CN111814408B (zh) * | 2020-08-25 | 2024-02-09 | 安徽大学 | 一种基于条件变分自编码器的电机数据生成模型建模方法 |
CN112149353B (zh) * | 2020-09-24 | 2024-03-22 | 南京大学 | 基于卷积神经网络识别dnapl污染物在地下含水层分布的方法 |
CN112232268B (zh) * | 2020-10-29 | 2023-10-20 | 中山大学 | 一种结合深度学习和对抗特征解耦的跨域动作识别方法 |
CN112560994B (zh) * | 2020-12-26 | 2024-05-03 | 东软睿驰汽车技术(沈阳)有限公司 | 一种基于时序的车辆工况分类方法及装置 |
CN112699408A (zh) * | 2020-12-31 | 2021-04-23 | 重庆大学 | 一种基于自编码器的穿戴设备数据隐私保护方法 |
CN113033657A (zh) * | 2021-03-24 | 2021-06-25 | 武汉理工大学 | 一种基于Transformer网络的多人行为识别方法 |
CN112926505B (zh) * | 2021-03-24 | 2022-11-11 | 重庆大学 | 基于dtc-vae神经网络的旋转机械健康指标构建方法 |
CN114138942A (zh) * | 2021-12-09 | 2022-03-04 | 南京审计大学 | 基于文本情感倾向的违规检测方法 |
CN114190897B (zh) * | 2021-12-15 | 2024-04-05 | 中国科学院空天信息创新研究院 | 睡眠分期模型的训练方法、睡眠分期方法及装置 |
CN114298183B (zh) * | 2021-12-20 | 2024-04-05 | 江西洪都航空工业集团有限责任公司 | 飞行动作智能识别方法 |
CN115187266B (zh) * | 2022-06-29 | 2023-08-25 | 山东大学 | 基于记忆力变分自编码模型的信用卡欺诈检测方法及系统 |
CN115862120B (zh) * | 2023-02-21 | 2023-11-10 | 天度(厦门)科技股份有限公司 | 可分离变分自编码器解耦的面部动作单元识别方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850735A (zh) * | 2015-04-28 | 2015-08-19 | 浙江大学 | 一种基于栈式自编码的活动识别方法 |
US9432671B2 (en) * | 2014-05-22 | 2016-08-30 | Xerox Corporation | Method and apparatus for classifying machine printed text and handwritten text |
CN108875818A (zh) * | 2018-06-06 | 2018-11-23 | 西安交通大学 | 基于变分自编码机与对抗网络结合的零样本图像分类方法 |
-
2019
- 2019-04-04 CN CN201910268544.9A patent/CN110020623B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432671B2 (en) * | 2014-05-22 | 2016-08-30 | Xerox Corporation | Method and apparatus for classifying machine printed text and handwritten text |
CN104850735A (zh) * | 2015-04-28 | 2015-08-19 | 浙江大学 | 一种基于栈式自编码的活动识别方法 |
CN108875818A (zh) * | 2018-06-06 | 2018-11-23 | 西安交通大学 | 基于变分自编码机与对抗网络结合的零样本图像分类方法 |
Non-Patent Citations (2)
Title |
---|
Variational Gaussian Process Auto-Encoder for Ordinal Prediction of Facial Action Units;Stefanos Eleftheriadis etal.;《http://arXiv:1608.04664v2》;20160915;全文 * |
变分自编码器模型综述;翟正利 等;《计算机工程与应用》;20190201;第55卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110020623A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020623B (zh) | 基于条件变分自编码器的人体活动识别系统及方法 | |
CN111160139B (zh) | 心电信号的处理方法、装置及终端设备 | |
JP6793774B2 (ja) | パラメータの多次元時系列を分類するためのシステムおよび方法 | |
Che et al. | Hybrid multimodal fusion with deep learning for rolling bearing fault diagnosis | |
KR20210011361A (ko) | 시불변 분류 | |
Zhang et al. | Human activity recognition based on time series analysis using U-Net | |
Spathis et al. | Self-supervised transfer learning of physiological representations from free-living wearable data | |
CN112294341B (zh) | 一种基于轻量卷积神经网络的睡眠脑电纺锤波识别方法及系统 | |
Xiao-Feng et al. | Fine-grained permutation entropy as a measure of natural complexity for time series | |
Xu et al. | Intelligent emotion detection method based on deep learning in medical and health data | |
CN111956214A (zh) | 基于U-net端对端神经网络模型的QRS波自动检测方法 | |
CN111863247B (zh) | 基于结构磁共振影像的大脑年龄级联精炼预测方法及系统 | |
Wang et al. | Representation learning with deconvolution for multivariate time series classification and visualization | |
Sharma et al. | Data pre-processing using neural processes for modeling personalized vital-sign time-series data | |
CN115273236A (zh) | 一种多模态的人体步态情感识别方法 | |
Shen et al. | A high-precision feature extraction network of fatigue speech from air traffic controller radiotelephony based on improved deep learning | |
Jain et al. | Machine learning-based monitoring system with IoT using wearable sensors and pre-convoluted fast recurrent neural networks (P-FRNN) | |
CN116864128A (zh) | 基于身体活动行为模式监测的心理状态评估系统及其方法 | |
CN114224354B (zh) | 心律失常分类方法、装置及可读存储介质 | |
CN115132324A (zh) | 心理健康预测方法和装置、电子设备、存储介质 | |
CN114495265A (zh) | 多跨域场景下基于活动图加权的人体行为识别方法 | |
Manimegalai et al. | Deep Learning Based Approach for Identification of Parkinson’s Syndrome | |
CN113643283A (zh) | 一种人体衰老状况的检测方法、装置、设备及存储介质 | |
CN112686091A (zh) | 基于深度神经网络的两步骤心律失常分类方法 | |
Chen et al. | A Unified Framework for Generative Data Augmentation: A Comprehensive Survey |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |