【论文导读】AI-Assisted Fatigue and Stamina Control for Performance Sports on IMU-Gene

论文名称:AI-Assisted Fatigue and Stamina Control for Performance Sports on IMU-Generated Multivariate Times Series Datasets

期刊:Sensors

时间:2024

提出了一种基于IMU(惯性测量单元)多变量时间序列数据的LSTM模型,用于实时预测运动员的疲劳(fatigue)和耐力(stamina)状态,从而实现个性化训练调控,避免过度训练和运动损伤

数据集

Multivariate Time Series data of Fatigued and Non-Fatigued Running from Inertial Measurement Units (0.0)

zenodo.org/records/100...

开源数据集,非作者团队采集,由Kathirgamanathan等人发布于Zenodo平台

数据内容

  • 来自19名健康跑者的IMU数据(3轴加速度、角速度、磁场方向)
  • 采样频率:256Hz
  • 实验流程:400米匀速跑 → 疲劳诱导(beep test) → 疲劳状态下400米跑
  • 标签:每段数据标注为"疲劳(F)"或"非疲劳(NF)"

仅使用IMU数据,无GNSS或其他传感器融合

主要工作

分类任务(短期状态识别),非路径预测或趋势预测

目标是对每一时刻的IMU数据判断运动员当前是否处于疲劳状态

深度学习模型

使用LSTM(Long Short-Term Memory)网络,用于捕获时间序列中的疲劳/耐力动态变化

输入为IMU多变量时间序列(3轴加速度、角速度、磁场),经过预处理(滤波、归一化、滑动窗口分段)

LSTM层用于捕捉时间依赖关系,输出层为Dense(2) + Softmax,进行二分类(疲劳/非疲劳)

原始数据采集模块

输入为Shimmer 3 IMU(佩戴再腰骶部)实时采集,维度 (T_{raw}, 9)

  • 包含3轴加速度 ax, ay, az、3轴角速度 ωx, ωy, ωz、三轴磁场 mx, my, mz
  • T_{raw} ≈ 25 600 点(100 s × 256 Hz),这里的25600是时间维长度

把9维原始IMU通道堆成一个张量,为后续同步处理做准备

预处理 & 滑动窗口切片

输入为 (T_{raw}, 9) 原始张量

通过 Butterworth 低通滤波 → 去重力 → z-score 归一化

输出 (N_{window}, W, 9)

  • 窗口长度 W = 128 点(0.5s窗口,与步频对齐)

  • 步长 Stride = 10 点

  • 窗口个数 N_{window} 计算,N_{window}

    = floor((T_{raw}-W)/stride)+1

    = floor((25600-128)/10)+1

    = 2547+1=2548

切分完后的张量形状:(2548, 128, 9)

滤掉高频噪声、统一量纲 ,并把长序列切成可批量送入 LSTM 的小段

特征工程(可选通道融合)

输入 (N_{window}, W, 9)

  • 计算合加速度 a_{mag} = √(ax²+ay²+az²)
  • 计算合角速度 ω_{mag} = √(ωx²+ωy²+ωz²)

可以选择将上述2个通道的数据也加入,将9维拓展到11维

输出 (N_{window}, W, F) ,其中 F=9;默认实验没有加上上述2个通道,如果做消融/增广实验可采用

给网络提供更高阶的运动强度描述,提高信噪比

LSTM时序编码器

把上述 (N_{window}, W, F) 再按batch_{size}=32切成小批,tf.data.Dataset.batch(32)

输入LSTM (batch, W, F) ,维度 (32, 128, 9)

LSTM 参数

  • hidden_{size} = 64
  • num_{layers} =2 (双向)
  • dropout = 0.2

LSTM层在 PyTorch/TF 里的 return_sequences 开关决定形状:

  • False(默认) :只返回 最后一个时间步 的 hidden state shape = (batch, hidden_size)
  • True :返回 所有时间步 的 hidden sequence shape = (batch, W, hidden_size)

论文中取最后一时间步的隐藏状态,输出 (batch, 64)

捕获 0.5 s 窗口内的步态动力学模式,映射成定长向量 h_t​

全连接分类头

输入64维步态特征向量 (batch, 64)

  • Dense(32, relu)

    • 计算矩阵W1形状(64, 32),偏置b1形状(32,)
    • 计算h1=relu(x @ W1 + b1)
    • 输出(batch, 32)
  • Dropout(0.3)

    • 训练阶段按概率 0.3 随机把 32 个神经元置 0,并缩放剩余值 ×1/(1-0.3)
    • 推理阶段不做任何操作,直接透传
    • 输出形状不变 (batch, 32)
  • Dense(2, softmax)

    • 权重矩阵W2形状(32,2),偏置b2形状(2,)
    • 计算logits = h1 @ W2 + b2
    • softmax: p=softmax(logits)
    • 输出(batch, 2) 每行[P(NF), P(F)],概率和为 1

