人类活动识别的深度学习模型

目录

    • 概述
    • 人类活动识别
    • 神经网络建模的好处
    • 监督学习数据表示
    • 卷积神经网络模型
    • 递归神经网络模型

人类活动识别(Human Activity Recognition)是一项具有挑战性的时间序列分类任务。

它涉及到基于传感器数据预测人的移动。为了适应机器学习模型,传统上涉及到从信号处理到根据原始数据正确设计特征的深度领域专业知识和方法。

近年来,卷积神经网络和循环神经网络等深度学习方法已经显示出通过从原始传感器数据中自动学习特征的能力,甚至取得了最先进的成果。

在这篇文章中,您将看到人类活动识别中的问题,以及在此问题上有优秀表现的深度学习方法。

读完这篇文章,你就会知道:

  1. 活动识别是根据传感器数据(如智能手机中的加速度计)预测人的运动的问题,通常是在室内。
  2. 传感器数据流通常被分割成称为窗口的子序列,每个窗口都与一个更广泛的活动相关联,称为滑动窗口方法。
  3. 卷积神经网络和长短期记忆网络,或许两者同时使用,最适合从原始传感器数据中学习特征并预测相关运动。

概述

这篇文章分为五个部分; 他们是:

  • 人类活动识别
  • 神经网络建模的好处
  • 监督学习数据表示
  • 卷积神经网络模型
  • 递归神经网络模型

人类活动识别

人类活动识别(简称HAR)是涉及基于传感器数据识别人的特定运动或动作的广泛研究领域。

这些运动通常是指在室内进行的特定活动,例如走动,说话,站立和坐着。它们也可能是更明确的活动,例如在厨房或工厂车间进行的某些类型的活动。

传感器数据可以远程记录,如视频、雷达或其他无线方法。或者,数据可以直接记录在可携带设备上,例如通过携带定制硬件或带有加速度计和陀螺仪的智能手机。

基于传感器的活动识别从大量低水平传感器数据中探寻关于人类活动的深层次知识
-Deep Learning for Sensor-based Activity Recognition: A Survey, 2018.

从历史上看,用于活动识别的传感器数据具有挑战性且收集成本高,需要定制硬件。现在,用于健身和健康监测的智能手机和其他个人跟踪设备便宜又普遍。因此,来自这些设备的传感器数据收集起来更便宜更常见,是一般活动识别问题的更常研究的版本。

我们的目标是根据传感器数据的快照(通常是来自一种或少量传感器类型的数据)来预测活动。一般来说,这个问题被定义为单变量或多变量时间序列分类任务。

这是一个具有挑战性的问题,因为没有明显或直接的方式将记录的传感器数据与特定的人类活动相关联,并且不同受试者执行同一个活动都可能有显着不同,导致所记录的传感器数据也会有很大的差别。

我们的目的是记录特定测试者的传感器数据和相应的活动,根据这些数据拟合一个模型,然后使用生成的模型对未经测试者的传感器数据进行活动分类。

神经网络建模的好处

传统上,采用信号处理领域的方法对采集到的传感器数据进行分析和提取。

这些方法用于特征工程,创建特定于域的,特定于传感器或特定于信号处理的特征以及原始数据的视图。然后用处理后的数据训练统计和机器学习模型。

此方法的局限性在于分析原始数据所需的信号处理和领域专业知识,以及拟合模型所需的特征提取工程。每种新的数据集或传感器模式都需要这种专业知识。实质上,它昂贵且不可扩展。

然而,在大多数日常HAR任务中,这些方法可能严重依赖于启发式手工特征提取,其通常受到人类领域知识的限制。此外,这些方法只能学习浅层特征,导致无监督和增量任务的性能下降。由于这些限制,传统[模式识别]方法在分类准确性和模型泛化方面的性能受到限制。
-Deep Learning for Sensor-based Activity Recognition: A Survey, 2018.

理想情况下,学习方法能够直接得从原始数据中学习到进行准确预测所需的特征。这将使新的问题、新的数据集和新的传感器模式能够快速、廉价地被采用。

现在,深度神经网络模型已经开始如人们期待的那样实现特征学习,并且在人类活动识别上取得优异的结果。它们能够在原始传感器数据上自动执行特征学习,并且能够在手工提取的特定于域的特征上拟合出好的模型。

[…],在深度学习模型中,特征提取和模型构建过程往往是同时进行的。这些功能可以通过网络自动学习,而不是手动设计。此外,深层神经网络还可以提取深层的高层表示,使其更适合于复杂的活动识别任务。
-Deep Learning for Sensor-based Activity Recognition: A Survey, 2018.

