M6.1 兩個城市的人口分佈差多少:W₂ 距離
本篇重用M6.0搬倉庫問題:Monge、Kantorovich 與 Coupling·M5.1用錯的機率表下注一年會多輸多少:KL Divergence 與 Cross-Entropy
兩張人口地圖
你手上有兩張同一個地區的人口密度圖:一張是 1990 年的,一張是 2020 年的。三十年間人口從老城區往東邊的新開發區移了一大塊。你想用一個數字說出「這三十年人口分佈變了多少」。
第一個想到的量是 M5.1 的 KL:逐點比兩張圖的密度。但你馬上碰到一個奇怪的現象:新開發區在 1990 年是農地、密度為零, 在那裡是 。KL 說「差無限多」。更糟的是,如果新開發區在隔壁(搬了一公里)或在另一個縣(搬了一百公里),只要 1990 年那裡都是零,KL 都說無限大——它看不出搬了多遠。
先用直覺回答:「人口分佈變了多少」這個數字,應該跟「人們平均搬了多遠」有關嗎?如果同一群人搬得更遠,數字應該更大嗎?寫下你有多確定。
課堂提問Q1
翻成數學。逐點比較的量(KL、)為什麼看不見「搬多遠」?要看見它,「差多少」的定義裡必須包含什麼?
先想一想,再展開看整理後的答案
課堂上會發現:KL、total variation 、以及所有形如 的量,都是在每一個位置 分別比 與 、然後加起來。它們從不把位置 的密度和位置 的密度放在一起比。所以「這裡少了一塊、那裡多了一塊」在它們眼裡只是「這裡有差、那裡有差」——兩塊之間的距離 根本沒出現在公式裡。
要看見「搬多遠」,定義裡就得有 ,也就是得有「哪裡的人搬到哪裡」——這正是 M6.0 的 coupling 。給一個 coupling,「平均搬家距離的平方」是 ;不同的 coupling 給不同的數,取最省的那個:
這就是 Kantorovich 問題取成本 再開根號。它叫 2-Wasserstein 距離。讀法:把 搬成 ,最省的搬法下,平均要搬多遠(均方根)。
先抓住這個畫面:兩堆沙
把 想成一堆沙、 想成另一堆同重量的沙。KL 拿一把篩子在每個位置比兩堆沙的高度,只要有一堆在某處是零就爆掉。 拿一台推土機:問「把左邊那堆推成右邊那堆的形狀,推土機平均要跑多遠」。
兩堆沙相隔一公里,推土機平均跑一公里;相隔一百公里,跑一百公里—— 隨距離變大,正是起點問題要的性質。兩堆沙完全不重疊也沒關係,推土機還是有得推—— 對不重疊的分佈是有限的。兩堆沙形狀相同、只是位置平移了 :每一粒沙都搬 ,—— 對平移的反應就是平移的距離。
對什麼敏感、對什麼不敏感
定義(重述)。 對 上有二階動差的機率分佈 ,
(換成 開 次方就是 ;本系列只用 。)
性質一:任何一個 coupling 給上界。 這是定義裡「」的直接後果,卻是實務上最常用的一句話:
你不需要找到最佳搬法才能說「 不超過多少」——隨便找一個合法的搬法,算它的平均平方距離,就是一個上界。最常用的兩個 coupling:獨立 coupling 給 ;任何一個把 推成 的映射 給 。第二個特別有用:如果你手上有一個「從 抽樣、經過某個程序、得到 的樣本」的機制,那個程序本身就是一個 coupling,它的平均位移平方就是 的上界。
性質二:它是真正的距離。 、等於零 ⟺ (最佳 coupling 只能是 )、對稱( 與 只差交換座標)、三角不等式 (把兩個最佳 coupling「接起來」——gluing——再用 的三角不等式;展開框有細節)。KL 三者只滿足第一項。
性質三:對平移與縮放的反應是精確的。 若 是 平移 ,(這裡的 是平移向量;維度那個字母 留給 )。若 、,有 closed form:
一維時就是 ——均值差的平方加標準差差的平方。這條式子讓 的兩個成分分開看:一項量「位置差多少」、一項量「散佈差多少」。
展開細節三角不等式的證明骨架(gluing),與 W₂ 對弱收斂的意義
設 π₁₂ 是 μ,ν 的最佳 coupling、π₂₃ 是 ν,ρ 的最佳 coupling。「黏合引理」(gluing lemma)說可以造一個三變數的聯合分佈 (X,Y,Z),使 (X,Y) ∼ π₁₂、(Y,Z) ∼ π₂₃(把兩張表沿共用的 ν 那一邊黏起來;離散時就是 π_{ijk} = π₁₂(i,j)π₂₃(j,k)/ν(j))。那麼 (X,Z) 是 μ,ρ 的一個 coupling,所以 W₂(μ,ρ) ≤ ‖X−Z‖{L²} ≤ ‖X−Y‖{L²} + ‖Y−Z‖_{L²} = W₂(μ,ν) + W₂(ν,ρ)。 第一個 ≤ 是性質一(任何 coupling 給上界),第二個是 L² 的 Minkowski 不等式。
另一件常被用到的事:在有界區域上,W₂(μₙ, μ) → 0 等價於 μₙ 弱收斂到 μ(對所有有界連續 f,∫f dμₙ → ∫f dμ)。所以「W₂ 很小」是「兩個分佈在所有光滑統計量上都接近」的一個定量版本——而 KL 很小蘊含 W₂ 很小(Talagrand 不等式,在 μ 是 Gaussian 或更一般的 log-concave 時:W₂² ≤ 2 KL),反過來不成立。
回到人口地圖:直覺對了,而且能算
回答起點問題。「人口分佈變了多少」應該跟「平均搬多遠」有關——對,而且 正是那個數:把 1990 年的分佈最省地搬成 2020 年的分佈,平均要搬多遠。新開發區在隔壁與在另一個縣, 差一百倍;KL 兩者都是無限大。
它同時說出兩件事。第一,逐點比較的量在「差異是位置」時失效——不是算錯,是它們的定義裡沒有位置。第二,你不必真的解出最佳搬法就能報數字:任何一個合理的搬法(例如把每個里的人口按地理上最近的新里對應過去)算出來的平均位移,就是 的一個上界;若你另外知道一個下界(例如兩個分佈的均值差——性質三說 ),數字就被夾在一個區間裡。
判斷依賴的假設:「差多少」該以搬運距離計。如果你關心的不是位置而是形狀——例如兩張圖的密度在同一個地方一個尖一個平,人口沒有搬家、只是密度形狀變了—— 仍然有限且有意義(性質三的第二項),但這時 KL 也不會爆掉,兩者都能用,選哪個看你在意什麼:KL 對「某處密度接近零」極度敏感, 對它溫和。另一個假設是二階動差存在(尾巴太厚的分佈 是無限大,要換 )。
回到人口地圖:兩個 Gaussian 跑一次,再用一個爛 coupling 算上界
import numpy as np
from scipy.optimize import linprog
rng = np.random.default_rng(0)
# 一維兩個 Gaussian:closed form W₂² = (m1−m2)² + (σ1−σ2)²
m1, s1, m2, s2 = 0.0, 1.0, 3.0, 2.0
print(np.sqrt((m1 - m2)**2 + (s1 - s2)**2)) # 3.162
# 用樣本 + LP 驗證:各抽 60 點、等權,解 assignment(Kantorovich 的離散版)
x = np.sort(rng.normal(m1, s1, 60)); y = np.sort(rng.normal(m2, s2, 60))
C = (x[:, None] - y[None, :])**2
A = np.zeros((120, 3600))
for i in range(60): A[i, i*60:(i+1)*60] = 1 # 列和
for j in range(60): A[60 + j, j::60] = 1 # 欄和
res = linprog(C.ravel(), A_eq=A, b_eq=np.ones(120) / 60, bounds=(0, None))
print(np.sqrt(res.fun)) # ≈ 3.30(60 個樣本的抽樣誤差)
# 任何 coupling 給上界:獨立 coupling(隨機亂配)與「排序後一對一」
print(np.sqrt(C.mean())) # 獨立 coupling:≈ 3.80,是上界
print(np.sqrt(np.mean((x - y)**2))) # 排序配對:≈ 3.30,與 LP 完全相同(一維的最佳解)
# KL 看不見距離:把 m2 從 3 改成 30,W₂ 變成 30.02,而兩團不重疊的樣本估出來的 KL 都是「無限大」
closed form ;用 60 個樣本解 LP 得到 3.30(抽樣誤差)。獨立 coupling 給 3.80——一個合法但爛的搬法,上界成立;把兩組樣本各自排序後一對一配,得到 3.30,與 LP 的最佳值一模一樣(一維時「排序配對」就是最佳解,下一篇會證明)。把 改成 30: 忠實地變成 30.02,而任何從樣本估 KL 的方法在兩團不重疊時都會給出無限大或數值爆炸。
先消化一下
參考文獻
- Villani, C. Optimal Transport: Old and New. Springer, 2009.(第 6 章:Wasserstein 距離的定義、距離公理、gluing lemma、與弱收斂的關係;第 22 章:Talagrand 不等式。)
- Peyré, G., Cuturi, M. Computational Optimal Transport. Foundations and Trends in Machine Learning 11(5–6), 2019.(第 2.4 節:Wasserstein 距離;第 2.6 節:Gaussian 之間的 closed form。)
- Santambrogio, F. Optimal Transport for Applied Mathematicians. Birkhäuser, 2015.(第 5 章:Wasserstein 空間的性質。)
- Ambrosio, L., Gigli, N., Savaré, G. Gradient Flows in Metric Spaces and in the Space of Probability Measures. Birkhäuser, 2nd ed., 2008.(第 7 章: 的度量結構。)