大荒之年,「蒙日(Monge)」城。
那一年,大饜降臨蒙日城。城外有九個缺糧的鄉區(一號區到九號區),每個鄉區餓著的人多寡不等——一號區有百戶,九號區只三五戶;而城內有七座去年囤糧的倉廩(A 到 G),每座倉裡的糧山也高矮不同——A 倉堆得比屋頂還高,G 倉卻只餘一隅。
不過,「城裡的糧」與「鄉下要養的嘴」加在一起,恰好相等。這本是老天爺的安排;若不相等,這場饞災就要更慘。
國王把將軍召進宮,只下一道令:
「把城裡的糧全部運出去,送到各鄉區。但你要記住——每一斗糧都要有著落,一斗都不能糟蹋。」
將軍的難題,其實是兩件事纏在一處:
- 每座倉,該往各鄉區送多少?(糧山怎麼分)
- 每條路多遠、費幾車幾斗?(運輸的代價)
這兩件事牽一髮動全身:路越遠,運一斗越貴;某條路送得越多,總代價就越高。既要餵飽鄉下、又要省代價,兩頭必須同時兼顧。
將軍冥思苦想三日,定了一條鐵律:「每座倉,只指派一個鄉區,把全倉的糧都送過去,絕不分送。」 他把這套規則畫在軍令圖上——每座倉是一隻箭,只許指向一個目標。他稱這為「圖(map)」:一座倉、一個目的地,不允許分送。
圖畫好了,車隊開拔。但沒幾日,C 倉的老管倉就衝進帳中喊冤:
「將軍!我倉的糧山太大了。全送一號區,一號區受不住(它要的量只有那麼多),多出來的糧要爛在倉裡;全送四號區,路又太远。可一號區和四號區都在餓肚子啊……」
將軍愣住了。他的「一倉一区」鐵律,被 C 倉打破了——C 倉的糧必須拆開,一半送一號、一半送四號。可全軍沒有一個人,被教導過「拆糧」該怎麼拆。
二、學者的覺悟
此時,一位白鬚學者「坎托羅維奇(Kantorovich)」路過蒙日城。聽將軍嘆氣,他笑說:
「你問錯了問題。你問的是『每一斗糧,送到哪個區?』——那叫圖,一斗只去一個地方,不許分。可天地並不總是這樣。有些時候,你非分不可。」
「你該問的是:『全城的帳,記下每座倉往每個區各送了多少』——那不是圖,那是一張帳(plan)。一紙完整的帳,記下每一條路線:A 倉送一號幾斗、B 倉送五號幾斗……一張合規的帳,只有三條鐵則:
一、每座倉送出的量,恰好等於它有的量(不多送、不少送); 二、每個區收到的量,恰好等於它要的量(不多收、不少收); 三、每條路線的代價,等於「路距 × 送去的量」。
「在所有合規的帳裡,總代價最小的那張,就是最省的運法。而這個最小代價,本身,就是七座倉與九個鄉區之間的『距離』。糧送得越貴,兩堆分布就離得越遠。學者把這距離叫作『推土機距離』——彷彿你得把整堆土挖起來,搬去新地方。」
將軍愕然:「所以,『兩個分布的距離』,就是『把所有糧搬過去的最省代價』?」
「正是。而且這距離,有一個普通距離沒有的美德:它懂糧山的形狀。把一座糧山往右挪一步,距離只變一點;把一座糧山拆成兩堆、拋到兩頭,距離會驟增。它知道糧在哪裡——不像只盯著「重心」的普通距離。用它量「今年的倉位分布」與「去年的」,將軍一眼就看得出:糧究竟往哪裡移、移了多少。」
三、稽核官的證明
將軍仍煩惱:「合規的帳有千萬張,我怎麼知道挑到了最省的那張?怎麼證明沒有更省的?」
學者點頭,召來一位老「稽核官」。稽核官的工作,不是畫帳,而是定價。
「我在每座倉、每個區,都貼一張價牌。但價牌要守一條鐵律:『倉上的價 加上 區上的價』,永遠不得超過那條路的運糧代價。換句話說:我把倉上的價墊高,就得把目的地的價壓低——兩頭不能同時貪高。 這規則,防止有人靠抬價把總帳做假。」
稽核官貼完價,再把「倉價 × 該倉送出的量」與「區價 × 該區收到的量」全加起來,交給將軍一個數字。
將軍比對:稽核官這張「價證」的總和,恰好等於他自己最省那張帳的總代價。任何一張帳,都不會比這張價證更省——因為每條路的「價差」都被「代價」卡死上緣,加總絕不可能超過真正的代價。 這就是問題的「對偶」:稽核官不搬糧,他只用價,證明代價不可能低於某個數。最省的運糧成本 = 最大的價證。 兩者一旦碰頭,就是最優解。
學者把這張價證取名「對偶勢(dual potentials)」。他說:「在千萬張帳無法逐一舉出時,稽核官的『價牌』,是你證明最優的唯一法寶。這是整個數學裡,最美麗的對偶之一。」
四、年輕學者的「梯度」定理
數年後,一位年輕學者「布涅爾(Brenier)」進城。聽完將軍的難題,他給出一個驚人斷言:
「若代價是『距離的平方』(路越遠越貴,且代價平方級增长),且目的地的糧攤得夠勻(沒把糧全堆成一坨),那麼最省的帳,永遠是一張乾淨的圖——每一斗糧,恰好去一個地方,不必拆。」
將軍驚:「可 C 倉不是被迫拆糧嗎!」
「布涅爾微笑:『因為你城的目的地是離散的——九個鄉區,糧必須堆成區,才被迫拆。但若目的地是連續且攤開的——像把水倒進一個廣盆——最省的方式,自然會乾淨:每斗糧流向恰好一個位置,而且流向永不交叉。』」
「那怎麼找這張圖?」
「你只要找出一個函數——一片凸的景觀(像單底、無多窪的碗)——讓每斗糧沿著這景觀最陡的方向流下。這凸景觀的梯度,就是最優運輸圖。」
將軍望著白髮學者、又望著年輕學者:「所以,『搬糧的最省方式』,跟『找一片凸景觀的梯度』,是同一件事?」
「正是。這是整個分析學裡最美麗的結果之一:二次距離成本下的最優傳輸問題,被約化為『求一個凸函數的梯度』。 一個本該是組合噩夢的運輸問題,化成了研究單一光滑函數。這,就叫布涅爾定理。」
五、工程師的「熵」把戲
將軍的頭痛還沒完:「我懂道理了,可我的帳有千萬條路,怎麼算得出最省的那張?」
這時,一位異國工匠「辛克霍恩(Sinkhorn)」帶來新招。他說:
「我幫你鬆一點。別再堅持絕對最省(它常常是極難算的尖角),我加一條:讓帳有點『不確定』。 也就是,允許糧對目的地不必百分之百確定。這叫熵正則化。代價會貴一丁點,但帳變光滑、變可算。」
「怎麼算?答案是手藝人用了兩千年的老招:矩陣縮放(matrix scaling)——先把帳的每一行(每座倉送出的量)重新縮放到正確;再把每一列(每個區收到的量)縮放對;行、列、行、列地輪流。每一輪,都更近一點;幾輪之後,就逼近答案。這極快,遠勝直接解千萬個方程。」
「我加的『不確定』,代價是帳略糊。但工程師知道怎麼把不確定調低——那叫溫度。溫度越低,帳越接近真的最優解;溫度歸零,熵正則化的問題就變回原來的最優傳輸問題。溫度,就是熵本身。」
將軍,終於全明白了。
六、揭曉
多年後,將軍寫書成冊。書的最後,他寫下這段話:
「你我談了這許多年——搬糧的最省方式、推土機距離、那張『帳』、稽核官的價證、年輕學者的梯度定理、工程師的熵把戲——在今日的數學與機器學習裡,全部有一個名字:
最優傳輸(Optimal Transport)。
將軍求的那個『七座倉與九鄉區的距離』——把糧山全部搬過去的最小代價——叫作 Wasserstein 距離(又稱「推土機距離」),以俄國數學家 Kantorovich 與法國數學家 Villani(2010 年因最優傳輸獲菲爾茲獎)命名。
學者『圖可拆為帳』的覺悟,是 Kantorovich 鬆弛(1939);「價證」是 Kantorovich 對偶與對偶勢;「凸景觀的梯度」是 Brenier 定理(1991);「熵+矩陣縮放」,是 Sinkhorn-Knopp 算法與它的現代熵正則化版本(Cuturi, 2013, 《Sinkhorn Distances》)。
而控制帳糊與不糊的溫度,是熵正則化參數——歸零時得到真的 Wasserstein 距離,調大則得工程師用的平滑版。」
「這理論,不只是『搬糧最省』的問題。它是整個數學最活躍的一塊:
- Wasserstein GAN(2017):用生成器造圖,再用 Wasserstein 距離量『兩堆圖像分布』的遠近——因為普通距離不懂形狀,無法引導造圖;唯有 Wasserstein 懂,才能引導得穩。
- Schrödinger 橋(1932,2020 年代現代化):最優傳輸的動態版——不是「一舉搬完糧」,而是「讓糧隨時間流動」——總動能最小的路徑。它連到量子力學與深層學習。
- 梯度流:Fokker-Planck 方程(擴散如何散布)正是「相對熵」對 Wasserstein 距離的梯度流。換句話說:擴散,就是糧沿著 Wasserstein 地形往低處流。
- Hamilton-Jacobi 方程:那張「價證」(對偶勢)與它的viscosity 解,息息相關。」
將軍在書末,留下一句:
度量兩個機率分布的距離,最浪漫的方式,不是比它們的「中心」——而是把所有糧山挖起來、搬去新處、算出那筆「最省的代價」。這最省的代價,就是 Wasserstein 距離。
概念解說
1. 什麼是最優傳輸?
1781 年,法國數學家 Antoine de Monge 在《De la détermination des forces motrices des eaux》中問:給一座土堆,要「堆」成另一座山形,以最小運輸代價(代價 = 距離 × 量)怎麼做?這叫「Monge 問題」。
Monge 把它寫成確定性圖 T:「每斗土,恰好送到一個目的地」。問題在:這樣的圖不一定存在,存在了也未必最優——比如一座土堆(一团質量)得拆開送進兩座山谷,確定性圖辦不到。
1939 年,俄國數學家 Vladimir Kantorovich 做出關鍵鬆弛:不找「圖」,改找一個定義在乘積空間 $X \times Y$ 上的聯合分佈(coupling) $\pi$,它:
- 在 $X$ 邊的邊緣恰好是 $\mu$(來源分布);
- 在 $Y$ 邊的邊緣恰好是 $\nu$(目標分布)。
代價是 $\int c(x,y), d\pi(x,y)$,在所有 coupling 裡取最小:
$$ W_c(\mu,\nu) = \inf_{\pi \in \Pi(\mu,\nu)} \int_{X\times Y} c(x,y), d\pi(x,y) $$
這總有最優解(在合理條件下),因為我們鬆弛了:允許「拆」。最小值 $W_c$ 就是 Wasserstein 距離($c=d$ 時)或 Wasserstein 成本。
核心洞察:「帳」(聯合分佈)比「圖」更一般。 圖只是帳的特例(聯合分佈「撐」在圖的圖形上)。Kantorovich 的鬆弛,是現代最優傳輸的基石。
2. 對偶:那張「價證」
Kantorovich 對偶:原問題(找最省帳)與對偶(找最緊價證)有同一個最優值:
$$ W_c(\mu,\nu) = \sup_{\substack{(\varphi,\psi)\ \varphi(x)+\psi(y)\le c(x,y)}} \int \varphi, d\mu + \int \psi, d\nu $$
對偶變量 $(\varphi,\psi)$ 就是「價牌」/對偶勢。約束 $\varphi(x)+\psi(y)\le c(x,y)$ 說:「倉價加區價,不得超過運糧代價」。對偶問:「在此約束下,我能貼出多大的總價?」這個最大價證,恰好等於最省的運糧成本。
這,就是寓言裡稽核官的證明。它是數學裡最美麗、最有用的對偶之一——把「對測度的無窮維最小化」,轉成「對函數的逐點優化」,也是現代 OT 多數計算與理論結果的地基。
3. Brenier 定理:「圖何時存在」
當代價是 $c(x,y)=\tfrac{1}{2}|x-y|^2$(距離平方),且 $\nu$ 對 $\mu$ 的「推前」絕對連續(直白說:目的地攤得開、沒堆成一坨),最優帳總是一張確定性圖:
$$ T = \nabla\varphi $$
其中 $\varphi$ 是凸函數。這叫 Brenier 定理(1991)。意即:搬質量最省的方式,是讓每點推到 $\nabla\varphi(x)$——一片凸景觀的梯度。糧不拆。這結果之所以美麗,是它把「傳輸」(測度問題)和「凸分析」(函數問題)證成同一件事。
注意:正因如此,在連續(分布攤開)時「可以」用圖;但在離散(寓言的九個區)時,目的地堆成離散點,絕對連續條件失敗,就必須用(會拆的)帳。這正是 C 倉的困境。
4. 熵正則化與 Sinkhorn 算法
精確 Wasserstein 距離難算(最優帳常是「尖角/稀疏」)。2013 年,Marco Cuturi 的《Sinkhorn Distances》指出:加熵正則:
$$ W_{\varepsilon}(\mu,\nu) = \inf_{\pi\in\Pi(\mu,\nu)} \int c, d\pi + \varepsilon\cdot \mathrm{Ent}(\pi), \qquad \mathrm{Ent}(\pi) = -\int \pi\log\pi $$
熵項懲罰「太確定」的帳、鼓勵「攤開」(略糊)的帳。代價:$W_\varepsilon > W_0$(略微高估)。回報:最優熵帳長成
$$ \pi(x,y) = \frac{a(x),b(y)}{Z}, e^{-c(x,y)/\varepsilon} $$
——是兩個行因子 $a$ 與列因子 $b$ 的積!所以可以輪流解出 $a$、$b$(重縮放行、重縮放列)——這正是 Sinkhorn-Knopp 迭代(矩陣縮放,極快,每輪 $O(n^2)$,幾輪即收斂)。
溫度 $\varepsilon$:
- $\varepsilon \to 0$:$W_\varepsilon \to W_0$(真 Wasserstein,尖、難算)。
- $\varepsilon > 0$:$W_\varepsilon$ 是平滑版,用 Sinkhorn 易算。
這,就是寓言裡「工程師的把戲」:用一點不確定(熵)換可算,再把溫度調低,收斂回真答案。
5. 為何重要(那些「深層」連接,都是真的)
最優傳輸不只是「搬糧最省」,它是整個數學最活躍的領域之一:
- Wasserstein GAN(Arjona-Mastrucci 等, 2017):普通 GAN 用 JS 散度,生成時「飽和」(兩堆圖像分布的距離幾乎恆為 1),引導不動;Wasserstein-1「懂形狀」、平滑變化,生成器才知道「糧山該往哪移」,訓練穩。這是生成建模的里程碑之一。
- Schrödinger 橋(1932;2020 年代動態 OT 現代化):不「一舉」搬糧,而是問「讓糧隨時間沿一條分布路徑流動,總動能最小?」這是 OT 的動態版,深連量子力學(Schrödinger 原意)與深層 diffusion 模型(數據分布的「路徑」)。
- 梯度流(Jordan-Kinderlehrer-Ornstein, 1998):Fokker-Planck 方程(布朗粒子雲如何擴散)正是「相對熵」對 Wasserstein 距離的「梯度流」。換言:擴散=糧沿 Wasserstein 地形往低處流。這把偏微分與幾何優雅地統一。
- Hamilton-Jacobi/viscosity 解:對偶勢 $\varphi,\psi$ 在二次成本下滿足 HJ 方程 $|\nabla\varphi|^2 + c = \lambda$(viscosity 意義下)。「價證」,就是那 PDE 的解。OT 因此連到偏微分與變分法。
隱喻對照表
| 故事中的元素 | 最優傳輸/Wasserstein 概念 | 深度解析 |
|---|---|---|
| 蒙日城(Monge) | 最優傳輸理論的誕生地(Monge 1781) | Antoine de Monge 在 1781 年的《De la détermination des forces motrices des eaux》中,首提「如何以最小代價移動土堆」。 |
| 七座糧倉 A…G(各有不同存量) | 來源測度 $\mu$(source distribution) | 七座倉=七個「質量點」,各倉「存糧」=該點「質量」(機率)。$\mu$ 是一個離散測度。 |
| 九個飢荒區 1…9(各有不同需求) | 目標測度 $\nu$(target distribution) | 九個區=目標「質量點」。$\nu$ 是另一個離散測度。 |
| 總糧 = 總需求 | $\int\mu = \int\nu$(質量守恆) | 最優傳輸要求「來源總質量=目標總質量」,否則「搬糧」無解(或需加 source/sink)。 |
| 每座倉指派「唯一」一個區 | Monge 圖(deterministic map)$T:X\to Y$ | Monge 1781 原設:每個來源點「唯一」送往一個目標點。 |
| C 倉的「拆糧」(一半一號、一半四號) | 圖不存在、須「拆」成「帳」(coupling)$\pi$ | 目標離散、質量須「堆」成區時,絕對連續條件失敗,Monge 圖不存在,Kantorovich 鬆弛為「帳」。 |
| 「整本帳」(記每條路線的量) | coupling $\pi\in\Pi(\mu,\nu)$ | 定義在 $X\times Y$ 上的「聯合分佈」,兩邊「邊緣」分別是 $\mu$、$\nu$。 |
| 帳的三條鐵則 | 兩個邊緣約束 + 代價 | ① 每倉「送出」=$\mu$(該倉);② 每區「收到」=$\nu$(該區);③ 代價=$\int c,d\pi$。 |
| 「所有帳中總代價最小者」 | $W_c(\mu,\nu)=\inf_{\pi}\int c,d\pi$ | Wasserstein 距離(以代價 $c$)。$c$=距離時為 $W_1$;$c$=距離²時為 $W_2$。 |
| 「兩堆糧山的距離=搬過去的最小代價」 | Wasserstein 距離「懂形狀」 | 與「重心」(L1/L2)不同,它量的是「質量怎麼重排」,對「山形」敏感:挪一座山一點,距離小變;拆成兩座,距離大變。 |
| 學者「Kantorovich」的覺悟(圖→帳) | Kantorovich 鬆弛(1939) | 從「確定性圖」(Monge)到「coupling」(Kantorovich),是現代 OT 基石。 |
| 稽核官的「價牌」(倉價+區價 ≤ 代價) | Kantorovich 對偶/對偶勢 $(\varphi,\psi)$ | 對偶:$\sup_{\varphi+\psi\le c}\int\varphi,d\mu+\int\psi,d\nu$=原問題最小值。稽核官「不搬糧」,只用「價」證明「代價不會低於某數」。 |
| 「價證總和=最省帳的代價」 | 強對偶(strong duality) | 最優傳輸(在適當條件下)強對偶成立:原問題=對偶。 |
| 年輕學者「Brenier」的「凸景觀」 | Brenier 定理(1991) | 二次成本下,最優帳「總是」圖 $T=\nabla\varphi$($\varphi$ 凸)。 |
| 「凸景觀的梯度」 | $T=\nabla\varphi$(凸函數梯度) | 最優「圖」=單一「凸函數」的「梯度」。搬糧與凸分析是「同一件事」。 |
| 「流向永不交叉」 | 最優圖的單調性/凸性 | 二次成本下最優圖「不交叉」(交叉即可重配對、降代價)。 |
| 工程師的「不確定」(熵)+溫度 $\varepsilon$ | 熵正則化 + 溫度參數 $\varepsilon$ | $W_{\varepsilon}=\inf_{\pi}\int c,d\pi+\varepsilon,\mathrm{Ent}(\pi)$。$\varepsilon\to0$ 收斂到「真」$W_0$。 |
| 「行、列、行、列」重縮放 | Sinkhorn-Knopp 迭代(matrix scaling) | 最優「熵」帳具行列因子化 $\pi=\frac{ab}{Z}e^{-c/\varepsilon}$,輪流求 $a,b$ 即「重縮放」。 |
| 「溫度調低」=「糊減少」 | $\varepsilon\to0$ 極限 | $\varepsilon$ 越小,帳越接近「真」Wasserstein(越尖、越難算)。 |
| 「Wasserstein GAN 的引導」 | Arjona-Mastrucci(2017) | JS 散度在生成時「飽和」(距離恆≈1)無法引導;Wasserstein-1「懂形狀」,引導穩。 |
| 「糧隨時間流動」(動態版) | Schrödinger 橋/dynamic OT | 不「一舉」搬糧,而是沿一條「分布路徑」以「最小總動能」流動,連到量子力學與深層 diffusion。 |
| 「糧沿 Wasserstein 地形下滑」 | 梯度流(JKO 1998) | Fokker-Planck 方程=相對熵對 Wasserstein 距離的「梯度流」。擴散=糧沿 Wasserstein 地形下滑。 |
| 「價證=PDE 的解」 | Hamilton-Jacobi 方程(viscosity 解) | 對偶勢 $\varphi,\psi$ 滿足 HJ 方程(二次成本 $ |
一句話總結:要量「兩堆機率」的距離,最浪漫也最深刻的方式,不是比它們的「中心」,而是「把所有糧山挖起來、搬過去、算出最省的代價」——這最省的代價,就是 Wasserstein 距離;而「找最省帳」的對偶是「稽核官的價證」、「圖」在連續下就是凸函數的梯度、「熵」則把「尖角」磨成「可算」,這四件事,正是**最優傳輸(Optimal Transport)**的靈魂。