人类活动识别,简称HAR,是一项具有挑战性的时间序列分类任务。
它涉及根据传感器数据预测人的运动,传统上需要深厚的领域专业知识和信号处理方法,以便从原始数据中正确地工程化特征以拟合机器学习模型。
最近,卷积神经网络和循环神经网络等深度学习方法已经展现出强大的能力,甚至通过自动从原始传感器数据中学习特征来取得最先进的结果。
在本帖中,您将了解人类活动识别的问题以及在该问题上取得最先进性能的深度学习方法。
阅读本文后,你将了解:
- 活动识别是根据传感器数据(如智能手机中的加速度计)来预测人运动的问题,通常是在室内进行的。
- 传感器数据流通常被分割成称为窗口的子序列,每个窗口与一个更广泛的活动相关联,这被称为滑动窗口方法。
- 卷积神经网络和长短期记忆网络,或者两者结合,最适合从原始传感器数据中学习特征并预测相关的运动。
开始您的项目,阅读我的新书《时间序列预测深度学习》,其中包含分步教程和所有示例的Python源代码文件。
让我们开始吧。

用于人类活动识别的深度学习模型
照片由 Simon Harrod 拍摄,保留部分权利。
概述
本文分为五个部分,它们是:
- 人类活动识别
- 神经网络建模的优势
- 监督学习数据表示
- 卷积神经网络模型
- 循环神经网络模型
人类活动识别
人类活动识别,简称HAR,是一个广泛的研究领域,旨在根据传感器数据识别人的特定运动或动作。
运动通常是室内进行的典型活动,如走路、说话、站立和坐着。它们也可能更专注于特定活动,例如在厨房或工厂车间进行的活动。
传感器数据可以远程记录,例如视频、雷达或其他无线方法。或者,数据可以直接记录在被测对象身上,例如通过携带定制硬件或带有加速度计和陀螺仪的智能手机。
基于传感器的活动识别寻求从大量的低级传感器读数中获得关于人类活动的高级知识
— 《深度学习用于基于传感器的活动识别:综述》,2018年。
历史上,用于活动识别的传感器数据收集起来具有挑战性且成本高昂,需要定制硬件。现在,智能手机和其他用于健身和健康监测的个人跟踪设备价格便宜且随处可见。因此,这些设备上的传感器数据收集成本更低、更普遍,因此是更常研究的通用活动识别问题版本。
问题是给定一个传感器数据快照来预测活动,通常是一个或少数几种传感器类型的数据。通常,这个问题被表述为一元或多元时间序列分类任务。
这是一个具有挑战性的问题,因为没有明显或直接的方法可以将记录的传感器数据与特定的人类活动联系起来,而且每个个体执行活动的方式可能会有显著差异,从而导致记录的传感器数据出现变化。
目的是记录特定个体的传感器数据和相应的活动,从这些数据中拟合模型,并将模型泛化,以对新未见过个体的传感器数据进行活动分类。
时间序列深度学习需要帮助吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
神经网络建模的优势
传统上,信号处理领域的传统方法被用来分析和提炼收集到的传感器数据。
这些方法用于特征工程,创建特定领域、特定传感器或特定信号处理的特征以及原始数据的视图。然后,在处理过的数据版本上训练统计和机器学习模型。
这种方法的一个局限性是分析原始数据和工程化拟合模型所需特征的信号处理和领域专业知识。对于每个新数据集或传感器模态,都需要这种专业知识。本质上,它是昂贵的且不可扩展的。
然而,在大多数日常HAR任务中,这些方法可能严重依赖于启发式手工特征提取,而这通常受限于人类领域知识。此外,这些方法只能学习浅层特征,导致在无监督和增量任务中性能下降。由于这些限制,传统[模式识别]方法的分类准确性和模型泛化能力受到限制。
— 《深度学习用于基于传感器的活动识别:综述》,2018年。
理想情况下,可以使用学习方法,直接从原始数据中自动学习做出准确预测所需的特征。这将允许快速廉价地采用新问题、新数据集和新传感器模态。
最近,深度神经网络模型开始兑现其特征学习的承诺,并在人类活动识别方面取得了最先进的结果。它们能够从原始传感器数据中自动学习特征,并优于在手工设计的领域特定特征上拟合的模型。
[...],深度学习模型通常同时进行特征提取和模型构建。特征可以通过网络自动学习,而不是手动设计。此外,深度神经网络还可以提取深层的高级表示,使其更适合复杂的活动识别任务。
— 《深度学习用于基于传感器的活动识别:综述》,2018年。
有两种主要的神经网络方法适用于时间序列分类,并且已在商品智能手机和健身跟踪设备传感器数据活动识别方面取得了良好的效果。
它们是卷积神经网络模型和循环神经网络模型。
建议使用RNN和LSTM来识别具有自然顺序的短活动,而CNN更擅长推断长期的重复活动。原因是RNN可以利用传感器读数之间的时间顺序关系,而CNN更擅长学习递归模式中包含的深度特征。
— 《深度学习用于基于传感器的活动识别:综述》,2018年。
监督学习数据表示
在我们深入探讨可用于人类活动识别的具体神经网络之前,我们需要讨论数据准备。
适合时间序列分类的这两种类型的神经网络都需要以特定的方式准备数据才能拟合模型。也就是说,以“监督学习”的方式,使模型能够将信号数据与活动类别关联起来。
一种直接的数据准备方法,既用于基于手工特征的经典机器学习方法,也用于神经网络,包括将输入信号数据分割成信号窗口,其中给定窗口可能包含一到几秒的观测数据。这通常称为“滑动窗口”。
人类活动识别旨在从传感器捕获的一组观察结果中推断一个或多个人的动作。通常,这是通过对特征提取采用固定长度的滑动窗口方法来完成的,其中需要固定两个参数:窗口大小和步长。
— 《用于活动识别的动态滑动窗口方法》,2011年
每个窗口也与一个特定的活动相关联。给定的数据窗口可以有多个变量,例如加速度计传感器的x、y和z轴。
让我们用一个例子来具体说明。
我们有10分钟的传感器数据;它可能看起来像
1 2 3 4 5 |
x, y, z, 活动 1.1, 2.1, 0.1, 1 1.2, 2.2, 0.2, 1 1.3, 2.3, 0.3, 1 ... |
如果数据以8 Hz记录,这意味着一秒钟的时间执行一项活动将有八行数据。
我们可以选择让一个数据窗口代表一秒的数据;这意味着对于8 Hz的传感器,有八行数据。如果我们有x、y和z数据,这意味着我们将有3个变量。因此,一个数据窗口将是一个具有八个时间步长和三个特征的二维数组。
一个窗口代表一个样本。一分钟的数据将代表480个传感器数据点,或60个八个时间步长窗口。总共10分钟的数据将代表4,800个数据点,或600个数据窗口。
用样本或窗口的数量、窗口中的时间步数以及每个时间步观察到的特征的数量来描述我们准备好的传感器数据的形状是很方便的。
1 |
[样本,时间步数,特征] |
我们以8 Hz记录的10分钟加速度计数据的示例将总结为一个三维数组,其维度为
1 |
[600, 8, 3] |
没有最佳窗口大小,这实际上取决于所使用的具体模型、收集的传感器数据的性质以及正在分类的活动。
窗口大小和模型大小之间存在一种权衡。较大的窗口需要较大的模型,训练速度较慢;而较小的窗口需要较小的模型,更容易拟合。
直观地说,减小窗口大小可以更快地进行活动检测,并减少资源和能源需求。相反,通常认为大的数据窗口用于识别复杂的活动
— 《窗口大小对人类活动识别的影响》,2014年。
尽管如此,通常使用一到两秒的传感器数据来分类当前活动的片段。
结果表明,缩短窗口(2秒或更短)可以提供最准确的检测性能。事实上,对于非常短的窗口(0.25-0.5秒),可以获得最精确的识别器,从而能够完美识别大多数活动。与人们通常认为的相反,这项研究表明,较大的窗口大小并不一定会转化为更好的识别性能。
— 《窗口大小对人类活动识别的影响》,2014年。
将传感器数据流分割成窗口存在一种风险,即可能导致窗口错过一个活动到另一个活动的过渡。因此,传统上将数据分割成具有重叠的窗口是很常见的,这样第一个窗口包含前一个窗口最后一半的观察结果,如果重叠50%。
[...],不正确的长度可能会截断活动实例。在许多情况下,错误出现在活动的开始或结束时,当窗口与一个活动的结束和下一个活动的开始重叠时。在其他情况下,窗口长度可能太短,无法为识别过程提供最佳信息。
— 《用于活动识别的动态滑动窗口方法》,2011年
不清楚特定问题是否需要重叠窗口。
在采用神经网络模型时,使用重叠(例如50%重叠)会将训练数据的大小加倍,这可能有助于建模较小的数据集,但也可能导致模型过拟合训练数据集。
相邻窗口之间的重叠对于某些应用是可以容忍的;但是,这种情况不太常用。
— 《窗口大小对人类活动识别的影响》,2014年。
卷积神经网络模型
卷积神经网络模型,简称CNN,是一种深度神经网络,最初是为图像数据设计的,例如手写识别。
它们在具有挑战性的计算机视觉问题上已被证明非常有效,通过大规模训练,可以完成诸如识别和定位图像中的对象以及自动描述图像内容等任务。
它们是由两种主要类型的元素组成的模型:卷积层和池化层。
卷积层读取输入,例如2D图像或1D信号,使用一个内核一次读取一小段并跨越整个输入字段。每次读取都会将输入投影到filter map上,并代表对输入的内部解释。
池化层获取filter map的投影,并将其提炼为最关键的元素,例如使用信号平均或信号最大化过程。
卷积层和池化层可以深度重复,提供多层输入信号的抽象。
这些网络的输出通常是一个或多个全连接层,它们解释读取的内容,并将此内部表示映射到类值。
有关卷积神经网络的更多信息,请参阅帖子
CNN可以应用于人类活动识别数据。
CNN模型学习将给定的信号数据窗口映射到一个活动,其中模型读取数据窗口,并准备窗口的内部表示。
当应用于HAR这样的时间序列分类时,CNN相对于其他模型有两个优势:局部依赖性和尺度不变性。局部依赖性意味着HAR中附近的信号很可能相关,而尺度不变性指的是不同步长或频率的尺度不变性。
— 《深度学习用于基于传感器的活动识别:综述》,2018年。
第一个使用CNN进行HAR的重要工作是Ming Zeng等人在他们2014年的论文“Co《使用移动传感器进行人类活动识别的卷积神经网络》”中提出的。
在这篇论文中,作者开发了一个简单的CNN模型用于加速度计数据,其中加速度计数据的每个轴被馈送到单独的卷积层、池化层,然后连接起来,再由隐藏的全连接层进行解释。
下面取自该论文的图清楚地显示了模型的拓扑结构。它为CNN如何用于HAR问题和时间序列分类提供了一个很好的模板。