把LSTM的64维表征映射到二分类空间,输出"非疲劳 vs 疲劳"置信度

损失计算与反馈

标签 (batch, ) 0=NF, 1=F

损失Categorical Cross-Entropy:−∑ y_{i} log(p_{i})

交叉熵损失衡量"预测概率离真实标签多远";

优化器:Adam(lr=1e-3, deacy=1e-5)

  • Adam(Adaptive Moment Estimation)是一种自适应学习率的梯度下降算法,利用梯度的一阶、二阶动量自动给每个参数调步长
  • lr是初始学习率(learning rate),控制每一步沿梯度方向走多远
  • decay是学习率衰减系数(weight decay/lr decay),每轮 epoch 后把 lr 乘一个略小于 1 的因子,防止震荡、帮助收敛

输出:标量loss

驱动网络更新,使预测概率逼近真实疲劳标签

补充:Dense

Dense层 (全连接层,Fully Connected Layer):每个神经元与前一层的所有神经元相连接,因此称为"全连接"。

功能:对输入数据进行加权组合 (线性变换)和非线性激活,用于提取高阶特征或进行分类。

输入:任意维度的数据(通常会被展平为一维向量)。

输出:固定维度的向量(由神经元数量决定)。

计算过程:

  • 线性变换输出 = 权重矩阵 × 输入向量 + 偏置向量
  • 非线性激活:通过激活函数(如ReLU、Sigmoid)增加非线性表达能力。

参数数量公式:参数数量 = 输入维度 × 输出维度 + 输出维度

示例:输入维度为 256,输出维度为 128 → 参数数量 = 256×128 + 128 = 33,024

参数量大,容易导致过拟合或计算成本高(尤其在输入维度高时)。

主要作用:

  • 特征组合:整合前一层的局部特征,生成全局特征。
  • 分类/回归:常用于神经网络的最后几层,输出预测结果(如分类概率)。
  • 非线性建模:通过激活函数拟合复杂的数据分布。

优点:

  • 强大的表达能力,适合复杂模式学习。
  • 实现简单,通用性强。

缺点:

  • 参数量大,易过拟合。
  • 丢失空间信息(如处理图像时需先展平输入)。

补充:优化器

优化器是自动找使损失函数最小的参数

给定损失 L(θ) 和当前梯度 ∇L​,优化器决定

θ ← θ − η · update(∇L)

它就是"封装好的梯度下降改进版",免去了手写学习率、动量、二阶矩等细节

常见替代优化器

名称 特点 适用场景
SGD 最朴素,可加动量 大 batch、简单任务
SGD+Momentum 加速收敛、抑制震荡 CNN 经典搭配
AdaGrad 自适应但累计平方梯度会单调降 稀疏梯度(NLP)
RMSprop AdaGrad 改进,梯度平方滑动平均 RNN、LSTM 常用
Adam 综合 Momentum + RMSprop 默认首选
AdamW 把 weight decay 从梯度里解耦 Transformer、大模型
Nadam Adam + Nesterov 动量 对凸问题更快

模型性能对比

模型类别 模型名称 Accuracy Precision Recall F1 Score
传统ML Random Forest 50.51% 52.33% 47.67% 49.57%
传统ML Decision Tree 50.66% 52.11% 50.50% 51.15%
传统ML SVM (Linear) 49.12% 47.02% 77.91% 54.39%
深度学习 LSTM 59.00% 61.00% 60.00% 60.00%
相关推荐
沐怡旸5 小时前
【算法--链表】109.有序链表转换二叉搜索树--通俗讲解
算法·面试
鲸鱼在dn5 小时前
Transformer 架构的演进与未来方向(RNN → Self-Attention → Mamba)——李宏毅大模型2025第四讲笔记
rnn·深度学习·transformer
小胖墩有点瘦5 小时前
【基于深度学习的中草药识别系统】
人工智能·python·深度学习·课程设计·计算机毕业设计·中草药识别
CoovallyAIHub5 小时前
推理提速一倍!SegDT:轻量化扩散 Transformer,医学图像分割的技术跨越
深度学习·算法·计算机视觉
CoovallyAIHub5 小时前
无人机方案如何让桥梁监测更安全、更智能?融合RTK与超高分辨率成像,优于毫米精度
深度学习·算法·计算机视觉
lingran__5 小时前
C语言制作扫雷游戏(拓展版赋源码)
c语言·算法·游戏
self_myth5 小时前
【考研/面试必备】操作系统核心原理与IPO机制深度解析
大数据·算法
Greedy Alg6 小时前
LeetCode 240. 搜索二维矩阵 II
算法·leetcode·职场和发展
墨染点香6 小时前
LeetCode 刷题【68. 文本左右对齐】
算法·leetcode·职场和发展