M6.1 15 分鐘閱讀 2026年9月

M6.1 兩個城市的人口分佈差多少:W₂ 距離

本篇重用M6.0搬倉庫問題:Monge、Kantorovich 與 Coupling·M5.1用錯的機率表下注一年會多輸多少:KL Divergence 與 Cross-Entropy

兩張人口地圖

你手上有兩張同一個地區的人口密度圖:一張是 1990 年的,一張是 2020 年的。三十年間人口從老城區往東邊的新開發區移了一大塊。你想用一個數字說出「這三十年人口分佈變了多少」。

第一個想到的量是 M5.1 的 KL:逐點比兩張圖的密度。但你馬上碰到一個奇怪的現象:新開發區在 1990 年是農地、密度為零,log(p2020/p1990)\log(p_{2020}/p_{1990}) 在那裡是 log(正數/0)=\log(\text{正數}/0)=\infty。KL 說「差無限多」。更糟的是,如果新開發區在隔壁(搬了一公里)或在另一個縣(搬了一百公里),只要 1990 年那裡都是零,KL 都說無限大——它看不出搬了多遠。

先用直覺回答:「人口分佈變了多少」這個數字,應該跟「人們平均搬了多遠」有關嗎?如果同一群人搬得更遠,數字應該更大嗎?寫下你有多確定。

課堂提問Q1

翻成數學。逐點比較的量(KL、pq\int|p-q|)為什麼看不見「搬多遠」?要看見它,「差多少」的定義裡必須包含什麼?

先想一想,再展開看整理後的答案

課堂上會發現:KL、total variation 12pqdx\tfrac12\int|p-q|\,dx、以及所有形如 f(p(x),q(x))dx\int f(p(x),q(x))\,dx 的量,都是在每一個位置 xx 分別比 p(x)p(x)q(x)q(x)、然後加起來。它們從不把位置 xx 的密度和位置 yxy\neq x 的密度放在一起比。所以「這裡少了一塊、那裡多了一塊」在它們眼裡只是「這裡有差、那裡有差」——兩塊之間的距離 xy|x-y| 根本沒出現在公式裡。

要看見「搬多遠」,定義裡就得有 xy|x-y|,也就是得有「哪裡的人搬到哪裡」——這正是 M6.0 的 coupling π(x,y)\pi(x,y)。給一個 coupling,「平均搬家距離的平方」是 E(x,y)πxy2\mathbb E_{(x,y)\sim\pi}|x-y|^2;不同的 coupling 給不同的數,取最省的那個:

W2(μ,ν)2=minπΠ(μ,ν) E(x,y)π[xy2].W_2(\mu,\nu)^2=\min_{\pi\in\Pi(\mu,\nu)}\ \mathbb E_{(x,y)\sim\pi}\big[\|x-y\|^2\big].

這就是 Kantorovich 問題取成本 c(x,y)=xy2c(x,y)=\|x-y\|^2 再開根號。它叫 2-Wasserstein 距離。讀法:μ\mu 搬成 ν\nu,最省的搬法下,平均要搬多遠(均方根)。

先抓住這個畫面:兩堆沙

μ\mu 想成一堆沙、ν\nu 想成另一堆同重量的沙。KL 拿一把篩子在每個位置比兩堆沙的高度,只要有一堆在某處是零就爆掉。W2W_2 拿一台推土機:問「把左邊那堆推成右邊那堆的形狀,推土機平均要跑多遠」。

兩堆沙相隔一公里,推土機平均跑一公里;相隔一百公里,跑一百公里——W2W_2 隨距離變大,正是起點問題要的性質。兩堆沙完全不重疊也沒關係,推土機還是有得推——W2W_2 對不重疊的分佈是有限的。兩堆沙形狀相同、只是位置平移了 aa:每一粒沙都搬 aaW2=aW_2=\|a\|——W2W_2 對平移的反應就是平移的距離

W2W_2 對什麼敏感、對什麼不敏感

定義(重述)。Rd\mathbb R^d 上有二階動差的機率分佈 μ,ν\mu,\nu

  W2(μ,ν)=(minπΠ(μ,ν)xy2dπ(x,y))1/2.  \boxed{\;W_2(\mu,\nu)=\Big(\min_{\pi\in\Pi(\mu,\nu)}\int\|x-y\|^2\,d\pi(x,y)\Big)^{1/2}.\;}

(換成 xyp\|x-y\|^ppp 次方就是 WpW_p;本系列只用 p=2p=2。)

性質一:任何一個 coupling 給上界。 這是定義裡「min\min」的直接後果,卻是實務上最常用的一句話:

對任何 πΠ(μ,ν):W2(μ,ν)2    Eπxy2.\text{對任何 }\pi\in\Pi(\mu,\nu):\qquad W_2(\mu,\nu)^2\;\le\;\mathbb E_\pi\|x-y\|^2 .

你不需要找到最佳搬法才能說「W2W_2 不超過多少」——隨便找一個合法的搬法,算它的平均平方距離,就是一個上界。最常用的兩個 coupling:獨立 coupling π=μν\pi=\mu\otimes\nuW22EX2+EY22EXEYW_2^2\le\mathbb E\|X\|^2+\mathbb E\|Y\|^2-2\,\mathbb E X\cdot\mathbb E Y任何一個把 μ\mu 推成 ν\nu 的映射 TTW22EμxT(x)2W_2^2\le\mathbb E_\mu\|x-T(x)\|^2。第二個特別有用:如果你手上有一個「從 μ\mu 抽樣、經過某個程序、得到 ν\nu 的樣本」的機制,那個程序本身就是一個 coupling,它的平均位移平方就是 W22W_2^2 的上界。