加速度计数据CNN模型示意图
取自“使用移动传感器进行人类活动识别的卷积神经网络”
有许多方法可以用CNN对HAR问题进行建模。
一个有趣的例子是Heeryon Cho和Sang Min Yoon在他们2018年的论文“《基于分而治之的1D CNN人类活动识别及测试数据锐化》”中提出的。
在其中,他们将活动分为涉及运动的“动态”和被测对象静止的“静态”,然后开发了一个CNN模型来区分这两个主要类别。然后,在每个类别中,开发模型来区分该类型的活动,例如动态的“行走”和静态的“坐”。

活动分离为动态或静态
取自“基于分而治之的1D CNN人类活动识别及测试数据锐化”
他们称之为两阶段建模方法。
我们没有通过单一的6类分类器直接识别各个活动,而是采用分而治之的方法,构建一个两阶段的活动识别过程,首先使用2类或二元分类器识别抽象活动(即动态和静态活动),然后使用两个3类分类器识别各个活动。
— 《基于分而治之的1D CNN人类活动识别及测试数据锐化》,2018年。
开发了相当大的CNN模型,这使得作者能够声称在具有挑战性的标准人类活动识别数据集上取得了最先进的结果。
Wenchao Jiang和Zhaozheng Yin在他们2015年的论文“《使用可穿戴传感器和深度卷积神经网络进行人类活动识别》”中提出了另一种有趣的方法。
他们没有在信号数据上使用1D CNN,而是将信号数据组合起来创建“图像”,然后将其馈送到2D CNN并作为图像数据处理,其中卷积沿着信号的时间轴和跨越信号变量(特别是加速度计和陀螺仪数据)。
首先,原始信号逐行堆叠成信号图像[....]。在信号图像中,每个信号序列都有可能与其他序列相邻,这使得DCNN能够提取相邻信号之间隐藏的相关性。然后,对信号图像应用2D离散傅里叶变换(DFT),并选择其幅度作为我们的活动图像
— 《使用可穿戴传感器和深度卷积神经网络进行人类活动识别》,2015年。
下面是原始传感器数据处理成图像,然后从图像处理成“活动图像”(离散傅里叶变换的结果)的示意图。

