【要約】最適輸送とWasserstein距離を丁寧に理解する [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
機械学習エンジニアが、2つの確率分布の差異を定量化しようとする際、従来の指標では分布の幾何学的な位置関係を捉えられないという問題に直面する。具体的には以下の課題がある:
- ・ヒストグラムの差分などの手法では、分布の「ずれ」を適切に評価できない。
- ・生成モデルの学習において、分布間の距離を幾何学的に定義する必要がある。
- ・ドメイン適応において、異なるデータ分布間の整合性を取る指標が不足している。
// Approach
筆者は、分布間の質量移動を最小コストで行う「最適輸送問題」として、分布間の距離を定義するアプローチを採っている。具体的な手順は以下の通りである:
- ・有限個の点と重みを持つ「経験分布」として問題をモデル化する。
- ・輸送計画を、輸送元と輸送先の質量を対応付ける行列 $P$ として定式化する。
- ・非負性、輸送元の質量保存、輸送先の質量保存の制約条件下で、総輸送コストを最小化する線形計画問題を構築する。
- ・コスト関数に距離の $p$ 乗を用い、その結果を $1/p$ 乗することでWasserstein距離を導出する。
// Result
読者は、最適輸送の抽象的な概念を、具体的な行列の制約条件やPythonコードへと落とし込むことができる。本記事を通じて得られる成果は以下の通りである:
- ・最適輸送問題が、行列の制約付き最適化問題として実装可能であることを理解できる。
- ・Wasserstein距離が、分布の幾何学的特徴を反映する強力な指標であることを確認できる。
- ・実用上の課題として、大規模データに対する計算量の増大と、Sinkhornアルゴリズム等の近似手法の必要性を認識できる。
Senior Engineer Insight
> 理論の整理としては非常に明快だが、実戦投入には注意が必要だ。記事で紹介された
scipy.optimize.linprog による解法は、サンプル数 $n$ に対して計算量が爆発的に増加する。大規模なトラフィックやリアルタイム性が求められる現場では、そのまま使うことは不可能だ。実運用では、エントロピー正則化を用いた Sinkhorn アルゴリズムなどの近似解法を選択し、計算コストと精度のトレードオフを管理すべきである。