全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

恩智浦讲解如何在低算力MCU平台上优雅的计算均

时间:2025-03-06 08:56

人气:

作者:admin

标签: mcu  恩智浦 

导读:本文主要探讨如何在有限的计算能力和内存条件下,优雅地实现高效的均值和方差计算。通过优化算法、减少计算复杂度、利用递推公式和定点数运算,文章提供了一系列使用技巧,帮...

一维数据的均值和方差计算可以说是几乎是最常用的统计分析方法。这个初中就学过的概念,在嵌入式系统中却有着广泛的实际应用:

传感器故障检测

正常工作的传感器数据波动应在一定范围内

突然的均值漂移或方差剧变,往往意味着传感器故障

温度传感器读数突然剧烈波动,很可能是接触不良

信号质量评估

GPS信号强度的均值和方差可以反映定位质量

方差过大说明信号不稳定,可能处于多路径效应区域

均值过低说明信号较弱,可能在遮挡环境下

机器人控制

舵机位置反馈的方差可以用来检测是否卡死

电机电流的均值可以估计负载大小

轮速反馈的方差可以判断地面情况

电池管理

电压的滑动均值可以平滑瞬时波动

电流的方差可以反映负载的稳定性

温度的异常波动可能预示电池问题

这些场景都需要实时、高效地计算数据流的统计特征。虽然计算公式简单,但在实际工程中,有限的资源限制及实时性要求、数值稳定性和存储效率成为主要挑战。

本文主要探讨如何在有限的计算能力和内存条件下,优雅地实现高效的均值和方差计算。通过优化算法、减少计算复杂度、利用递推公式和定点数运算,文章提供了一系列使用技巧,帮忙开发者在保持精度的同时,显著降低计算开销。这些方法特别适用于物联网设备、嵌入式系统等对资源敏感的领域。

基础知识

1.1 定义

众所周知:均值(mean)反映数据的集中趋势:

4fee5cf4-fa25-11ef-9310-92fbcf53809c.png

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

500220a4-fa25-11ef-9310-92fbcf53809c.png

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

500eaa22-fa25-11ef-9310-92fbcf53809c.png

使用示例:

501790d8-fa25-11ef-9310-92fbcf53809c.png

但是这种最基础的实现存在几个严重问题:

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) 均值更新

50252c7a-fa25-11ef-9310-92fbcf53809c.png

2)方差更新: 504d1f32-fa25-11ef-9310-92fbcf53809c.png 3) 关键推导步骤: 5055e3ba-fa25-11ef-9310-92fbcf53809c.png2.2 Welford算法实现 2.2.1 核心结构和函数

5063b99a-fa25-11ef-9310-92fbcf53809c.png

506b8d3c-fa25-11ef-9310-92fbcf53809c.png

2.2.2 使用示例

507909ee-fa25-11ef-9310-92fbcf53809c.png

2.2.3 算法步骤解释

1) 每次新数据到来:

计数加1

计算新数据与当前均值的差

更新均值

更新M2(用于方差计算)

2) 方差计算:

直接用M2除以样本数

样本数小于2时返回0

算法对比小结

本文介绍了Welford方差计算方法,它是一种在线、一次遍历的方差计算算法,能在不存储所有样本的情况下,逐步计算所有样本的方差。与传统的方差计算方法相比,Welford方法在降低访存次数的同时,也做到了数值计算的稳定性。因此,Welford方法更适合处理海量数据,也更适合在高性能计算环境中使用。

事实上,Welford算法启发了 NVIDIA 在2018年提出的Online Softmax算法,该算法降低了Softmax计算的访存次数,提高了计算性能。而Online Softmax则直接启发了FlashAttention,后者已经成为支撑当前最流行的Transformer架构的最核心的计算优化手段。

508233fc-fa25-11ef-9310-92fbcf53809c.png

END

恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信