原始传感器数据处理成图像
取自“使用可穿戴传感器和深度卷积神经网络进行人类活动识别”
最后,另一篇关于该主题的好论文是Charissa Ann Ronao和Sung-Bae Cho在2016年的论文“《使用深度学习神经网络进行智能手机传感器的人类活动识别》”。
对CNN的使用进行了仔细研究,表明较大的信号数据核尺寸是有用的,并且池化受限。
实验表明,卷积神经网络确实会随着每个附加层的增加而导出相关且更复杂的特征,尽管特征复杂度的差异随着每个附加层的增加而减小。可以利用更宽的时间跨度来挖掘时间局部相关性(1×9 – 1×14),并且显示较低的池化尺寸(1×2 – 1×3)是有益的。
— 《使用深度学习神经网络进行智能手机传感器的人类活动识别》,2016年。
有用的,他们还提供了CNN模型的完整超参数配置,这可能为新的HAR和其他序列分类问题提供一个有用的起点,如下表所示。

CNN模型超参数配置表
取自“使用深度学习神经网络进行智能手机传感器的人类活动识别”。
循环神经网络模型
循环神经网络,简称RNN,是一种神经网络,它被设计用于从序列数据中学习,例如随时间变化的观测序列,或句子中的单词序列。
一种特殊的RNN,称为长短期记忆网络,简称LSTM,可能是使用最广泛的RNN,因为其精心设计克服了在序列数据上训练稳定RNN的一般困难。
在处理手写识别、语言建模和机器翻译等任务时,LSTM已被证明在训练规模化的具有挑战性的序列预测问题上非常有效。
LSTM模型中的一个层由特殊的单元组成,这些单元具有控制输入、输出和循环连接的门,其权重将被学习。每个LSTM单元还具有内部记忆或状态,该状态在读取输入序列时累积,并可被网络用作一种局部变量或存储器寄存器。
有关长短期记忆网络的更多信息,请参阅帖子
与可以读取输入序列的CNN一样,LSTM读取一系列输入观测值,并形成其自身的输入序列内部表示。与CNN不同的是,LSTM的训练方式是特别关注在输入序列的时间步长上进行的观测值和预测错误,这被称为随时间反向传播。
有关随时间反向传播的更多信息,请参阅帖子
LSTM可以应用于人类活动识别问题。
LSTM学习将每个传感器数据窗口映射到一个活动,其中输入序列中的观测值一次读取一个,其中每个时间步可能包含一个或多个变量(例如并行序列)。
简单的LSTM模型在HAR问题上的应用有限。
一个例子是Abdulmajid Murad和Jae-Young Pyun在他们2017年的论文“《用于人类活动识别的深度循环神经网络》”中提出的。
重要的是,在论文中,他们评论了CNN在需要处理固定大小的传感器数据窗口方面的局限性,而LSTM则没有严格的限制。
然而,卷积核的大小限制了捕获数据样本之间依赖性的范围。因此,典型的模型无法适应广泛的活动识别配置,并且需要固定长度的输入窗口。
— 《用于人类活动识别的深度循环神经网络》,2017年。
他们探索了LSTM的使用,这些LSTM既可以处理数据的前向序列(正常),也可以处理双向序列(双向LSTM)。有趣的是,LSTM为传感器数据子序列的每个输入时间步预测一个活动,然后将这些活动聚合并以预测窗口的活动。
对于预测时间t发生的活动类型,将有一个得分。整个窗口T的预测是通过将各个得分合并为单个预测来获得的
— 《用于人类活动识别的深度循环神经网络》,2017年。
下面取自该论文的图提供了一个LSTM模型后跟全连接层用于解释原始传感器数据内部表示的示意图。

