Модуль III·Статья II·~3 мин чтения
Оптимальный транспорт и задача Монжа-Канторовича
Гамильтон-Якоби и геометрическая оптика
Превратить статью в подкаст
Выберите голоса, формат и длину — AI запишет аудио
Оптимальный транспорт и задача Монжа-Канторовича
Задача о переноске земли
В 1781 году французский математик Гаспар Монж поставил вопрос: как переместить кучу земли (плотность μ) в яму (плотность ν) с минимальными затратами труда? Задача оказалась невероятно сложной и оставалась нерешённой 160 лет. В 1942 году советский математик Леонид Канторович решил расслабленную версию задачи и получил за это Нобелевскую премию по экономике (1975). Сегодня оптимальный транспорт — это центральная математическая теория, лежащая в основе генеративных нейросетей, обработки изображений, медицины и экономической теории. Это прямое дитя вариационного исчисления в бесконечномерных пространствах.
Задача Монжа: строгая формулировка
Даны две меры μ и ν на пространстве X (например, вероятностные распределения на ℝⁿ) и функция стоимости c(x, y) ≥ 0 (стоимость перемещения «единицы материала» из x в y).
Задача Монжа: найти отображение T: X → X («план переноски»), транспортирующее μ в ν (то есть T_#μ = ν — «образ» μ под T равен ν), минимизирующее суммарную стоимость:
min_T ∫_X c(x, T(x)) dμ(x)
Проблема формулировки Монжа: отображение T — это «детерминированный» план, но иногда оптимально «расщепить» единицу материала. Например, часть земли с места x₁ идёт в яму y₁, часть — в y₂. Монжевский план этого не допускает.
Формулировка Канторовича
Канторович расширил задачу, рассматривая «вероятностные планы» — совместные меры γ(x,y):
min_{γ ∈ Π(μ,ν)} ∫_{X×X} c(x, y) dγ(x, y)
где Π(μ,ν) = {γ : маргинали γ по x и y равны μ и ν соответственно}.
Ключевые свойства:
- Задача Канторовича — линейная по γ (бесконечномерное ЛП!)
- Всегда имеет решение (при разумных условиях на c и μ, ν)
- Задача Монжа — частный случай: γ сосредоточена на графике T
Двойственная задача Канторовича: по теореме двойственности ЛП:
max ∫u(x) dμ(x) + ∫v(y) dν(y) при условии u(x) + v(y) ≤ c(x,y) для всех x,y
Сильная двойственность выполнена: inf = sup.
Расстояние Вассерштейна
W_p-расстояние между вероятностными мерами μ, ν:
W_p(μ, ν) = (min_{γ ∈ Π(μ,ν)} ∫|x−y|^p dγ)^{1/p}
при c(x,y) = |x−y|^p.
Свойства: W_p — настоящая метрика на пространстве вероятностных мер. Сходимость по W_p эквивалентна слабой сходимости + сходимости p-момента.
Пространство Вассерштейна: P_p(ℝⁿ) с метрикой W_p — «пространство форм». Интерполяция между μ и ν по W₂ — это «оптимальный морфинг» между двумя распределениями.
Теорема Брейера-МакКана
Теорема (при c(x,y) = |x−y|²/2, μ абсолютно непрерывна): существует единственное оптимальное отображение T = ∇φ, где φ — выпуклая функция.
Смысл: оптимальный план транспортировки — это «сдвиг вдоль градиента выпуклой функции». Это поразительно: из задачи переноски земли возникает выпуклость!
Полярное разложение Брейера-МакКана: любое отображение T: ℝⁿ → ℝⁿ, сохраняющее меры (T_#μ = ν), разлагается в T = R ∘ ∇φ, где R — поворот (сохраняет расстояние), ∇φ — оптимальный транспорт.
Применения в машинном обучении
WGAN (Wasserstein GAN): обучение генеративных нейросетей. Обычный GAN использует KL-дивергенцию, которая нестабильна при непересекающихся распределениях. WGAN заменяет на W₁:
L(G, D) = W₁(μ_real, μ_G) ≈ max_‖D‖Lip≤1 E{xμ_real}[D(x)] − E_{xμ_G}[D(x)]
Более стабильное обучение, нет mode collapse.
Сопоставление точек (Point Cloud Matching): сопоставить два набора точек {xᵢ} ~ μ и {yⱼ} ~ ν с минимальными затратами. Алгоритм Sinkhorn — быстрый итерационный метод для приближённого решения задачи Канторовича с энтропийной регуляризацией.
Morph между изображениями: усреднение изображений в пространстве Вассерштейна. Барицентр Вассерштейна: min_{ν} Σᵢ wᵢ W₂²(μᵢ, ν). Результат — «средний» образ, сохраняющий геометрию.
Полный разбор: транспортный план в ℝ
Задача: μ = 0.5 δ₀ + 0.5 δ₂ (масса 0.5 в точках 0 и 2), ν = 0.5 δ₁ + 0.5 δ₃ (масса 0.5 в точках 1 и 3). Стоимость c(x,y) = |x−y|².
Допустимые планы: γ задаётся матрицей 2×2 с суммами строк (0.5, 0.5) и столбцов (0.5, 0.5):
γ = [[a, 0.5−a], [0.5−a, a]], a ∈ [0, 0.5].
Стоимость: C(γ) = a|0−1|² + (0.5−a)|0−3|² + (0.5−a)|2−1|² + a|2−3|² = a + 9(0.5−a) + (0.5−a) + a = 4.5 − 8a.
Минимум при a = 0.5: γ = [[0.5, 0], [0, 0.5]] — «монжевский план»: 0→1, 2→3. Стоимость = 0.5. Оптимум!
W₂: √C = √0.5 ≈ 0.707.
§ Акт · что дальше