- 论文 - 《CrossHAR: Generalizing Cross-dataset Human Activity Recognition via Hierarchical Self-Supervised Pretraining》
- 代码 - Github
- 关键词 - 人体活动识别HAR、域适应、传感器数据IMU、自监督预训练、ACM Ubiquitous2024
摘要
- 研究背景
- 在 人体活动识别(HAR) 中,跨数据集活动识别中的域迁移问题是一个主要挑战,该问题源于源数据集与目标数据集之间在用户、设备类型以及传感器放置位置上的差异。
- 尽管已有域适应方法在一定程度上展现出潜力,但它们通常在训练过程中需要访问目标数据集,这在某些实际场景中可能并不现实。
- 本文工作 - CrossHAR
-
一种新型的人体活动识别模型,旨在提升模型在未见过的目标数据集上的表现性能。
-
CrossHAR 包含三个主要步骤:
- CrossHAR 探索传感器数据生成原理,以拓展数据分布并增强原始传感器数据;
- CrossHAR 使用增强后的数据进行层次化的自监督预训练,从而学习具有泛化能力的特征表示;
- 最后,CrossHAR 在源数据集中使用少量有标签数据对预训练模型进行微调,以提升其在跨数据集 HAR 任务中的性能。
-
1 引言
- HAR的一个主要挑战是域迁移问题,即训练数据与测试数据分布差异。“域”通常指影响传感器读数的因素,例如用户群体和传感器放置位置等。域迁移主要出现在以下两种场景中:
- 跨域(cross-domain)识别 :训练和测试数据来自同一数据集中的不同域。例如,训练数据来自用户 A,而测试数据来自同一数据集中的用户 B。
- 跨数据集(cross-dataset)识别 :源数据集(训练)和目标数据集(评估)通常由不同的研究团队采集,遵循各自的数据收集协议,导致在用户群体、设备类型、传感器放置方式以及采集规范等多个方面存在差异。
- 跨数据集设置下的 HAR 涉及异构的域迁移问题,具有更高的复杂性和挑战性。
- 作者实验验证了,在UCI和HHAR数据集上,跨数据集识别的准确率下降42.39%,而跨域仅下降了6.77%。
- 现有工作
- 为缓解 HAR 中域迁移带来的挑战,已有多种方法被提出。尽管其中只有少数专门针对跨数据集 HAR,但部分相关思路仍具有借鉴意义 [42, 51]。
- 域适应 是一种广泛研究的技术,旨在通过在训练阶段引入源域和目标域的数据来弥合二者之间的差距。该方法通过对齐不同域的表示空间来提升模型性能。然而,这种方法通常假设在训练过程中可以访问目标域数据,这在许多实际场景中并不现实。
- 在实践中,模型往往需要在没有先验目标数据的情况下泛化到多个新环境中 [53]。在这种限制条件下,域泛化 成为更具前景的方法。该方法仅使用源域数据进行训练,旨在在未见过的目标域上保持鲁棒性能。其核心思想是学习能够适用于多个域的域不变特征表示 。
- 然而,目前大多数域泛化方法要么不是专门为 IMU 传感器数据设计的,要么未能充分利用 IMU 数据的独特特性。此外,利用 无标签数据 来增强模型泛化能力的潜力仍有待深入探索。
- 设计启发来源:
- (1)大规模无标签传感器数据的积累 。这些无标签传感器数据中蕴含的丰富信息有可能显著增强人体活动识别模型的泛化能力。通过将这些无标签数据引入训练过程,我们可以揭示出适用于多个未见过域的潜在模式和表示。
- (2)自监督预训练模型 。预训练在CV和NLP领域显著提升了模型泛化能力。这些模型通常使用自监督损失函数在大规模无标签数据集上进行预训练。目前,关于 无标签数据是否以及如何提升基于传感器的 HAR 模型泛化能力 的研究仍非常有限。
- 本文工作 - CrossHAR
- 仅利用源数据集的数据来提升跨数据集 HAR 的性能,由以下三个精心设计的组件组成:
- (1)物理感知的传感器数据增强:通过对源数据集与目标数据集之间性能差距的系统分析,作者设计了一种基于物理特性的数据增强算法,以提升在源数据集上训练模型的泛化能力。
- (2)层次化的传感器数据预训练: 为了有效利用无标签数据,作者设计了一个“局部-全局”层次化的自监督预训练模型。具体包括:
- 设计一种 掩码传感器建模方法 ,用于捕捉传感器数据中的局部模式;
- 设计一个 对比学习预训练目标,通过正则化预训练过程来捕捉全局模式。
- (3)微调活动识别: 最后,利用源数据集中少量有标签数据对预训练模型进行微调,使其适应目标数据集上的活动识别任务。
2 预备知识与问题定义
-
域迁移分为两种:跨域和跨数据集。
-
跨数据集HAR更具挑战性,因为源数据集和目标数据集在多个方面都可能存在显著差异,包括:用户群体、设备放置位置、设备类型、采样率和数据采集流程。
-
模型训练范式
- 分为三种:(1)源数据集训练,并用目标数据集微调;(2)源数据集和无标签的目标数据集训练;(3)仅使用源数据集训练。
- 本文旨在设计范式(3)的框架,以实现泛化的HAR。
-
问题定义
- 给定一个包含 IMU 样本 (x_i) 和对应的人体活动标签 (y_i) 的源数据集 D_{\text{source}} = \{(x_i, y_i)\}_{i=1}^{n_s},目标是学习一个模型 M(., \Phi): \mathcal{X} \to \mathcal{Y},该模型能够泛化到未见过的目标数据集 D_{\text{target}} = \{(x_i, y_i)\}_{i=1}^{n_t} 上进行人体活动识别。其中,n_s 和 n_t 分别表示 D_{\text{source}} 和 D_{\text{target}} 中的样本数量。\mathcal{X} 是输入空间,\mathcal{Y} 是标签空间。需要注意的是,目标数据集 D_{\text{target}} 只在测试阶段可用。
- 源数据集 D_{\text{source}} 包含两个子集:
- 有标签子集 D_{\text{source}}^L = \{(x_i, y_i)\}_{i=1}^{n_l}:用于监督微调。
- 无标签子集 D_{\text{source}}^U = \{(x_i, y_i)\}_{i=n_l+1}^{n_l+n_u}:用于自监督预训练。
- 本文关注低资源场景,即 n_l < n_u,例如 n_l : n_u = 1:9。
- 自监督预训练生成预训练模型 M(., \Theta),然后通过监督微调过程获得最终的微调模型 M(., \Phi)。
3 框架设计
CrossHAR,用于提升跨数据集 HAR 的性能。结构如图3所示,包含三个模块,后面详细介绍。

