电子产业一站式赋能平台

PCB联盟网

搜索
查看: 17|回复: 0
收起左侧

如何在低算力MCU平台上优雅的计算均值和方差

[复制链接]

21

主题

21

帖子

-1911

积分

限制会员

积分
-1911
发表于 昨天 18:02 | 显示全部楼层 |阅读模式
一维数据的均值和方差计算可以说是几乎是最常用的统计分析方法。这个初中就学过的概念,在嵌入式系统中却有着广泛的实际应用:
  • 传感器故障检测
  • 正常工作的传感器数据波动应在一定范围内
  • 突然的均值漂移或方差剧变,往往意味着传感器故障
  • 如温度传感器读数突然剧烈波动,很可能是接触不良
  • 信号质量评估
  • GPS信号强度的均值和方差可以反映定位质量
  • 方差过大说明信号不稳定,可能处于多路径效应区域
  • 均值过低说明信号较弱,可能在遮挡环境下
  • 机器人控制
  • 舵机位置反馈的方差可以用来检测是否卡死
  • 电机电流的均值可以估计负载大小
  • 轮速反馈的方差可以判断地面情况
  • 电池管理
  • 电压的滑动均值可以平滑瞬时波动
  • 电流的方差可以反映负载的稳定性
  • 温度的异常波动可能预示电池问题
    这些场景都需要实时、高效地计算数据流的统计特征。虽然计算公式简单,但在实际工程中,有限的资源限制及实时性要求、数值稳定性和存储效率成为主要挑战。本文主要探讨如何在有限的计算能力和内存条件下,优雅地实现高效的均值和方差计算。通过优化算法、减少计算复杂度、利用递推公式和定点数运算,文章提供了一系列使用技巧,帮忙开发者在保持精度的同时,显著降低计算开销。这些方法特别适用于物联网设备、嵌入式系统等对资源敏感的领域。
    基础知识
    1.1 定义
    众所周知: 均值(mean)反映数据的集中趋势:

    方差(variance)反映数据的离散程度:

    基于以上两个定义式出发,可以很简单的转换为C code, 浅显易懂:

    使用示例:

    但是这种最基础的实现存在几个严重问题:
    1) 数据存储问题
  • 需要保存全部历史数据
  • 对于高频采样的传感器(如IMU 200Hz),1s就需要存储200个数据点
  • 在嵌入式系统中,内存资源宝贵,这种方式极其浪费2)计算效率问题
  • 每次计算都需要遍历全部数据,时间复杂度为O(n)
  • 对于实时系统,随着数据量增加,计算延迟会越来越大
  • 不适合需要快速响应的实时控制系统3)数值稳定性问题
  • 直接累加可能导致数值溢出
  • 对于很大或很小的数据,浮点数精度损失明显
  • 特别是在计算方差时,(Xi-u)的计算可能产生很大的舍入误差4)实时性问题
  • 无法进行增量计算
  • 新数据到来时需要重新计算所有统计量
  • 不适合流数据处理在线算法(Online Algorithm)
    在线方法也叫做流式方法, 针对批量方法的缺点,在线方法不需要保存历史数据,在线算法中比较经典的是 Welford算法。Welford算法是由B.P. Welford在1962年提出的一种在线计算均值和方差的算法。它的核心思想是:每来一个新数据,就递增地更新均值和方差,而不需要存储所有历史数据。
    2.1 Welford算法 这是一种数值稳定的在线算法,特别适合处理数据流。Welford算法的核心是递推公式的推导。设第n个数据到来时:
    1) 均值更新

    2) 方差更新:

    3) 关键推导步骤:

    2.2 Welford算法实现2.2.1 核心结构和函数


    2.2.2 使用示例

    2.2.3 算法步骤解释1) 每次新数据到来:
  • 计数加1
  • 计算新数据与当前均值的差
  • 更新均值
  • 更新M2(用于方差计算)2) 方差计算:
  • 直接用M2除以样本数
  • 样本数小于2时返回0算法对比小结
    本文介绍了Welford方差计算方法,它是一种在线、一次遍历的方差计算算法,能在不存储所有样本的情况下,逐步计算所有样本的方差。与传统的方差计算方法相比,Welford方法在降低访存次数的同时,也做到了数值计算的稳定性。因此,Welford方法更适合处理海量数据,也更适合在高性能计算环境中使用。事实上,Welford算法启发了 NVIDIA 在2018年提出的Online Softmax算法,该算法降低了Softmax计算的访存次数,提高了计算性能。而Online Softmax则直接启发了FlashAttention,后者已经成为支撑当前最流行的Transformer架构的最核心的计算优化手段。
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表