欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

时间序列分类01:人类活动(行为)识别深度学习模型综述

程序员文章站 2022-03-19 11:34:33
...

本文介绍了人类行为识别相关领域的建模方法和理论研究。



前言

人类活动(行为)识别(Human activity recognition,简称HAR)是一项具有挑战性的时间序列分类任务。它使用基于传感器的数据来预测人类的行为,传统上的识别方法需要很强的专业知识,涉及信号处理、特征工程等。近年来,使用卷积神经网络和递归神经网络等深度学习方法已经显示出了从原始传感器数据中自动学习特征的能力,甚至达到了最新的效果。本文介绍了在人类活动识别问题上,性能比较先进的深度学习方法。

  • 活动识别是根据传感器数据(如智能手机中的加速计)来预测人的活动的问题。
  • 传感器数据流通常被分成称为窗口的子序列,每个窗口都与更广泛的活动相关联,称为滑动窗口方法
  • CNN和LSTM相结合,最适合从原始传感器数据中学习特征和预测相关运动。

时间序列分类01:人类活动(行为)识别深度学习模型综述

Brussels, Belgium, photo by Mārtiņš Zemlickis


相关论文

【HAR 01】:A Public Domain Dataset for Human Activity Recognition Using Smartphones
【HAR 02】:Activity Recognition using Cell Phone Accelerometers

分别对应两个不同的实验室和不同的数据集。

  • UCI-HAR数据集(9轴传感器数据)出自出自第一篇论文相关的实验室;
  • 第二篇论文相关的实验室也有自己的数据集(3轴传感器数据)。

1. 人类行为识别简介

人类行为识别是一个广泛的研究领域,它涉及基于传感器数据识别人的特定运动或行为。动作通常是典型活动,如步行、站立、坐着、躺下、上下楼梯等。它们也可能是更集中的活动,例如在厨房或工厂车间执行的那些类型的活动。传感器数据可以被远程记录,例如视频,雷达或其他无线方法。或者,可以通过携带定制硬件或带有加速度计和陀螺仪的智能手机将数据直接记录在对象上。


从历史上看,用于行为识别的传感器数据具有挑战性,并且收集起来很耗时耗力,而且可能需要自定义硬件。现在,用于健身和健康监控的智能手机以及其他个人跟踪设备的普遍使用,使得来自这些设备的传感器数据更容易获取,因此针对人类行为识别的研究工作主要针对这些硬件手机的数据开展。问题是根据传感器数据来预测活动的类别,传感器数据通常是一维或者多维的数据。通常,可以将此问题建模成单变量或多变量时间序列分类任务。


这是一个具有挑战性的问题,因为没有明显或直接的方式将记录的传感器数据与特定的人类活动相关联,并且每个对象可能执行的活动具有明显的变化,从而导致记录的传感器数据发生变化。目的是记录特定对象的传感器数据和相应的活动,从该数据中拟合模型,并对模型进行概括,以根据其传感器数据对新的未见对象的活动进行分类。

时间序列分类01:人类活动(行为)识别深度学习模型综述

Prishtina, photo by Gentrit Sylejmani

2. 使用神经网络进行建模的优势

传统上,使用信号处理领域的方法对所收集传感器数据进行分析和提取特征。此此类方法用于特征工程,创建特定于域,特定于传感器或特定于信号处理的特征以及原始数据的视图。然后在经过处理的数据上训练和评估机器学习模型。这种方法的局限性在于分析原始数据和设计适合模型的功能需要信号处理和相关领域的专业知识。每个新的数据集或传感器数据都需要这种专业知识。在大多数日常HAR任务中,这些方法可能严重依赖于启发式手工特征提取,这通常受到人为领域知识的限制。此外,这些方法只能学习浅层特征,从而导致无人监督和增量任务的性能下降,即需要人为做特征工程,训练好的模型泛化能力差。 由于这些缺陷,传统的模式识别方法的性能在在人类活动识别任务上的分类准确性和模型的泛化能力受到限制。
时间序列分类01:人类活动(行为)识别深度学习模型综述
理想情况下,可以使用学习方法来自动学习直接从原始数据进行准确预测所需的特征。这使得新的问题,新的数据集和新的传感器模式被快速而廉价地采用。最近,深度神经网络模型已经开始展现其特征提取的能力,并正在获得人类活动识别任务的最优性能。它们能够从原始传感器数据执行自动特征学习,并且性能优于使用特征工程训练的模型。