- 物理感知的传感器数据增强
CrossHAR 的第一个组成部分是物理感知的传感器数据增强模块。通过对多个数据集中的 IMU 数据进行分析,作者发现传感器读数之间的显著分布差异。
受加速度计和陀螺仪传感器数据生成原理的启发,设计了一种基于物理特性的数据增强方法,以增强源数据集中的 IMU 数据,使其更接近目标数据集的分布。
- 层次化的传感器数据预训练
CrossHAR 的第二个组成部分是基于掩码传感器建模和对比正则化的预训练机制。
- 首先,借鉴语言模型的结构,识别并学习 IMU 数据中的局部特征,从而更好地理解 IMU 数据中固有的模式与关系;
- 接着,引入一个对比正则化模块,进一步提升自监督学习过程以及模型的泛化能力。
该层次化预训练范式使模型能够从无标签数据中学习到具有域不变性的传感器特征表示。
- 微调活动识别
CrossHAR 的第三个组成部分是仅使用源数据集的监督训练模块。
- 在预训练阶段之后,CrossHAR 通过一个轻量级的监督分类层进行微调;
- 使用少量有标签数据,使模型能够准确地识别和分类不同的活动;
- 微调阶段对于将预训练模型与具体的 HAR 任务对齐至关重要。
3.1 物理感知的传感器数据增强
3.1.1 动机
当从源数据集迁移到目标数据集时,导致性能下降的一个主要原因是设备方向的异构性。具体来说,IMU 数据包含来自三个轴(x、y 和 z)的传感器读数,用于表示加速度和角速度的方向与大小。这些数值直接受到智能手机屏幕朝向的影响,而由于用户的使用习惯和设备摆放方式不同,手机屏幕相对于用户的方向可能是随机变化的。
因此,即使进行相同的活动,这三个轴上的数值分布也可能存在显著差异。
举个例子,在图4(a)中展示了智能手机相对于用户的不同朝向。虽然大多数公开数据集中,同一数据集内的三通道数据具有相似的分布;但在不同数据集之间,由于采集过程中的不确定性,各通道的分布差异显著。
如图4(b)所示,在“坐”和“走”两种活动中:在 Motion 数据集中,y 轴值最高;而在 HHAR 数据集中,z 轴值最高;并且 Motion 的方差明显高于 HHAR。
因此,仅在源数据集上训练的模型,在目标数据集上会因显著的分布偏移而表现不佳。

