這是初探最優傳輸 OT (Optimal Transport) 的第三篇, 聊一下應用和 toy example
OT 在 Machine learning 已有許多重要的應用, 例如大名鼎鼎的 “WGAN“ 就使用 EMD (Earth Mover’s Distance) 當 loss 來衡量 generator 產生的分布與目標資料分布兩者間的距離 (JSD 會有 support sets 無交集時的問題, 參考 “WGAN Part 2: 主角 W 登場“ 一文的說明)
還有 flow matching 裡針對一個 batch 可用 OT 找出訓練 conditional probability path 的配對, 這使得訓練更穩定. [筆記連結]
當然在 CV 領域, 已有許多成功的應用, 包含 point cloud mapping, graph 同構/對應, 等等.
更多範例可參考 POT 庫的 Examples gallery 頁面
不過文章前半段想先用另一個例子來說明 OT 的應用: 有關 doubly stochastic matrix (雙隨機矩陣)
再來簡單解釋一下, 求解 EOT 問題用的 Sinkhorn 迭代算法該怎麼計算微分. 如果是可微的 loss, 那自然就能結合到神經網路模型訓練中, 大大提高了可能性.
最後本文會用一個 toy example 展示如何使用 EOT 當 loss, 讓 NN 模型學習從一個初始分布對應到目標分布. 並且也會說明使用 Sinkhorn 演算法的 EOT loss 為什麼可以微分.



初次看到可能會很疑惑, 為啥要多 padding zero vectors? 本文就來解釋一下原因.