性質二:它是真正的距離。 W2(μ,ν)0W_2(\mu,\nu)\ge0、等於零 ⟺ μ=ν\mu=\nu(最佳 coupling 只能是 y=xy=x)、對稱(Π(μ,ν)\Pi(\mu,\nu)Π(ν,μ)\Pi(\nu,\mu) 只差交換座標)、三角不等式 W2(μ,ρ)W2(μ,ν)+W2(ν,ρ)W_2(\mu,\rho)\le W_2(\mu,\nu)+W_2(\nu,\rho)(把兩個最佳 coupling「接起來」——gluing——再用 L2L^2 的三角不等式;展開框有細節)。KL 三者只滿足第一項。

性質三:對平移與縮放的反應是精確的。ν\nuμ\mu 平移 aaW2=aW_2=\|a\|(這裡的 aa 是平移向量;維度那個字母 dd 留給 Rd\mathbb R^d)。若 μ=N(m1,Σ1)\mu=\mathcal N(m_1,\Sigma_1)ν=N(m2,Σ2)\nu=\mathcal N(m_2,\Sigma_2),有 closed form:

W22=m1m22+tr(Σ1+Σ22(Σ21/2Σ1Σ21/2)1/2),W_2^2=\|m_1-m_2\|^2+\mathrm{tr}\Big(\Sigma_1+\Sigma_2-2\big(\Sigma_2^{1/2}\Sigma_1\Sigma_2^{1/2}\big)^{1/2}\Big),

一維時就是 (m1m2)2+(σ1σ2)2(m_1-m_2)^2+(\sigma_1-\sigma_2)^2——均值差的平方加標準差差的平方。這條式子讓 W2W_2 的兩個成分分開看:一項量「位置差多少」、一項量「散佈差多少」。

展開細節三角不等式的證明骨架(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),反過來不成立。

回到人口地圖:直覺對了,而且能算

回答起點問題。「人口分佈變了多少」應該跟「平均搬多遠」有關——對,而且 W2W_2 正是那個數:把 1990 年的分佈最省地搬成 2020 年的分佈,平均要搬多遠。新開發區在隔壁與在另一個縣,W2W_2 差一百倍;KL 兩者都是無限大。

它同時說出兩件事。第一,逐點比較的量在「差異是位置」時失效——不是算錯,是它們的定義裡沒有位置。第二,你不必真的解出最佳搬法就能報數字:任何一個合理的搬法(例如把每個里的人口按地理上最近的新里對應過去)算出來的平均位移,就是 W2W_2 的一個上界;若你另外知道一個下界(例如兩個分佈的均值差——性質三說 W2m1m2W_2\ge\|m_1-m_2\|),數字就被夾在一個區間裡。

判斷依賴的假設:「差多少」該以搬運距離計。如果你關心的不是位置而是形狀——例如兩張圖的密度在同一個地方一個尖一個平,人口沒有搬家、只是密度形狀變了——W2W_2 仍然有限且有意義(性質三的第二項),但這時 KL 也不會爆掉,兩者都能用,選哪個看你在意什麼:KL 對「某處密度接近零」極度敏感,W2W_2 對它溫和。另一個假設是二階動差存在(尾巴太厚的分佈 W2W_2 是無限大,要換 W1W_1)。

回到人口地圖:兩個 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 W2=9+1=3.162W_2=\sqrt{9+1}=3.162;用 60 個樣本解 LP 得到 3.30(抽樣誤差)。獨立 coupling 給 3.80——一個合法但爛的搬法,上界成立;把兩組樣本各自排序後一對一配,得到 3.30,與 LP 的最佳值一模一樣(一維時「排序配對」就是最佳解,下一篇會證明)。把 m2m_2 改成 30:W2W_2 忠實地變成 30.02,而任何從樣本估 KL 的方法在兩團不重疊時都會給出無限大或數值爆炸。

先消化一下

想一想

你要比較兩個模型生成的「人臉圖片」與真實人臉的差距,把每張圖用某個特徵向量表示。模型 A 的特徵分佈與真實分佈幾乎不重疊但很近;模型 B 的分佈與真實分佈部分重疊但有一團跑到很遠的地方。你想要一個「跑得越遠罰越重」的指標,該用:

想一想

你有一個程序:從 μ\mu 抽一點 xx,走一個確定的映射得到 y=T(x)y=T(x),而 yy 的分佈是 ν\nu。你算出 EμxT(x)2=4\mathbb E_\mu\|x-T(x)\|^2=4。關於 W2(μ,ν)W_2(\mu,\nu) 你能說的是:

想一想

兩個分佈的差異純粹是形狀:同一個位置、同一個均值,一個是尖的、一個是平的。這時:

參考文獻

  1. Villani, C. Optimal Transport: Old and New. Springer, 2009.(第 6 章:Wasserstein 距離的定義、距離公理、gluing lemma、與弱收斂的關係;第 22 章:Talagrand 不等式。)
  2. 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。)
  3. Santambrogio, F. Optimal Transport for Applied Mathematicians. Birkhäuser, 2015.(第 5 章:Wasserstein 空間的性質。)
  4. Ambrosio, L., Gigli, N., Savaré, G. Gradient Flows in Metric Spaces and in the Space of Probability Measures. Birkhäuser, 2nd ed., 2008.(第 7 章:W2W_2 的度量結構。)