3.1.2 算法设计
为了缓解这种分布偏移问题,作者设计了一种传感器数据增强算法,以提升模型的泛化能力。
基本思想:通过合理模拟设备运动过程,可以增加数据多样性,从而提升模型的泛化能力。受基于旋转的数据增强方法在加速度计传感器上的启发,作者设计了坐标变换机制,以生成来自不同方向的传感器读数。具体而言,同时对加速度计和陀螺仪的三个通道进行旋转操作(加速度计和陀螺仪中相同通道的旋转角度保持一致)。
由于方向是连续的,可以生成无限多的 IMU 样本。为了提高模型训练效率并减少数据冗余,作者采用生成六个相互正交方向的方式。
给定当前设备方向 (x, y, z),我们可以生成以下六种轴排列组合(对应六种旋转角度):(x, y, z)、(x, z, y)、(y, x, z)、(y, z, x)、(z, x, y) 和 (z, y, x)。同样的轴排列方式同时应用于加速度计和陀螺仪数据。这意味着:每一个原始传感器数据样本都会被扩展为六个彼此正交的新样本,从而有效提升模型对设备方向变化的鲁棒性。
在我们的设置中,一个 IMU 样本 x_i 包含一个加速度计传感器 Acc_i 和一个陀螺仪传感器 Gyro_i,两者都由三个通道组成。具体表示为:
以加速度计为例来说明方法,使用一个变换矩阵 A,这是一个 3 \times 3 的矩阵,用于通过交换三个通道的顺序来转换原始传感器数据:
其中,a_{rc} 是矩阵 \mathbf{A} 中的值,r, c \in \{1, 2, 3\},且 a_{rc} \in \{0, 1\}。通过将 Acc_i 与变换矩阵 \mathbf{A} 相乘,可以得到变换后的或增强的传感器数据。例如,增强后的加速度计数据 Acc_i^{aug} 如下所示:
生成增强后的陀螺仪数据的过程与加速器数据完全相同。通过结合变换后的加速度计和陀螺仪,可以获得增强后的 IMU 数据 x_i^{aug}。总体而言,IMU 样本的数量被增加到原来的六倍。为了简化表示,在增强后的数据集中,我们仍然使用 x_i 来表示 IMU 样本。
捕获多样化的数据采集场景,从而可能提升 HAR 模型的性能。
3.2 层次化传感器数据预训练
在获得基于物理特性的增强传感器数据后,下一步是设计一个自监督学习算法,以学习具有泛化能力的传感器表示。
直观来看,IMU 传感器数据中的局部模式和全局模式都对 HAR 任务有益:
- 局部模式:指的是 IMU 样本中特定的短期模式或行为,例如方向的瞬时变化、加速度的突变、旋转速率等。这些模式捕捉了短时间内发生的特定动作或事件(如设备旋转)。
- 全局模式:则反映了 IMU 数据的整体趋势。
因此,作者设计了一个层次化的预训练策略:
- 使用 掩码传感器建模 来捕捉局部传感器模式;
- 紧接着使用 对比正则化 来建模全局传感器模式。
通过这种层次化预训练设计,我们可以在表示空间中更好地捕捉 IMU 传感器的运动与行为特征,从而提升跨数据集 HAR 的性能。
3.2.1 掩码传感器建模预训练
动机:物理感知数据增强方法缓解了源数据集和目标数据集中不同通道之间的分布差异,但每个通道内部仍可能存在显著差异。如前面的图4(c)所示,在 Motion 数据集中加速度计的 y 轴数值明显高于 HHAR 数据集中的对应值。因此,直接在源数据集上进行预训练,在迁移到目标数据集时仍会面临显著的分布偏移问题。
为了解决这一问题,作者提出了一种传感器数据归一化方法。
传感器数据归一化
直观来看,传感器数据的统计特性会随着时间以及采集环境的变化而变化。因此,目标数据集中的传感器数据分布可能与源数据集存在显著差异,这可能会降低模型的泛化性能。在时间序列预测任务中,已有研究提出可逆(reversible)实例归一化 来缓解域迁移问题。该方法通过去除并恢复时间序列样本的统计信息,来减少多个域之间的分布差异。
不同于预测任务,我们在 CrossHAR 中仅在输入阶段应用归一化操作,以对齐源域与目标域之间的数据分布。我们假设,从传感器数据的形状或趋势中就可以区分不同的活动,因此归一化不会带来负面影响。具体来说,参考已有研究,对每个通道(轴)维度分别进行实例归一化,以避免破坏原始通道特有的属性,并稳定学习过程。该归一化方式通过对每个数据点减去其均值并除以其标准差来实现。
传感器掩码(Sensor Masking)
受 LIMUBERT 的启发,作者在预训练过程中对多个 IMU 段进行掩码。给定一个 IMU 样本 x_i,其一段传感器数据表示为 x_i^j,其中 x_i^j 是从位置 j 开始、长度为 L_{\text{mask}} 的段,满足 1 \leq j \leq L - L_{\text{mask}} 且 1 \leq L_{\text{mask}} \leq L, x_i \in \mathbb{R}^{L×D}。这里,L 表示 IMU 样本的长度,D 表示 IMU 样本的维度数(通道数)。

