一維數(shù)據(jù)的均值和方差計算可以說是幾乎是最常用的統(tǒng)計分析方法。這個初中就學(xué)過的概念,在嵌入式系統(tǒng)中卻有著廣泛的實際應(yīng)用:
傳感器故障檢測
正常工作的傳感器數(shù)據(jù)波動應(yīng)在一定范圍內(nèi)
突然的均值漂移或方差劇變,往往意味著傳感器故障
如溫度傳感器讀數(shù)突然劇烈波動,很可能是接觸不良
信號質(zhì)量評估
GPS信號強度的均值和方差可以反映定位質(zhì)量
方差過大說明信號不穩(wěn)定,可能處于多路徑效應(yīng)區(qū)域
均值過低說明信號較弱,可能在遮擋環(huán)境下
機器人控制
舵機位置反饋的方差可以用來檢測是否卡死
輪速反饋的方差可以判斷地面情況
電壓的滑動均值可以平滑瞬時波動
電流的方差可以反映負(fù)載的穩(wěn)定性
溫度的異常波動可能預(yù)示電池問題
這些場景都需要實時、高效地計算數(shù)據(jù)流的統(tǒng)計特征。雖然計算公式簡單,但在實際工程中,有限的資源限制及實時性要求、數(shù)值穩(wěn)定性和存儲效率成為主要挑戰(zhàn)。
本文主要探討如何在有限的計算能力和內(nèi)存條件下,優(yōu)雅地實現(xiàn)高效的均值和方差計算。通過優(yōu)化算法、減少計算復(fù)雜度、利用遞推公式和定點數(shù)運算,文章提供了一系列使用技巧,幫忙開發(fā)者在保持精度的同時,顯著降低計算開銷。這些方法特別適用于物聯(lián)網(wǎng)設(shè)備、嵌入式系統(tǒng)等對資源敏感的領(lǐng)域。
基礎(chǔ)知識
1.1 定義
眾所周知:均值(mean)反映數(shù)據(jù)的集中趨勢:
方差(variance)反映數(shù)據(jù)的離散程度:
基于以上兩個定義式出發(fā),可以很簡單的轉(zhuǎn)換為C code, 淺顯易懂:
使用示例:
但是這種最基礎(chǔ)的實現(xiàn)存在幾個嚴(yán)重問題:
1)數(shù)據(jù)存儲問題
需要保存全部歷史數(shù)據(jù)
對于高頻采樣的傳感器(如IMU 200Hz),1s就需要存儲200個數(shù)據(jù)點
在嵌入式系統(tǒng)中,內(nèi)存資源寶貴,這種方式極其浪費
2)計算效率問題
每次計算都需要遍歷全部數(shù)據(jù),時間復(fù)雜度為O(n)
對于實時系統(tǒng),隨著數(shù)據(jù)量增加,計算延遲會越來越大
不適合需要快速響應(yīng)的實時控制系統(tǒng)
3)數(shù)值穩(wěn)定性問題
直接累加可能導(dǎo)致數(shù)值溢出
對于很大或很小的數(shù)據(jù),浮點數(shù)精度損失明顯
特別是在計算方差時,(Xi-u)的計算可能產(chǎn)生很大的舍入誤差
4)實時性問題
無法進行增量計算
新數(shù)據(jù)到來時需要重新計算所有統(tǒng)計量
不適合流數(shù)據(jù)處理
在線算法(Online Algorithm)
在線方法也叫做流式方法, 針對批量方法的缺點,在線方法不需要保存歷史數(shù)據(jù),在線算法中比較經(jīng)典的是Welford算法。
Welford算法是由B.P. Welford在1962年提出的一種在線計算均值和方差的算法。它的核心思想是:每來一個新數(shù)據(jù),就遞增地更新均值和方差,而不需要存儲所有歷史數(shù)據(jù)。
2.1 Welford算法
這是一種數(shù)值穩(wěn)定的在線算法,特別適合處理數(shù)據(jù)流。Welford算法的核心是遞推公式的推導(dǎo)。設(shè)第n個數(shù)據(jù)到來時:
1) 均值更新
2)方差更新: 3) 關(guān)鍵推導(dǎo)步驟:
2.2 Welford算法實現(xiàn) 2.2.1 核心結(jié)構(gòu)和函數(shù)
2.2.2 使用示例
2.2.3 算法步驟解釋
1) 每次新數(shù)據(jù)到來:
計數(shù)加1
計算新數(shù)據(jù)與當(dāng)前均值的差
更新均值
更新M2(用于方差計算)
2) 方差計算:
直接用M2除以樣本數(shù)
樣本數(shù)小于2時返回0
算法對比小結(jié)
本文介紹了Welford方差計算方法,它是一種在線、一次遍歷的方差計算算法,能在不存儲所有樣本的情況下,逐步計算所有樣本的方差。與傳統(tǒng)的方差計算方法相比,Welford方法在降低訪存次數(shù)的同時,也做到了數(shù)值計算的穩(wěn)定性。因此,Welford方法更適合處理海量數(shù)據(jù),也更適合在高性能計算環(huán)境中使用。
事實上,Welford算法啟發(fā)了 NVIDIA 在2018年提出的Online Softmax算法,該算法降低了Softmax計算的訪存次數(shù),提高了計算性能。而Online Softmax則直接啟發(fā)了FlashAttention,后者已經(jīng)成為支撐當(dāng)前最流行的Transformer架構(gòu)的最核心的計算優(yōu)化手段。
END
恩智浦致力于打造安全的連接和基礎(chǔ)設(shè)施解決方案,為智慧生活保駕護航。
-
mcu
+關(guān)注
關(guān)注
146文章
17970瀏覽量
366546 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3681瀏覽量
131355 -
恩智浦
+關(guān)注
關(guān)注
14文章
5980瀏覽量
116490
原文標(biāo)題:如何在低算力MCU平臺上優(yōu)雅的計算均值和方差
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MCU也開始卷了,恩智浦率先將NPU集成進MCU
恩智浦i.MX RTxxx系列MCU的特性
MXM 算力平臺在邊緣計算領(lǐng)域的應(yīng)用
使用SCL語言編寫函數(shù)計算方差和標(biāo)準(zhǔn)差
西門子SCL語言編程系列-計算方差

想找恩智浦MCU擴展板資源?一款超好用的在線工具,推薦給你!
ACH拉近您與恩智浦MCU專家的距離

評論