神经网络有两种主要方法适用于时间序列分类,并且已经证明使用来自商用智能手机和健身追踪设备的传感器数据在活动识别方面表现良好。它们是卷积神经网络模型和递归神经网络模型。

推荐将RNN和LSTM用于识别具有自然顺序的短期活动,而CNN更擅长推断长期重复性活动。原因是RNN可以利用传感器读数之间的时间顺序关系,CNN更能够学习递归模式中包含的深层特征。
-Deep Learning for Sensor-based Activity Recognition: A Survey, 2018.

监督学习数据表示

在我们深入研究可用于人类活动识别的特定神经网络之前,我们需要讨论数据准备。

适用于时间序列分类的两种类型的神经网络都需要以特定方式准备数据以匹配于模型。也就是说,以“监督学习”方式允许模型将信号数据与活动类相关联。

一种直接的数据准备方法,既可用于手工特征提取的经典机器学习方法,也可用于神经网络。它将输入的信号数据分成信号窗口,其中给定窗口可能有一到几秒的观测数据,这通常被称为“滑动窗口”。

人类活动识别旨在从传感器捕获的一组观察数据中推断出一个或多个人的行为。通常,这是通过用于特征提取的特定大小滑动窗口方法来实现的,其中两个参数必须是固定的:窗口的大小和移位。
— A Dynamic Sliding Window Approach for Activity Recognition, 2011

每个窗口还与特定活动相关联。给定的数据窗口可以具有多个变量,例如加速度计传感器的x,y和z轴,让我们用一个例子来具体说明这一点。

我们有10分钟的传感器数据,表示如下:
在这里插入图片描述
如果数据以8Hz的频率进行记录,则意味着执行活动一秒钟将有八行数据。

我们可以将一秒钟的数据当作一个窗口的数据,也就是说8Hz的传感器将有8行数据。如果我们有x,y和z三个数据维度,那意味着我们将有3个变量。数据窗口将是具有八个时间步长和三个特征的二维阵列。

一个窗口代表一个样本。一分钟的数据代表480个传感器数据点,或者60个8个时间步长的窗口。10分钟的数据总共可以用4800个数据点或者600个数据窗口来表示。

可以方便地根据样本或窗口的数量,窗口中的时间步数以及在每个时间步观察到的特征的数量来描述我们准备的传感器数据的形状。
在这里插入图片描述
我们以8Hz的频率记录的10分钟加速度计数据的示例将被表示为具有以下尺寸的三维阵列:
在这里插入图片描述
没有最佳窗口大小,它实际上取决于所使用的特定模型,收集的传感器数据的性质以及被分类的活动。

窗口的大小和模型的大小之间有紧密的关系。较大的窗口适用于训练速度较慢的大型模型,而较小的窗口则更适用于易于拟合的较小模型。

直观地,减小窗口大小能够更快检测活动,以及减少的资源和能量需求。相反,通常考虑使用大数据窗口来识别复杂的活动。
— Window Size Impact in Human Activity Recognition, 2014.

然而,通常使用一到两秒的传感器数据来对活动的当前片段进行分类。

从结果来看,减少的窗口(2秒或更少)被证明提供了更准确的检测性能。事实上,对于非常短的窗口(0.25-0.5秒),可以获得最精确的识别器,从而实现对大多数活动的完美识别。与通常认为的相反,这项研究表明,大窗口尺寸并不一定能转化为更好的识别性能。
— Window Size Impact in Human Activity Recognition, 2014.

将传感器数据流拆分为窗口可能会导致窗口错过一个活动到另一个活动的转换。因此,通常情况下,将数据拆分为重叠窗口,这样在重叠50%的情况下,使得窗口的前半部分包含来自前一窗口的后半部分的观察结果。

[…]不正确的长度可能会截断活动实例。 在许多情况下,错误会出现在活动的开头或结束, 当窗口与一个活动的结尾和下一个活动的开头重叠时。 在其他情况下,如果窗口长度太短可能无法为识别过程提供最佳信息。
— A Dynamic Sliding Window Approach for Activity Recognition, 2011

目前还不清楚给定问题是否需要具有重叠的窗口。

在采用神经网络模型时,使用重叠(例如50%重叠)将使训练数据的大小加倍,这可能有助于较小数据集的建模,但也可能导致模型过度拟合训练数据集。

对于某些应用,允许相邻窗口之间的重叠; 但是,这种使用频率较低。
— Window Size Impact in Human Activity Recognition, 2014.

卷积神经网络模型

卷积神经网络模型(简称CNN)是一种深度神经网络,它被开发用于图像数据,例如,如手写识别。