(①)、(②) 和 (③):对于 x_i 的每个通道,每次掩码多个段而不是几个点。被掩码的段 x_i^j 被替换为零。传感器掩码操作 \text{SensorMask}(\cdot) 如下所示:
(④) :在完成传感器掩码过程后,得到一个新的样本批次 \bar{x}_i^j。编码器 \text{Encoder}(\cdot) 基于 BERT 模型中的多头注意力机制设计。掩码后的样本被转换为隐层表示 z_i,如下所示:
(⑤):基于隐层表示 z_i,通过自监督预训练引导模型学习泛化能力更强的特征。首先,基于 BERT 实现了一个解码器 \text{Decoder}(\cdot),用于解码 z_i 并预测/重构每个样本中的掩码段\hat{x}_i,如下所示:
(⑥):根据原始样本 x_i 和重构样本,使用均方误差(MSE)损失计算差异。该损失 \mathcal{L}_m 用于更新预训练步骤中的模型参数:
其中,j 表示原始样本中掩码段的位置;x_i^{-j} 表示仅计算掩码段的重构损失,忽略其他部分。
3.2.2 对比正则化
公式(7)中隐层表示的批次 \{z_i\}_{i=1}^N 还会进入另一个分支,即Regularization(·) 模块,该模块基于对比学习实现。该模块的设计动机有两个方面:
- 掩码传感器建模预训练能够捕捉 IMU 数据的局部模式,但不能捕捉全局模式。
- 无监督对比学习已被证明在CV和BLP中的分类任务中有效捕捉域不变的全局模式。因此,作者设计了一个对比正则化模块来对 IMU 数据的自监督预训练过程进行正则化。
无监督对比学习的核心思想:通过比较利用原始数据的内在特性来进行学习。首先,给定一个原始样本,根据数据特性生成正样本(相似)和负样本(不相似)。通过将正样本对与负样本对进行对比,模型学会识别并封装数据中的底层相似性和差异性。其基本目标是在表示空间中最小化正样本对之间的距离,同时最大化负样本对之间的距离。