特征提取和模型构建过程通常在深度学习模型中同时执行。这些功能可以通过网络自动学习,而无需手动设计。此外,深度神经网络还可以提取深层的高级表示,这使其更适合复杂的活动识别任务。

卷积神经网络模型和递归神经网络模型适合处理时间序列分类任务,并且已经证明在从智能手机和健身设备上收集的数据中进行活动识别的性能表现不俗。建议使用RNN和LSTM来识别具有自然顺序的短期活动,而CNN可以更好地推断长期重复活动。原因是RNN可以利用传感器读数之间的时间顺序关系,而CNN更有能力学习递归模式中包含的深层特征。


3. 监督学习的数据准备

在深入研究可用于人类活动识别的特定神经网络之前,需要讨论数据准备。适于时间序列分类的两种类型的神经网络都要求以特定方式准备数据以便拟合模型。也就是说,通过“监督学习”的方式,该模型可以将信号数据与活动类别相关联。一种简单的数据准备方法,既用于手工特征的经典机器学习方法,又用于神经网络,涉及将输入信号数据划分为信号窗口,这个窗口按照指定步长和指定宽度对原数据进行截取,使得一个样本中包含窗口宽度大小的采样数据,这种划分样本的方法称为 滑动窗口(sliding window


人类活动识别旨在从传感器捕获的一组观察结果中推断一个或多个人的行为。通常,这是通过固定长度的滑动窗口方法进行特征提取的,其中必须固定两个参数:滑动窗口的宽度和滑动步长。

每个窗口数据(样本)与特定活动关联(带标签)。给定的数据窗口可能具有多个变量,例如加速度传感器的x,y和z轴。通过一个例子来具体说明。假设我们有10分钟的传感器数据,类似如下:

x,    y,    z,    activity
1.1,  2.1,  0.1,  1
1.2,  2.2,  0.2,  1
1.3,  2.3,  0.3,  1
...

如果采样频率为20Hz(一秒采样20次),一次采样作为一行。如果窗口宽度为1s,则意味着窗口截取了20行采样数据。如果采集的传感器数据包括x,y,z轴的加速度,则意味着有3个变量(特征)。因此,一个滑动窗口是有20个时间步长和3个特征的二维数组,称为一个样本。一分钟的采样数据有3×20×60个采样值,或者说有60个窗口宽度为20的滑动窗口。10分钟的采样数据有10×3×20×60个采样值,或者说有600个滑动窗口。注意:窗口个数并不等同于样本个数,样本个数与滑动窗口的宽度和滑动步长都有关。只有当滑动窗口的滑动步长等于窗口宽度时,窗口个数才等于样本个数,相当于将采样数据等分为窗口宽度大小的样本,并且是无重叠划分。画个图吧。


时间序列分类01:人类活动(行为)识别深度学习模型综述


将传感器采样数据重采样为样本之后,数据集的shape变为:

[samples, timesteps, features]

对上文中举的例子来说,数据集的shape为:

[600, 20, 3]

滑动窗口的宽度(大小)不是固定不变的,它取决于所使用的模型,所收集的传感器数据的性质以及所要解决的分类问题。窗口的宽度和模型的大小相关联。较大的窗口宽度适用于训练较慢的复杂模型,而较小的窗口适合训练较小模型。

直观上来说,减小窗口大小可加快活动检测速度,减少资源使用。相反,通常使用较大的窗口宽度识别复杂的活动。


识别人类的活动,通常需要1到2秒的传感器数据。有研究表明,较小的窗口宽度(2秒或更短)可提供最准确的检测性能。实际上,对于非常短的窗口(0.25-0.5s),可以获得最精确的识别器,从而可以完美识别大多数活动。与通常的想法相反,这项研究表明,较大的窗口宽度不一定能转化为更好的识别性能。


将传感器数据拆分为多个窗口可能会导致某些窗口错过从一项活动到另一项活动的过渡的风险。因此,传统上通常将数据拆分为有重叠的窗口,以使窗口的前半部分包含来自前一个窗口后半部分的观测值(重叠率为50%)。不正确的长度可能会截断活动实例。在许多情况下,当窗口与一个活动的结束和下一个活动的开始重叠时,错误就会出现在活动的开始或结束处。在其他情况下,窗口长度可能太短,无法为识别过程提供最佳信息。


目前尚不清楚给定问题是否需要重叠窗口。在采用神经网络模型时,使用重叠(例如50%重叠)会使训练数据的大小增加一倍,这可能有助于对较小的数据集进行建模,但也可能导致模型过度拟合训练数据集。


4. 卷积神经网络模型

卷积神经网络模型(CNN)是一种深层神经网络,专门为处理图像数据而开发,例如手写识别。最近,CNN可以应用于人类活动识别数据。 CNN模型学习将给定的信号数据窗口映射到一个活动,在该活动中,模型跨数据的每个窗口读取并准备该窗口的内部表示。

当CNN应用于HAR等时间序列分类时,它有两个优点:局部依赖性和尺度不变性。局部依赖意味着HAR中的邻近信号可能是相关的,而尺度不变性是指不同的空间或频率下的尺度不变性。

使用CNN进行HAR的第一项重要工作是由Ming Zeng等人在其2014年的论文《Convolutional Neural Networks for Human Activity Recognition using Mobile Sensors》,文中建立了一个简单的加速度计数据CNN模型,将加速度计数据的每一个轴分别送入单独的卷积层、池化层,然后级联(concatenated)起来,再由全连接层解释。下图显示了模型的拓扑结构。它为CNN如何用于HAR问题和时间序列分类提供了一个很好的模板。
时间序列分类01:人类活动(行为)识别深度学习模型综述
有许多方法可以使用CNN建模HAR问题。一个有趣的例子是Heeryon Cho和Sang Min Yoon在其2018年的论文中,题为《Divide and Conquer-Based 1D CNN Human Activity Recognition Using Test Data Sharpening》。在其中,他们将活动分为涉及运动的活动(称为动态)和活动对象静止的活动(称为静态),然后开发CNN模型以区分这两个主要类别。然后,在每个类别中,开发模型以区分该类型的活动,例如动态行走和静态静坐。
时间序列分类01:人类活动(行为)识别深度学习模型综述
文中提到:“我们不是使用单个6类分类器直接识别单个活动,而是采用分而治之的方法,将识别过程分为两个阶段,首先使用二分类器识别抽象活动,即动态和静态活动;然后使用两个3类分类器识别各个活动。”
时间序列分类01:人类活动(行为)识别深度学习模型综述


有相当多的CNN模型正在开发,这反过来使作者可以在具有挑战性的标准人类活动识别数据集上做相关的应用研究。在2015年的一篇论文中提出了另一种有趣的方法,论文名为《Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks》。它们不是在信号数据上使用一维CNN,而是将信号数据组合在一起以创建图像,然后将其馈送到2D CNN,并作为图像数据进行处理,并沿着信号的时间轴和信号变量(特别是加速度计和陀螺仪)进行卷积数据。

文中提到:“首先,原始信号逐行堆叠到信号图像中。在信号图像中,每个信号序列都有机会与其他每个序列相邻,这使DCNN能够提取相邻信号之间的隐藏相关性。然后,将二维离散傅里叶变换(DFT)应用于信号图像,并选择其幅度作为我们的活动图像。”
时间序列分类01:人类活动(行为)识别深度学习模型综述


下面是离散傅里叶变换结果的原始传感器数据到图像的处理,然后是从图像到活动图像的处理。关于该主题的另一篇好论文是2016年发表的题为《Human activity recognition with smartphone sensors using deep learning neural networks》。对CNN的使用进行了仔细的研究,结果表明,较大的内核大小的信号数据非常有用,而且池化层的作用有限。

文中提到:“实验表明,卷积确实在每个附加层上都派生了相关且更复杂的特征,但特征复杂度的差异却随着每增加一层而减小。较宽的时间跨度(1×9-1×14)和较低的池化尺寸(1×2-1×3)是有利的。

有用的是,它们还为CNN模型提供了完整的超参数配置,可以为新的HAR和其他序列分类问题提供有用的起点,如下图所示。
时间序列分类01:人类活动(行为)识别深度学习模型综述


5. 递归神经网络模型

长期的长期记忆网络(简称LSTM)经验证可有效解决诸如手写识别,语言建模和机器翻译之类的任务,以及具有挑战性的序列预测问题。LSTM可以应用于人类活动识别问题。 LSTM学习将传感器数据的每个窗口映射到一个活动,在该活动中一次读取一次输入序列中的观察值,其中每个时间步长可以包含一个或多个变量(例如并行序列)。

简单的LSTM模型在HAR问题上的应用有限。在2017年发表的论文《Deep Recurrent Neural
Networks for Human Activity Recognition》中,评论了CNN的局限性,即CNN要求在传感器数据的固定大小的窗口上运行,而LSTM并没有严格限制。

文中提到:“但是,卷积核的大小限制了数据样本之间的依存关系捕获范围。结果,典型模型不适用于多种活动识别配置,并且需要固定长度的输入窗口。”

他们探索了使用LSTM来处理序列数据的正向和双向LSTM。LSTM预测传感器数据子序列的每个输入时间步长的活动,然后将其汇总以预测窗口的活动。

文中提到:“每个时间步长都有一个分数,预测在时间t发生的活动类型。通过将各个分数合并到单个预测中来获得整个窗口T的预测。”

下图取自该论文,提供了LSTM模型的描述,其后是用于解释原始传感器数据内部表示的完全连接的层。
时间序列分类01:人类活动(行为)识别深度学习模型综述


在CNN-LSTM模型或ConvLSTM模型中,在HAR问题上将LSTM与CNN结合使用可能更为常见。在这里,使用CNN模型从原始样本数据的子序列中提取特征,然后由LSTM汇总解释每个子序列的CNN输出特征。例如,在2016年发表的论文《Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition》。

文中提到:“我们为可穿戴活动识别引入了一个新的DNN框架,我们将其称为DeepConvLSTM。这种架构结合了卷积层和循环层。卷积层充当特征提取器,并在特征图中提供输入传感器数据的抽象表示。循环图层为特征图**的时间动态建模。”

一个深层网络体系结构用于四个卷积层,没有任何池化层,然后是两个LSTM层,用于在多个时间步上解释提取的特征。作者提到,删除池化层是其模型体系结构的关键部分,其中在卷积层之后使用池化层会干扰卷积层学习对原始传感器数据进行降采样的能力。

在文献中,CNN框架通常依次包含卷积和池化层,以此来降低数据复杂性并引入翻译不变性特征。尽管如此,这种方法并不是严格的体系结构的一部分,并且在时间序列域中,DeepConvLSTM不包括池化操作,因为网络的输入受到滑动窗口机制的限制,因此考虑到DeepConvLSTM要求数据序列由递归层处理,因此限制了对数据进行下采样的可能性。但是,如果不需要滑动窗口,池化机制可以用于覆盖更深层的不同传感器数据时间尺度。

下图取自论文,使体系结构更加清晰。注意,图像中的第6层和第7层实际上是LSTM层。
时间序列分类01:人类活动(行为)识别深度学习模型综述


6. 人类行为识别任务面临的挑战

许多机器学习方法已被应用于人类活动识别中。然而,这一领域仍面临许多技术挑战。一些挑战与其他模式识别领域(如计算机视觉和自然语言处理)共享,而一些挑战是基于传感器的活动识别所特有的,需要专门的方法用于实际应用。这里列出了活动识别社区应该应对的几类挑战。

  • 第一个挑战是特征提取的困难。活动识别基本上是一个分类任务,因此它与其他分类问题(即特征提取)有着共同的挑战。对于基于传感器的活动识别,由于存在活动间的相似性,特征提取更加困难。不同的活动可能具有相似的特征(例如,步行和跑步)。因此,很难产生可区分的特征来唯一地表示活动。

  • 训练和评估需要大量带注释的数据样本。然而,收集和标注传感器数据耗时耗力。因此,基于传感器的活动识别面临着显著的挑战。此外,一些突发或意外活动(如意外坠落)的数据尤其难以获取,这导致了另一个挑战,即类别不平衡

  • 人类活动识别涉及三个因素:用户、时间和传感器。首先,活动模式依赖于人。不同的用户可能有不同的活动风格。第二,活动随着时间的推移而变化。假设用户在很长一段时间内保持其活动模式不变是不切实际的。此外,新的活动很可能在使用时出现。第三,各种传感器设备在人体或环境中被随机配置。传感器的组成和布局对活动激发的数据有着显著的影响。这三个因素都导致了用于活动识别的传感器数据的异质性,这种情况迫切需要缓解。

  • 数据关联的复杂性是使识别具有挑战性的另一个原因。数据关联是指数据关联了多少用户和多少活动。在复杂的数据关联驱动下,活动识别面临许多具体的挑战。第一个挑战可以在复合活动中看到。大多数活动识别任务都是基于简单的活动,比如走路和坐着。然而,记录人类日常生活的更有意义的方法是由一系列简单活动组成的复合活动。例如,“洗手”可以表示为{打开水龙头、肥皂、搓手、关闭水龙头}。复合活动带来的一个挑战是数据分割。复合活动可以定义为一系列活动。因此,精确的活动识别在很大程度上依赖于精确的数据分割技术。同时进行的活动显示了第三个挑战。并发活动发生在用户同时参与多个活动时,例如在观看电视时接听电话。多用户活动也与数据关联的复杂性有关。当多个用户参与一组活动时,识别是很困难的,这通常发生在多个居民的场景中。

  • 另一个需要关注的因素是人类活动识别系统的可行性。由于人类活动识别与人类的日常生活十分接近,因此需要努力使系统为广大用户所接受。首先,系统应该是资源密集型的,这样它就适合便携式设备,并且能够给出即时响应。因此,计算成本问题应该得到解决。其次,由于识别系统不断记录用户的生活,存在个人信息泄露的风险。因此,隐私权是另一个需要解决的问题,以使该系统在私人空间中可行。

  • 与图像或文本不同,用于活动识别的感官数据复杂且不可读。此外,由于传感器固有的缺陷,传感器数据不可避免地包含了大量的噪声信息。因此,可靠的识别解决方案应该具有对感官数据的可解释性,并且能够理解数据的哪一部分有助于识别,哪一部分会恶化识别。


7. 深度学习方法的优势

许多以前的工作在人类活动识别中采用了机器学习方法。它们高度依赖于特征提取技术,包括时频变换、统计方法和符号表示。然而,提取的特征是精心设计和启发式的。目前还没有一种通用的、系统的特征提取方法来有效地提取人类活动中的可识别特征。近年来,在计算机视觉、自然语言处理和语音处理等领域,深度学习在模拟复杂数据的高级抽象方面取得了显著的进展。早期的研究检验了深度学习在人类活动识别中的有效性之后,相关的研究在这一领域兴起。随着深度学习在人类活动识别中的必然发展,针对具体的挑战进行了最新的工作。然而,深度学习由于其突飞猛进的成功、繁杂的创新和缺乏理论支持,仍然面临着研究者不愿意接受的困境。因此,尽管人类活动认知面临挑战,但仍有必要论证深度学习在人类活动认知中的可行性和成功背后的原因

  • 深度学习最吸引人的特点是“深度”。深层模型的逐层结构允许可伸缩地从简单到抽象的特征学习。此外,像GPU这样的高级计算资源为深度模型提供了从复杂数据中学习描述性特征的强大能力。卓越的学习能力也使活动识别系统能够深入分析多模态感知数据,实现精确识别。
  • 深层神经网络的不同结构从多个角度编码特征。例如,卷积神经网络(CNN)能够捕获多模态感知数据的局部连接,而局部性引入的平移不变性可以实现精确识别。递归神经网络(RNNs)提取时间依赖关系,通过时间间隔递增学习信息,适合于人类活动识别中的感官数据流。
  • 深层神经网络是可分离的,可以灵活地组合成具有一个整体优化功能的统一网络,这使得允许各种深层学习技术,包括深层转移学习、深层主动学习、深层注意机制和其他不是系统的而是有效的解决方案。采用这些技巧的作品迎合了深度学习中的各种挑战。

Deep Learning Models for Human Activity Recognition
Convolutional Neural Networks for Human Activity Recognition using Mobile Sensors,2014
Deep Convolutional and LSTM Recurrent Neural Networks for MultimodalWearable Activity Recognition,2016
Deep Recurrent Neural Networks for Human Activity Recognition,2017
Deep Learning for Sensor-based Activity Recognition: A Survey,2018
Divide and Conquer-Based 1D CNN Human Activity Recognition Using T est Data Sharpening,2018
Deep Learning for Sensor-based Human Activity Recognition: Overview, Challenges and Opportunities,2020