事实证明,经过大规模培训他们在挑战计算机视觉问题时非常有效,例如识别和定位图像中的对象以及自动描述图像内容。

它们是由两种主要类型的元素组成的模型:卷积层和池化层。

卷积层读取输入,例如一张二维图像或一个一维信号,它使用卷积核每次读取一小段数据并逐步跨越整个输入字段。每次读取都会生成投影到滤镜图上的输入,并表示输入的内部解释。

池化层采用特征图投影并使用信号平均或信号最大化处理方法提取到最基本的元素。

卷积和池化层可以在深度上不断重复,提供输入信号的多层抽象。

这些网络的输出通常是一个或多个全连接层,用于解释已读取的内容并将此内部表示映射到类值。

有关卷积神经网络的更多信息,参阅以下帖子:

机器学习卷积神经网络的速成课程

CNN可以应用于人类活动识别。

CNN模型学习将给定的信号数据窗口映射成一个活动,在该映射中,模型读取每个数据窗口并准备窗口的内部表示。

当应用于像HAR这样的时间序列分类时,与其他模型相比,CNN具有两个优点:局部依赖性和尺度不变性。局部依赖性意味着HAR中临近的信号可能是相关的,而尺度不变性是指不同步长或频率的尺度不变。
- 基于传感器的活动识别的深度学习:2018年的一项调查。

使用CNN进行HAR的第一项重要工作是Ming Zeng等人在2014年的论文“使用移动传感器进行人类活动识别的卷积神经网络”。

在此论文中,作者为加速度计数据开发了一个简单的CNN模型,其中加速度计数据的每个轴被输入到单独的卷积层,池化层,然后在被隐藏的全连接层解释之前连接起来。

从论文中得到的图清楚地显示了模型的拓扑结构。它提供了一个很好的模板,说明CNN如何用于HAR问题和一般的时间序列分类。
人类活动识别的深度学习模型_第1张图片
有许多方法可以模拟CNN的HAR问题。一个有趣的例子是Heeryon Cho和Sang Min Yoon在他们的2018年论文,题为“Divide and Conquer-Based 1D CNN Human Activity Recognition Using Test Data Sharpening”。

在这篇论文中,他们将活动划分为涉及运动的活动,称为“动态”,以及主体静止的活动,称为“静态”,然后开发CNN模型以区分这两个主要类别。然后,在每个类中,开发模型以区分该类型的活动,例如动态的“行走”和静态的“坐”。
人类活动识别的深度学习模型_第2张图片
他们将此称为两阶段建模方法。

我们不是直接使用单个6级分类器识别单个活动,而是应用分而治之的方法并构建一个两阶段活动识别过程,其中首先使用二元分类器来识别抽象活动,即动态和静态活动,然后使用两个3级分类器识别单个活动。
— Divide and Conquer-Based 1D CNN Human Activity Recognition Using Test Data Sharpening, 2018.

相当大的CNN模型被开发出来,从而使作者能够在具有挑战性的标准人类活动识别数据集上获得最先进的结果。

另一个有趣的方法是由Wenchao Jiang和Zhaozheng Yin在2015年题为“Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks”的论文中提出的。

它们不是在信号数据上使用一维的CNN网络,而是将信号数据组合在一起,创建“图像”,然后将其输入到二维的CNN网络中,并将其作为图像数据进行处理,并沿信号时间轴和信号变量(特别是加速度计和陀螺仪数据)进行卷积。

首先,将原始信号逐行堆叠成信号图像[…]。在信号图像中,每个信号序列都有机会与每个其他序列相邻,这使得DCNN能够提取相邻信号之间的隐藏相关性。然后,将2D离散傅里叶变换(DFT)应用于信号图像,并选择其幅度作为我们的活动图像。
–Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks,2015

下面描述了将原始传感器数据处理成图像,然后从图像处理成“活动图像”,即离散傅立叶变换的结果。
人类活动识别的深度学习模型_第3张图片
最后,另一篇关于这一主题的好论文是Charissa Ann Ronao和Sung Bae Cho于2016年发表的题为“使用深度学习神经网络的智能手机传感器进行人类活动识别”的论文。

实验表明,convnets确实能在每一个附加层中得到相关的、更复杂的特征,尽管随着每个附加层的增加,特征复杂度水平的差异会减小。可以利用更宽的局部相关时间跨度(1×9-1×14),并且低池化大小(1×2 -1×3)被证明是有益的。
–使用深度学习神经网络的智能手机传感器进行人类活动识别, 2016

有用的是,它们还为CNN模型提供了完整的超参数配置,这可能为新的HAR和其他序列分类问题提供了一个有用的起点,总结如下。
人类活动识别的深度学习模型_第4张图片