正样本对的构建
如图6(a)所示,给定一个 IMU 样本 x_i,我们根据 IMU 数据的特性构建 x_i 的两个视图。为了提高学习到的表示的鲁棒性,作者采用了现有的变换方法并设计了 h 和 h'。
- h 表示对原始 IMU 样本进行缩放并改变其测量结果,从而得到第一个增强样本。具体来说,缩放过程如下:首先,我们生成一个高斯分布 \mathcal{N}(2, 1.1),均值和标准差的选择遵循现有研究。然后,对于每个时间步,从该高斯分布中随机采样一个值,并将其乘以传感器数据所有通道在该时间步的值,从而实现缩放。
- h' 表示将 IMU 数据分割成多个段,并通过添加随机噪声来打乱不同段的位置,从而得到第二个增强样本。这样,我们从包含 N 个样本的原始批次中获得了 2N 个样本 (x_i^- 和 x_i^+)。
在图6(a)中,f 表示公式(7)中的 Encoder(·)。g 是 Regularization(·) 模块,它使用 Transformer 模型将 z_i^- 和 z_i^+ 转换为上下文化的隐层表示 r_i^- 和 r_i^+。Regularization(·) 模块学习上下文化的 IMU 表示,全面捕捉 IMU 数据段内的依赖关系和复杂性,从而提升学习到的表示的泛化能力。最后,Projection(·) 模块 p 将 r_i^- 和 r_i^+ 转换为最终表示 s_i^- 和 s_i^+。我们使用一个简单的 MLP 模块实现 p。因此,我们得到了正样本对 <s_i^-, s_i^+>。
负样本对的构建
负样本对的构建如图6(b)所示。将不同的样本组合起来构建负样本对,例如,将 s_i^+ 与 s_j^- 和 s_j^+ 组合,其中 i \neq j。对于每个样本 s_i,可以构建 2(N-1) 个负样本对。
图6(c) 中展示了 IMU 数据的对比学习思想。增强后的两个视图 s_i^+ 和 s_i^- 都作为锚点(anchors)。在预训练过程中,模型的目标是最大化锚点与负样本之间的距离,同时最小化与正样本之间的距离。因此,对比正则化损失定义如下:
其中:
- sim 是衡量相似性的函数;
- s_i^+ 表示增强的正样本;
- s_j 表示增强的负样本;
- \mathbb{1}_{[j \neq i]} \in \{0, 1\} 是一个指示函数,用于过滤计算,当 j == i 时跳过计算。
3.2.3 自监督预训练
在获得掩码传感器重构损失 \mathcal{L}_m 和对比正则化损失 \mathcal{L}_r 后,可以使用源数据集 D_{\text{source}} 中的无标签数据来更新模型。整体损失函数是 \mathcal{L}_m 和 \mathcal{L}_r 的组合:
其中,\alpha 和 \beta 分别表示两个损失的权重。然而,作者注意到这两个损失的收敛速度不同。因此,直接使用整体损失 \mathcal{L} 优化模型可能无法收敛到优化空间中的良好位置。因此,首先使用重构损失 \mathcal{L}_m 更新模型若干轮次,因为 \mathcal{L}_m 的收敛速度比 \mathcal{L}_r 更慢。然后将 \mathcal{L}_m 和 \mathcal{L}_r 一起更新更多轮次,直到损失不再下降。
3.3 微调活动识别
在完成自监督预训练后,得到了一个能够提取 IMU 样本特征表示的预训练模型 \mathcal{M}(., \Theta)。接下来,使用源数据集中带活动标签的子集对预训练模型进行微调,以使其与活动类别对齐。为了捕捉时间信息,在预训练模型之上添加了一个轻量级 Transformer(·) 模块:
其中,\mathcal{M}(., \Theta)(x_i) 表示使用预训练模型从输入的 IMU 样本 x_i 中提取特征表示。x_i 是源数据集中的一个 IMU 样本。然后,为了交互样本表示 o_i 中的特征并捕获通道间的相关性,我们引入了简单的 MLP 层实现的 FeatureMixer(·) 模块:
其中,\hat{y}_i 是预测的活动标签。对于活动识别任务,采用交叉熵损失作为损失函数 \mathcal{L}_{\text{Classification}} 。基于分类损失 \mathcal{L}_{\text{Classification}} 对微调过程进行优化,直至收敛。
通过结合掩码传感器重构、对比正则化和活动识别微调,获得了最终训练好的模型 \mathcal{M}(., \Phi)。
4 实验
- 实验从下面五个角度展开
- 可靠性:SOTA对比
- 可扩展性:无标签训练数据规模
- 可解释性:关键组件消融
- 敏感性:不同参数值下
- 可行性:当部署在移动设备上时,CrossHAR 的有效性与效率如何?
- 数据集:UCI、Shoaib、Motion、HHAR
- 数据集预处理:为了获得一致的标签空间和特征空间,从这四个数据集中选取共享的5个重要活动类别;采样率下调;使用统一的时间窗口划分。
- 基线
- 无训练模型:MLP/CNN/ResNet/LSTM/TSFCN
- 有预训练模型:LIMUBERT/ContraTSC
- 最先进的 IMU 域泛化模型:SDMix
- 表3 一个源,多个目标,跨数据集设置

- 表4 非迁移设置下的结果

- 表5 多个源,一个目标,跨数据集设置
- 数据集取首字母缩写,例如第一行的HMS表示在HHAR+Motion+Shoaib上预训练。

- 图8消融
- w/o Ins表示传感器归一化、Lm表示传感器建模损失\mathcal{L}_m,Aug表示物理感知的数据增强,\mathcal{L}_r表示对比正则化损失。
