學完這篇,你能
說出「Gaussian 的線性組合仍是 Gaussian」與「獨立 Gaussian 相加時 variance 相加」,並寫出多變量版本 A X + b ∼ N ( A μ + b , A Σ A ⊤ ) AX+b\sim\mathcal N(A\mu+b,\,A\Sigma A^{\!\top}) A X + b ∼ N ( A μ + b , A Σ A ⊤ ) 。
用 variance 相加推出合併兩個雜訊讀數的最佳權重(inverse-variance weighting),並說出它比直接平均好多少。
對「兩台體重計取平均」這個做法,判斷它何時有效、何時反而變差、依賴什麼假設(獨立、雜訊為 Gaussian),並用模擬驗證,包括雜訊相關時增益如何消失。
起點:兩個讀數
家裡有兩台體重計。你知道它們都沒有系統性的偏差(長期平均是準的),但每次讀數會抖:A 台的抖動大約 ± 1 \pm1 ± 1 kg,B 台比較好,大約 ± 0.5 \pm0.5 ± 0.5 kg。今天早上 A 讀 72.8、B 讀 71.9。
問題:你該報幾公斤?
直覺最常見的答案是「取平均,72.35」,也有人說「B 比較準,用 B 的 71.9」。請寫下你的答案和有多確定。
接著追問:取平均之後,你對這個數字的信心應該比只看 B 更高 還是更低 ?多數人會說更高——「兩個資訊總比一個多」。這一篇會算出來:直接平均比只用 B 還差。 但「兩個資訊總比一個多」這句話本身沒錯,錯的是平均的方式。要能說清楚這件事,需要一個能對「雜訊合併」做算術的工具。
課堂提問 Q1
把情境翻成數學:這裡的隨機變數是什麼?「± 1 \pm1 ± 1 kg」該怎麼寫成數學物件?我們想比較的是哪些做法、用什麼標準比?
先想一想,再展開看整理後的答案 最直覺的說法是「體重是隨機變數」。這差了一點:你的體重 w w w 今天早上是一個固定但未知的數 ;隨機的是讀數 。
寫成式子:A 台讀到 Y A = w + ε A Y_A=w+\varepsilon_A Y A = w + ε A ,B 台讀到 Y B = w + ε B Y_B=w+\varepsilon_B Y B = w + ε B ,ε A , ε B \varepsilon_A,\varepsilon_B ε A , ε B 是兩台的雜訊。「沒有系統偏差」是 E [ ε ] = 0 \mathbb E[\varepsilon]=0 E [ ε ] = 0 ;「± 1 \pm1 ± 1 kg」最自然的翻譯是雜訊的標準差 σ A = 1 \sigma_A=1 σ A = 1 、σ B = 0.5 \sigma_B=0.5 σ B = 0.5 。再加一個常見的模型假設:雜訊是 Gaussian (正常分佈),ε A ∼ N ( 0 , σ A 2 ) \varepsilon_A\sim\mathcal N(0,\sigma_A^2) ε A ∼ N ( 0 , σ A 2 ) ;以及兩台的雜訊獨立 ——A 抖多少跟 B 抖多少無關。
我們要比較的做法都是「用兩個讀數算一個數」:w ^ = a Y A + b Y B \hat w=aY_A+bY_B w ^ = a Y A + b Y B 。要它長期平均是準的,需要 a + b = 1 a+b=1 a + b = 1 (因為 E [ w ^ ] = ( a + b ) w \mathbb E[\hat w]=(a+b)w E [ w ^ ] = ( a + b ) w )。「取平均」是 a = b = 1 2 a=b=\tfrac12 a = b = 2 1 ,「只用 B」是 a = 0 , b = 1 a=0,b=1 a = 0 , b = 1 。比較的標準是 w ^ \hat w w ^ 抖得多大——它的 variance 。所以問題變成:a Y A + b Y B aY_A+bY_B a Y A + b Y B 的 variance 是多少、哪一組 ( a , b ) (a,b) ( a , b ) 最小? 這需要知道「兩個 Gaussian 加起來會變成什麼」。
兩種抖動疊在一起
想像一支筆尖在紙上抖:A 台的雜訊讓它左右晃出一團寬 1 cm 的模糊,B 台的雜訊讓它晃出一團寬 0.5 cm 的模糊。把兩種晃動疊 起來——不是取寬的那一個,也不是相加成 1.5 cm。因為兩種晃動彼此無關,有時同向、有時反向,疊起來的寬度介於中間,而且有一個固定的規律:寬度的平方相加。 1 2 + 0.5 2 ≈ 1.12 \sqrt{1^2+0.5^2}\approx1.12 1 2 + 0. 5 2 ≈ 1.12 cm。
疊起來之後這團模糊的形狀 沒變,還是同一種鐘形,只是寬了一點。這兩件事——形狀保持、寬度平方相加——就是 Gaussian 在「合併」這件事上好用的全部原因。
把「合併」寫成數學
一維。 X ∼ N ( μ , σ 2 ) X\sim\mathcal N(\mu,\sigma^2) X ∼ N ( μ , σ 2 ) 的密度是 1 2 π σ exp ( − ( x − μ ) 2 2 σ 2 ) \frac1{\sqrt{2\pi}\sigma}\exp\!\big(-\frac{(x-\mu)^2}{2\sigma^2}\big) 2 π σ 1 exp ( − 2 σ 2 ( x − μ ) 2 ) 。兩個基本事實:
縮放與平移 :a X + b ∼ N ( a μ + b , a 2 σ 2 ) aX+b\sim\mathcal N(a\mu+b,\ a^2\sigma^2) a X + b ∼ N ( a μ + b , a 2 σ 2 ) 。乘 a a a 讓寬度變 ∣ a ∣ |a| ∣ a ∣ 倍、variance 變 a 2 a^2 a 2 倍。
獨立相加 :若 X 1 ∼ N ( μ 1 , σ 1 2 ) X_1\sim\mathcal N(\mu_1,\sigma_1^2) X 1 ∼ N ( μ 1 , σ 1 2 ) 、X 2 ∼ N ( μ 2 , σ 2 2 ) X_2\sim\mathcal N(\mu_2,\sigma_2^2) X 2 ∼ N ( μ 2 , σ 2 2 ) 獨立,則 X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) X_1+X_2\sim\mathcal N(\mu_1+\mu_2,\ \sigma_1^2+\sigma_2^2) X 1 + X 2 ∼ N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) 。
合起來:獨立 Gaussian 的任何線性組合仍是 Gaussian,mean 線性組合、variance 用係數平方加權相加。 「variance 相加」對任何獨立隨機變數都成立(不需要 Gaussian);Gaussian 多給的是「形狀不變」——合併後你仍然完全知道它的分佈。
展開細節 為什麼獨立 Gaussian 相加仍是 Gaussian(用 moment generating function,五行) X ∼ N ( μ , σ 2 ) X\sim\mathcal N(\mu,\sigma^2) X ∼ N ( μ , σ 2 ) 的 moment generating function 是 M X ( s ) = E [ e s X ] = exp ( μ s + 1 2 σ 2 s 2 ) M_X(s)=\mathbb E[e^{sX}]=\exp(\mu s+\tfrac12\sigma^2s^2) M X ( s ) = E [ e s X ] = exp ( μ s + 2 1 σ 2 s 2 ) (把指數配方即可算出)。獨立時 E [ e s ( X 1 + X 2 ) ] = E [ e s X 1 ] E [ e s X 2 ] \mathbb E[e^{s(X_1+X_2)}]=\mathbb E[e^{sX_1}]\,\mathbb E[e^{sX_2}] E [ e s ( X 1 + X 2 ) ] = E [ e s X 1 ] E [ e s X 2 ] ,所以
M X 1 + X 2 ( s ) = exp ( ( μ 1 + μ 2 ) s + 1 2 ( σ 1 2 + σ 2 2 ) s 2 ) , M_{X_1+X_2}(s)=\exp\!\big((\mu_1+\mu_2)s+\tfrac12(\sigma_1^2+\sigma_2^2)s^2\big), M X 1 + X 2 ( s ) = exp ( ( μ 1 + μ 2 ) s + 2 1 ( σ 1 2 + σ 2 2 ) s 2 ) , 正好是 N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) \mathcal N(\mu_1+\mu_2,\sigma_1^2+\sigma_2^2) N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) 的 MGF;MGF 決定分佈,證畢。「variance 相加」那一部分不需要 Gaussian:V a r ( X 1 + X 2 ) = V a r ( X 1 ) + V a r ( X 2 ) + 2 C o v ( X 1 , X 2 ) \mathrm{Var}(X_1+X_2)=\mathrm{Var}(X_1)+\mathrm{Var}(X_2)+2\,\mathrm{Cov}(X_1,X_2) Var ( X 1 + X 2 ) = Var ( X 1 ) + Var ( X 2 ) + 2 Cov ( X 1 , X 2 ) ,獨立時最後一項為零。
多維。 把 d d d 個讀數排成向量 X = ( X 1 , … , X d ) X=(X_1,\dots,X_d) X = ( X 1 , … , X d ) 。它的 mean 是向量 μ \mu μ ,而「抖動」需要一個矩陣才裝得下:covariance matrix Σ i j = C o v ( X i , X j ) \Sigma_{ij}=\mathrm{Cov}(X_i,X_j) Σ ij = Cov ( X i , X j ) ,對角線是各自的 variance,非對角線是「i i i 抖大時 j j j 是否也傾向抖大」。獨立時 Σ \Sigma Σ 是對角矩陣。多變量 Gaussian X ∼ N ( μ , Σ ) X\sim\mathcal N(\mu,\Sigma) X ∼ N ( μ , Σ ) 的線性變換規則只有一行:
A X + b ∼ N ( A μ + b , A Σ A ⊤ ) . AX+b\sim\mathcal N\big(A\mu+b,\ A\Sigma A^{\!\top}\big). A X + b ∼ N ( A μ + b , A Σ A ⊤ ) .
取 A A A 為一列權重 a ⊤ = ( a 1 , … , a d ) a^{\!\top}=(a_1,\dots,a_d) a ⊤ = ( a 1 , … , a d ) ,就得到最常用的特例:V a r ( a ⊤ X ) = a ⊤ Σ a = ∑ i , j a i a j Σ i j \mathrm{Var}(a^{\!\top}X)=a^{\!\top}\Sigma a=\sum_{i,j}a_ia_j\Sigma_{ij} Var ( a ⊤ X ) = a ⊤ Σ a = ∑ i , j a i a j Σ ij 。獨立時它退化成 ∑ i a i 2 σ i 2 \sum_i a_i^2\sigma_i^2 ∑ i a i 2 σ i 2 ——一維規則的直接推廣。
回到情境:平均,還是加權?
算兩種做法。 w ^ = a Y A + b Y B \hat w=aY_A+bY_B w ^ = a Y A + b Y B ,a + b = 1 a+b=1 a + b = 1 ,雜訊獨立:
V a r ( w ^ ) = a 2 σ A 2 + b 2 σ B 2 . \mathrm{Var}(\hat w)=a^2\sigma_A^2+b^2\sigma_B^2 . Var ( w ^ ) = a 2 σ A 2 + b 2 σ B 2 .
兩台體重計的雜訊獨立,所以交叉項是零,只剩兩項各自的貢獻,而且權重是平方 進去的——這一點決定了下面兩種做法差多少。
直接平均 (a = b = 1 2 a=b=\tfrac12 a = b = 2 1 ):1 4 ( 1 + 0.25 ) = 0.3125 \tfrac14(1+0.25)=0.3125 4 1 ( 1 + 0.25 ) = 0.3125 ,標準差 0.56 0.56 0.56 kg。
只用 B (a = 0 , b = 1 a=0,b=1 a = 0 , b = 1 ):0.25 0.25 0.25 ,標準差 0.5 0.5 0.5 kg。
直接平均比只用 B 還差。 直覺「兩個資訊總比一個多」沒有錯,錯在平均給了差的那台一半的話語權——等於把 A 台 ± 1 \pm1 ± 1 kg 的抖動用一半的音量混進來,比 B 自己的抖動還大。
最佳權重。 對 a a a 最小化 a 2 σ A 2 + ( 1 − a ) 2 σ B 2 a^2\sigma_A^2+(1-a)^2\sigma_B^2 a 2 σ A 2 + ( 1 − a ) 2 σ B 2 ,令導數為零:a σ A 2 = ( 1 − a ) σ B 2 a\sigma_A^2=(1-a)\sigma_B^2 a σ A 2 = ( 1 − a ) σ B 2 ,得
a = 1 / σ A 2 1 / σ A 2 + 1 / σ B 2 , b = 1 / σ B 2 1 / σ A 2 + 1 / σ B 2 , V a r ( w ^ ) = 1 1 / σ A 2 + 1 / σ B 2 . a=\frac{1/\sigma_A^2}{1/\sigma_A^2+1/\sigma_B^2},\qquad b=\frac{1/\sigma_B^2}{1/\sigma_A^2+1/\sigma_B^2},\qquad
\mathrm{Var}(\hat w)=\frac{1}{1/\sigma_A^2+1/\sigma_B^2}. a = 1/ σ A 2 + 1/ σ B 2 1/ σ A 2 , b = 1/ σ A 2 + 1/ σ B 2 1/ σ B 2 , Var ( w ^ ) = 1/ σ A 2 + 1/ σ B 2 1 .
權重與 variance 成反比 ,叫 inverse-variance weighting ;1 / σ 2 1/\sigma^2 1/ σ 2 叫 precision,合併後的 precision 是各自 precision 的和 ——「兩個資訊總比一個多」的正確版本。代數字:a = 0.2 a=0.2 a = 0.2 、b = 0.8 b=0.8 b = 0.8 ,w ^ = 0.2 × 72.8 + 0.8 × 71.9 = 72.08 \hat w=0.2\times72.8+0.8\times71.9=72.08 w ^ = 0.2 × 72.8 + 0.8 × 71.9 = 72.08 kg,variance 0.2 0.2 0.2 、標準差 0.447 0.447 0.447 kg——比 B 單獨的 0.5 0.5 0.5 好,但只好一點,因為 A 太差、能貢獻的 precision 只有 B 的四分之一。三台、n n n 台的規則完全一樣:precision 相加、權重按 precision 分。
這個結論依賴什麼。 第一,雜訊獨立 ——這一條寫在 V a r ( w ^ ) \mathrm{Var}(\hat w) Var ( w ^ ) 的式子裡沒有 C o v \mathrm{Cov} Cov 項。若兩台放在同一塊會微微下陷的地墊上,兩台會一起偏,Σ A B ≠ 0 \Sigma_{AB}\ne0 Σ A B = 0 ,那部分共同的誤差平均不掉 :n n n 台都有同一個共同誤差 σ c 2 \sigma_c^2 σ c 2 時,平均的 variance 是 σ c 2 + σ 2 / n \sigma_c^2+\sigma^2/n σ c 2 + σ 2 / n ,再多台也壓不到 σ c 2 \sigma_c^2 σ c 2 以下。第二,Gaussian 。上面的最佳性其實只在「線性組合」裡比;雜訊若是 Gaussian,線性組合已經是所有做法裡最好的。雜訊若不是——例如 A 台偶爾會跳出一個差 10 kg 的離譜讀數——任何線性加權都會被那一次拖走,這時「先剔除離群值」或取中位數會更好。
回到情境:模擬一萬個早上
import numpy as np
rng = np.random.default_rng( 0 ); n = 10_000 ; w = 72.0
sA, sB = 1.0 , 0.5
def trial (rho = 0.0 , glitch = 0.0 ):
eA = rng.normal( 0 , sA, n); eB = rho * eA * (sB / sA) + np.sqrt( 1 - rho ** 2 ) * rng.normal( 0 , sB, n) # rho: 兩台雜訊的相關係數
eA = eA + glitch * rng.choice([ 0 , 10 ], n, p = [ 0.98 , 0.02 ]) # glitch: A 台 2% 機率跳 10 kg
yA, yB = w + eA, w + eB
for name, est in [( "平均" , (yA + yB) / 2 ), ( "只用 B" , yB), ( "加權 0.2/0.8" , 0.2 * yA + 0.8 * yB)]:
print ( f " { name :10s } 標準差 { est.std() :.3f } " )
for rho, g in [( 0.0 , 0 ), ( 0.8 , 0 ), ( 0.0 , 1 )]:
print ( f "rho= { rho } , glitch= { g } " ); trial(rho, g)
第一組(獨立、Gaussian)會印出平均 ≈ 0.559 \approx0.559 ≈ 0.559 、只用 B ≈ 0.5 \approx0.5 ≈ 0.5 、加權 ≈ 0.447 \approx0.447 ≈ 0.447 ——三個數字與理論值 0.3125 \sqrt{0.3125} 0.3125 、0.25 \sqrt{0.25} 0.25 、0.2 \sqrt{0.2} 0.2 吻合。第二組(相關係數 0.8)加權的優勢幾乎消失,因為兩台一起偏。第三組(A 台偶爾跳格)加權的標準差被拉到 0.5 0.5 0.5 以上,「只用 B」反而勝出——線性合併對非 Gaussian 的尾巴沒有抵抗力。
先消化一下
參考文獻
Grimmett, G., Stirzaker, D. Probability and Random Processes , 3rd ed. Oxford University Press 2001.(獨立隨機變數和的 variance、moment generating function、多變量 Gaussian。)
Bishop, C. M. Pattern Recognition and Machine Learning. Springer 2006, Ch. 2.3.(多變量 Gaussian 的線性變換與 covariance matrix。)
Kay, S. M. Fundamentals of Statistical Signal Processing, Vol. I: Estimation Theory. Prentice Hall 1993.(線性無偏估計與 inverse-variance weighting 的最佳性。)