用于活动识别的LSTM RNN示意图
取自“用于人类活动识别的深度循环神经网络”。
在HAR问题上,更常见的是将LSTM与CNN结合使用,形成CNN-LSTM模型或ConvLSTM模型。
这是指使用CNN模型从原始样本数据的子序列中提取特征,然后由LSTM聚合解释CNN输出的特征。
一个例子是Francisco Javier Ordonez和Daniel Roggen在2016年的论文“《用于多模态可穿戴活动识别的深度卷积和LSTM循环神经网络》”。
我们提出了一种新的用于可穿戴活动识别的DNN框架,我们称之为DeepConvLSTM。该架构结合了卷积层和循环层。卷积层充当特征提取器,并提供特征图中输入传感器数据的抽象表示。循环层对特征图激活的时间动态进行建模。
— 《用于多模态可穿戴活动识别的深度卷积和LSTM循环神经网络》,2016年。
使用了一个深度网络架构,包含四个卷积层,没有任何池化层,然后是两个LSTM层,用于在多个时间步长上解释提取的特征。
作者声称,移除池化层是其模型架构的关键部分,因为在卷积层之后使用池化层会干扰卷积层学习对原始传感器数据进行下采样的能力。
在文献中,CNN框架通常连续包含卷积层和池化层,作为减少数据复杂性和引入平移不变特征的措施。尽管如此,这种方法并非严格是架构的一部分,并且在时间序列域 [...] DeepConvLSTM不包含池化操作,因为网络的输入受限于滑动窗口机制 [...],并且这一事实限制了对数据进行下采样的可能性,因为DeepConvLSTM需要数据序列由循环层进行处理。然而,如果没有滑动窗口的要求,池化机制可能有助于在更深的层中覆盖不同的传感器数据时间尺度。
— 《用于多模态可穿戴活动识别的深度卷积和LSTM循环神经网络》,2016年。
下面取自该论文的图使架构更加清晰。请注意,图像中的第6层和第7层实际上是LSTM层。