递归神经网络模型

递归神经网络(简称RNN)是一种旨在从序列数据中学习的神经网络,如随时间变化的观察序列或句子中的单词序列。

一种特殊类型的RNN称为长短期记忆网络(简称LSTM),可能是使用最广泛的RNN,因为它的精心设计克服了在序列数据集上训练出稳定RNN的一般性难题。

当执行手写识别、语言建模和机器翻译等大规模的训练任务时,LSTM已被证明对挑战序列预测问题有效。

LSTM模型中的一个层由特殊单元组成,这些单元具有控制输入、输出和循环连接的门,这些门的权重是已知的。每个LSTM单元还具有内部存储器或状态,这些存储器或状态累计作为输入序列被读取,并且可以被网络用作局部变量或存储器寄存器。

有关长期短期记忆网络的更多信息,请参阅帖子:

Crash Course in Recurrent Neural Networks for Deep Learning

与可以读取输入序列的CNN一样,LSTM读取输入观察序列并开发其自己的输入序列的内部表示。与CNN不同的是,LSTM的培训方式是特别关注输入序列中随时间步骤产生的观测和预测错误,称为随时间的反向传播。

有关随时间反向传播的更多信息,请参阅帖子:

A Gentle Introduction to Backpropagation Through Time

LSTMS可以应用于人类活动识别问题。

LSTM学习将传感器数据的每个窗口映射成一个活动,在训练中,一次一个地读取输入序列中的观测值,其中每个时间步可能包含一个或多个变量(例如并行序列)。

简单的LSTM模型在HAR问题上的应用有限。

其中一个例子是Abdulmajid Murad和Jae-Young Pyun在其2017年题为“Deep Recurrent Neural Networks for Human Activity Recognition”的论文中提出的。

重要的是,在论文中,他们评论了CNN要求在固定大小窗口上操作传感器数据的局限性,这是LSTM没有严格限制的。

但是,卷积内核的大小限制了捕获的数据样本之间的依赖关系范围的大小。因此,典型的模型不适用于作为大范围活动识别的配置,并且需要固定长度的输入窗口。
— Deep Recurrent Neural Networks for Human Activity Recognition, 2017.

他们使用前向(正常)和双向(双向LSTM)处理序列数据两种方式研究了LSTM的使用。有趣的是,LSTM预测传感器数据的子序列的每个输入时间步的活动,然后将其聚合,以预测窗口的活动。

每个时间步都会有一个分数来预测在时间t发生的活动类型。然后将各个得分合并为单个预测来获得对整个窗口T的预测。
— Deep Recurrent Neural Networks for Human Activity Recognition, 2017.

从该论文中截取的如下图例展示了其LSTM模型,其后的全连接层用于解释原始传感器数据的内部表示。
人类活动识别的深度学习模型_第5张图片
在HAR问题上将CNN与LSTM结合使用可能更常见,组合成CNN-LSTM模型或ConvLSTM模型。

此结合的模式下,使用CNN模型从原始样本数据的子序列中提取特征,然后由LSTM解释来自CNN的每个子序列的输出特征并聚合成最终结果。

这方面的一个例子是2016年由Francisco Javier Ordonez和Daniel Roggen撰写的题为“Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition”的论文。

我们为可穿戴活动识别引入了一个新的DNN框架,我们将其称为DeepConvLSTM。该架构结合了卷积层和递归层。卷积层充当特征提取器,并在特征映射中提供输入传感器数据的抽象表示。循环层模拟特征图激活的时间动态。
— Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition, 2016.

他使用一个深度网络体系结构,有四个卷积层,没有任何池化层,接着是两个LSTM层,用于在多个时间步中解释提取的特征。

作者声称,移除池化层是其模型体系结构的关键部分,其中在卷积层之后使用池化层会干扰卷积层学习对原始传感器数据进行下采样的能力。

在文献中,CNN框架通常连续地包括卷积和池化层,作为降低数据复杂性和引入平移不变特征的措施。然而,这种方法并不是架构的严格组成部分,并且在时间序列域中[…],DeepConvLSTM不包括池化操作,因为网络的输入受到滑动窗口机制的约束[…],这一事实限制了限制了数据降采样的可能性,因为DeepConvLSTM需要由递归层处理数据序列。然而,在没有滑动窗口要求的情况下,池化机制可能有助于覆盖更深层的不同传感器数据时间尺度。
— Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition, 2016.

从论文文中截取的下图使体系结构更加清晰。请注意,图中的第6层和第7层实际上是LSTM层。
人类活动识别的深度学习模型_第6张图片

原文链接地址。

你可能感兴趣的:(HAR,RNN,LSTN,CNN)