top of page

15 - 做乜要識「指數加權平均」(Exponential Moving Average, EMA)?


訓練深度模型,好似揸車行高速公路:‣ 原始梯度=陣風,一下吹左一下吹右;‣ EMA=車嘅電子穩定系統,幫你撳住軚盤,唔畀你飄。

呢個平滑器唔止用喺 AI,日常都大派用場。以下用廣東話逐段講,例子夠貼地,讀完你就識得點揸穩部「數據車」。


🌡️ 生活暖身:三個「跳跳虎」數據


  1. 每日氣溫

    春天時 22 °C → 28 °C → 19 °C,好難即時睇出升定跌。

  2. 股票收市價

    Tesla 今日 260,聽日260,聽日 260,聽日275,再下一日 $255,散戶睇到眼花。

  3. 心率監測

    跑步時手錶讀數 140 → 172 → 160 BPM,想知道真正趨勢要消噪。

EMA 幫你把雜訊壓低,抽出「最近趨勢」。


🧮 數學一眼睇


公式:

v_t = β · v_{t-1} + (1-β) · θ_t

符號拆解:

  • θ_t - 今次觀測(今日氣溫 / 今步梯度)

  • v_t - 今次平滑值

  • β - 「記性」係幾長 (0.9、0.99 常用)。

特性:

  • 只要 上一個 v 就夠,唔使存成條歷史 → 記憶體零負擔。

  • β 越接近 1 → 越重視舊資料 → 曲線越滑。

  • 偏差修正

    v^t=vt1−βt  \hat v_t = \frac{v_t}{1-β^t}v^t​=1−βtvt​​

    尤其 t 細嘅時候幫你「補回」頭幾步被拉低嘅值。


🍵 直覺比喻:沖茶換水


每日你倒 10 % 舊茶,加 10 % 新茶葉同熱水:

  • β = 0.9 → 只換 10 % 味道;茶香改變慢,平滑。

  • β = 0.5 → 半壺倒走,今日茶味同昨日差好遠,反應快但波動大。


✏️ 手算示例(β = 0.9)


日子

θ_t (氣溫)

v_t 計法

v_t

1

40

0.9·0 + 0.1·40

4.0

2

49

0.9·4 + 0.1·49

8.5

3

45

0.9·8.5 + 0.1·45

12.15

溫度本身大上大落,EMA 緩緩向上,視覺上就係一條順滑曲線。


📊 同「移動平均」比一比


特徵

Window 移動平均

EMA

需存幾多數據

N 筆

1 筆

更新計算量

O(N)

O(1)

邊界效果

舊數據跌出窗口突變

無突變

適合即時

普通

非常好


🧭 在神經網絡嘅角色


  1. Momentum Optimizer

    • v_t 儲存「梯度動量」,幫你衝過小坑、避震盪。

  2. Adam / RMSProp

    • v_t 存梯度平方嘅 EMA,做自適應學習率。

  3. BatchNorm / LayerNorm Moving Average

    • 線上推斷時,用 EMA 記錄全局均值、方差。

  4. Model EMA (Mean Teacher)

    • 訓練時再開多一份權重θ_ema=EMA(θ),驗證用佢可提升 1~2% 準確率。


🌍 其他工程例子


領域

原始訊號

EMA 用途

IoT 感測

溫濕度秒級讀數

濾掉雜訊觸發冷氣

網站運維

每秒 PV / CPU Load

畫平滑曲線做 Auto-Scaling

銀行風控

客戶刷卡額度

平滑 7 日平均找異常

遊戲開發

玩家 FPS

動態調畫質防掉幀

行車儀

加速度計

平滑方向/剎車輸出餵控制器


🛠️ Python Demo(含偏差修正)

beta = 0.9
v = 0        # 初始化
for t, theta in enumerate(stream, 1):
    v = beta * v + (1 - beta) * theta      # EMA
    v_hat = v / (1 - beta**t)              # 偏差修正
    print(f"step {t:03d} -> raw={theta:6.2f}, ema={v_hat:6.2f}")

一共 3 行就攪掂,丟任何串流數據都得。


⚙️ β 應該點揀?


  • β = 0.9 → 等效視窗 ≈ 1 / (1-β) = 10 步

  • β = 0.99 → 視窗 ≈ 100 步,更滑但反應慢

  • Rule of thumb:

    ‣ 梯度動量用 0.9–0.95

    ‣ 模型參數 EMA 用 0.99–0.999

    想快啲追蹤突變 → 細 β;想超級平滑 → 大 β。


🚨 Debug 常見坑


  1. 忘記偏差修正 → 開頭幾步值偏細,尤其影響 Adam。

  2. β 太高 → 模型突然轉 regime 仍見唔到更新,學習變遲鈍。

  3. β 太低 → 平滑效果不足,曲線依然鋸齒。

  4. 梯度爆炸先平滑 → 先 Clip 再做 EMA,否則 v 會被極端值拖歪。


✅ 小結 - 你要袋返屋企嘅重點


  1. 指數加權平均 = 即時、低成本平滑器,一個變數搞掂。

  2. β 調快慢:大 β 忽略新訊號,小 β 追得貼。

  3. 神經網絡處處見佢蹤影:Momentum、Adam、BN、Model EMA。

  4. 偏差修正 必不可少,早期值先準。

  5. 氣溫、股票、網站流量、IoT 感測、遊戲 FPS……只要係「連續時序」,EMA 都係你嘅萬用 Swiss-Army Knife。

掌握呢招,無論面對乜嘢跳跳虎數據,你都可以穩穩當當、一條直路咁衝向目標!🚀

翱翔醫療 (2).png

Tsim Sha Tsui H Zentre Clinic

Suite 813, 8/F, H Zentre

15 Middle Road, TST

Phone: 28133700

​Whatsapp:+852 95096276

Central Printing House Clinic

Room 303A & 305,

3/F, Printing House,

6 Duddell Street, Central

Phone: 28716733 / 28716788

Whatsapp:+852 62084539

TKO Maritime Bay Clinic

UG18, UG/F,

Maritime Bay Shopping Centre
Hang Hau, Tseung Kwan O
Tel: 98852916; Whatsapp: 98852916

​Phone:98852916

Whatsapp:+852 98852916

Mong Kok T.O.P. Clinic

Room 2001, 20/F,
700 Nathan Road, Mong Kok

​(Going above from the the 3/F elevator of T.O.P. Mall)

Phone:28710277

Whatsapp:+852 98893911

bottom of page