用于活动识别的CNN LSTM模型示意图
取自“用于多模态可穿戴活动识别的深度卷积和LSTM循环神经网络”。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
通用
- 基于传感器的活动识别深度学习:一项调查, 2018.
滑动窗口
- 《用于活动识别的动态滑动窗口方法》, 2011.
- 《窗口大小对人类活动识别的影响》, 2014.
CNN
- 《使用移动传感器进行人类活动识别的卷积神经网络》, 2014.
- 《基于分而治之的1D CNN人类活动识别及测试数据锐化》, 2018.
- 《使用可穿戴传感器和深度卷积神经网络进行人类活动识别》, 2015.
- 《使用深度学习神经网络进行智能手机传感器的人类活动识别》, 2016.
RNN
- 《用于人类活动识别的深度循环神经网络》, 2017.
- 《用于多模态可穿戴活动识别的深度卷积和LSTM循环神经网络》, 2016.
总结
在本帖中,您了解了人类活动识别的问题以及用于实现该问题最先进性能的深度学习方法。
具体来说,你学到了:
- 活动识别是根据传感器数据(如智能手机中的加速度计)来预测人运动的问题,通常是在室内进行的。
- 传感器数据流通常被分割成称为窗口的子序列,每个窗口与一个更广泛的活动相关联,这被称为滑动窗口方法。
- 卷积神经网络和长短期记忆网络,或者两者结合,最适合从原始传感器数据中学习特征并预测相关的运动。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
你能否举例说明识别任何人类活动?
我看不出为什么不。
Jason,你是否真的实现了一个例子?我很想看看。谢谢。
谢谢。
感谢您提供如此有价值的信息。
不客气。
请提供一个原型,以便我们了解如何将其用于我们的项目
我在博客上提供了许多人类活动识别(HAR)的例子。
感谢您撰写这篇精彩的文章,Jason。您知道哪种方法在分类准确性方面表现最好吗?我的研究指向 https://github.com/deadskull7/Human-Activity-Recognition-with-Neural-Network-using-Gyroscopic-and-Accelerometer-variables/blob/master/Human%20Activity%20Recognition%20(97.98%20%25).ipynb,声称准确率为 97.98%。
我没有尝试在 HAR 问题上获得最佳结果,只是演示了方法。
另外,您的链接已损坏。
抱歉,这是正确的链接
https://github.com/deadskull7/Human-Activity-Recognition-with-Neural-Network-using-Gyroscopic-and-Accelerometer-variables
干得好!
嗨,Jason,
非常感谢您将所有内容整合在一起。如果您能提供带有真实数据集的逐步实现,我们将不胜感激。
我在博客上有很多这样的例子,也许可以从这里开始
https://machinelearning.org.cn/start-here/#deep_learning_time_series
感谢 Jason 提供了这篇有趣的帖子。您是否有关于无标记动作捕捉(Markerless MoCap)或基于视频的活动识别的帖子?
谢谢
目前还没有,也许将来会有。
什么算法最适合 ARAS 数据集上的人类活动识别?
您必须测试一套算法,并找出最适合特定数据集的方法,更多细节请参见此处
https://machinelearning.org.cn/faq/single-faq/what-algorithm-config-should-i-use
嗨,Jason,
我感谢您分享这个教程,因为它很有用,其他的教程也是如此。
我已经在您的网站上阅读了一些教程和 GitHub 上的代码,但它们的应用程序专门针对远距离(摄像机与人之间距离很远)。但我正在寻找一些适用于某种情况的代码,即摄像机与人之间的距离很短,因为下面的链接在摄像机无法捕捉大空间(摄像机与人之间距离很短)的情况下效果不佳。
如果您有任何想法,我很乐意与您分享。
我快要到最后期限了,所以如果您能尽快回复我,我将非常感激。
我在 GitHub 上阅读的代码如下(专门针对人与摄像机之间的长距离):
#########################################################
https://github.com/koba/overhead-camera-people-counter
#############################################################
https://github.com/LukashenkoEvgeniy/People-Counter
###########################################################
https://github.com/akko29/People-Counter
建模方法会非常相似。
非常感谢 Jason 发表的帖子,我正在寻找一个关于基于移动传感器的人类活动识别的优秀博士论文课题,您对此领域有什么想法吗?我搜索和研究了很多论文,但找不到任何好的想法,如果您能帮助我找到一个新颖的想法,那将是莫大的荣幸……提前非常感谢您的关注????
没有,抱歉。
我有两个问题。
1- 在这种方法中,序列的时间步长被建模以预测类别(活动)。由于每个窗口都是一个时间步长序列,并且该序列使用 LSTM 进行建模。
我们也可以在这个模型中嵌入活动序列吗?如果要对活动序列进行建模,如何重塑数据?例如:行走 -> 坐 -> 站 -> 跑 等等。也许如果模型知道前一个活动的序列,它就能更好地预测类别。
2- 我认为,文章考虑了一个 10 分钟的序列。如果我有另一个序列,例如另一个用户由 8 分钟组成的活动序列,如何为 LSTM 对此数据进行建模?
是的,这是一个有趣的思路。
提出的问题假设活动的顺序是随机的。
如果您想添加过去的活动历史,也许可以使用多输入模型,并将活动类型序列作为第二个输入?
你好先生,
感谢这篇精彩的文章。
我们是否可以使用 ANN(深度 MLP)来处理上述时间序列数据?
或者是否总是必须使用 RNN 和 CNN 来处理时间序列?
您可以尝试所有三种方法,看看哪种最适合您的特定数据集。
你好先生,
我有点困惑 CNN 和 LSTM 是如何在此处读取和解释的……
CNN 实际上是一次读取整个数据窗口并尝试从中解释,而 LSTM 是逐个时间步进行解释……我在这里还没有一个清晰的视图……请帮忙
正如您所说,完全正确。
CNN 一次性读取整个区间,而 LSTM 则逐步遍历。
两者都在努力解释区间内的任何信号。
嗨 Jason,我真的很喜欢这项工作。感谢您的分享。
我想听听您对这个主题的看法。如果我们收集了 5 个不同人的足够多的活动数据,您认为使用这种方法我们是否可以识别这 5 个人以外的另一个人的活动?
谢谢。
或许可以试试看?
你试过这个吗?🙂
https://github.com/guillaume-chevalier/LSTM-Human-Activity-Recognition
我不知道你的项目,抱歉。
多么精彩的帖子,感谢分享。
谢谢!
工作很棒,非常有用。感谢分享 🙂
谢谢!
我的观点
我认为 CNN 类深度学习算法不足以在实时系统中进行分类。尽管该算法看起来合乎逻辑,但现有的函数在衡量系统成功方面是不正确的。需要新的算法结构。不适用于互联网的深度学习算法已经泛滥。我相信算法的成功率超过 75%。文章反映了现实。
我不完全同意。
我正在修改
我不相信算法的成功率超过 75%
我理解窗口的大小,但仍然不确定移位和重叠之间有什么区别,在 HAR 中,50% 的重叠是否与窗口之间 64 个数据移位(因为每个窗口包含 128 个数据)相同?
我猜它们不是独立的概念,而是紧密相关的——互相影响。
Jason 您好,感谢您分享的所有知识。您是否建议一个如何从用户数据中仅确定机动活动(如驾驶汽车和摩托车)的思路?
也许可以测试一套模型和模型配置,找出最适合您数据集的方法。
我正在研究实时检测羽毛球(不是对不同击球进行分类),哪种方法会更好?CNN LSTM、ANN 和滑动窗口概念在这种情况下可能也不合适,我猜。请帮忙。
我建议测试一套不同的模型和不同的问题框架,以找出最适合的方法。
感谢分享!
关于“用于多模态可穿戴设备活动识别的深度卷积和 LSTM 循环神经网络,2016 年”我有一个问题。
1.您能否更详细地解释为什么在
卷积层中不添加池化层?当“这会干扰卷积层学习对原始传感器数据进行下采样(您是指卷积层提取特征的能力)”时会发生什么?
2.该论文说“在没有滑动窗口要求的情况下,池化机制可以用于在更深层覆盖不同的传感器数据时间尺度”,但滑动窗口机制不是必需的(在活动识别链中的分段)吗?在深度学习中,没有滑动窗口如何进行 HAR?
不客气。
这有助于池化层
https://machinelearning.org.cn/pooling-layers-for-convolutional-neural-networks/
如果您对论文内容有疑问,请直接联系作者。
嗨 Jason,您能否告诉我如何加载 x,y,z 数据以及其他特征来进行模型构建?
也许可以从上面的教程开始,并根据您的需求进行调整。
我想要这个项目代码,它是如何工作的 lstm,请给我一些建议
没问题,看这里
https://machinelearning.org.cn/how-to-develop-rnn-models-for-human-activity-recognition-time-series-classification/
嗨 Jason,感谢分享。
我的工作也存在同样的问题。
略有不同,我得到了原始传感器数据,可能看起来像
x, y, z, activityWalk(%), activitySit(%), activityStand(%),
1.1, 2.1, 0.1, 33, 30, 37
1.2, 2.2, 0.2, 21, 39, 40
1.3, 2.3, 0.3, 14, 66, 20
传感器数据中存在活动概率
我想从中得到一些提示,谢谢。
不客气。
看起来不错,具体问题是什么?
Jason,感谢回复
它似乎是每 1 分钟 IMU 传感器数据的活动概率
我想训练 IMU 传感器数据以获得更高的活动概率
我应该参考哪个会话或模块?
我建议测试一套不同的数据准备方法、模型和模型配置,以找出最适合您数据集的方法。
这里的教程将帮助您入门
https://machinelearning.org.cn/start-here/#deep_learning_time_series
Jason,非常感谢您的教程
不客气。
你好 Jason,
我想使用 DBSCAn 从 HAR 数据集中进行聚类。我该如何进行?请建议。
谢谢
也许这可以给你一些想法
https://machinelearning.org.cn/clustering-algorithms-with-python/
谢谢杰森
内容很棒,令人惊叹。
谢谢。
你好,Jason
我正在做一个实时人类活动识别的项目,CNN 和 LSTM 是否真的可以在实时(使用树莓派和加速度计传感器)工作?
请给我答案
是的,我相信这些模型可以在简单硬件上用于实时预测。
这是我读过的最令人难以置信的博客之一。
谢谢!
尊敬的 Jason,感谢您分享了关于深度学习用于 HAR 的精彩概述!我们正在研究基于智能手机传感器的跌倒检测。最近我们发表了一篇文章:https://link.springer.com/chapter/10.1007/978-3-030-79457-6_52
其中我们使用了不同的分类器来检测跌倒。您能否建议您的一些模型,这些模型适合我们的数据集用于跌倒检测目的?另外,如果您能分享一些关于设备上数据处理的建议,那将很有趣。提前感谢您!
我建议测试一套算法和数据准备方案,以找出最适合您特定数据集的方法。
嗨 Jason!感谢您的内容。我对滑动窗口表示有些困惑。如果窗口中的所有时间步长不总是映射到只有一个活动(活动重叠),那么模型如何学会将一个窗口分类到特定活动?
嗨 Rohan……以下内容应该会更清楚
https://machinelearning.org.cn/time-series-forecasting-supervised-learning/#:~:text=The%20use%20of%20prior%20time,or%20size%20of%20the%20lag.
嗨 James,感谢您的回复。所以我的理解是,模型训练的方式(如果我错了请纠正我)是,对于一个窗口(训练样本),正确的分类是最后一个时间步的活动,然后根据该活动确定损失?
嗨 Rohan……不客气!您的理解是正确的。继续努力!
嗨 James。感谢这篇精彩的文章。
您提到了对所有上述深度学习模型使用原始传感器数据,但在我的情况下,我通过进行主成分分析(PCA)来预处理我的数据,从而创建了一个新的非原始数据集。
您是否了解如何输入 PCA 数据而不是原始数据?
谢谢。
嗨 Simon……我没有广泛使用那种方法。以下资源可能有助于提供一些见解
https://ashutoshtripathi.com/2019/07/11/a-complete-guide-to-principal-component-analysis-pca-in-machine-learning/
你好 James。如果我的数据集是以 25 Hz 收集的(这是一个公开可用的数据集)。那么在选择窗口大小时,这个 25 Hz 是否与窗口长度和重叠有关?
另外,如果我将此应用于实时,是否需要以 25 Hz 的速率流式传输数据?
你好 Georgy… 以下内容可能对您感兴趣
https://stats.stackexchange.com/questions/366387/how-to-decide-moving-window-size-for-time-series-prediction
感谢分享有用的文章,请继续分享更多
你好 Abogado… 不客气!感谢您的支持!