Диффузия и потоки
Оптимальный транспорт
Расстояние между распределениями, которое видит геометрию — и его связь с потоками
Другая идея расстояния
KL из блока 4 сравнивает распределения поточечно: если носители не пересекаются, она бесконечна независимо от того, насколько далеко распределения друг от друга. Для генеративных моделей это плохо: две почти правильные модели, промахнувшиеся в разные стороны, неразличимы.
Оптимальный транспорт спрашивает иначе: сколько работы нужно, чтобы перевезти одно распределение в другое?
Три факта, которые стоит знать
В одномерном случае задача решается сортировкой. Оптимальный план — сопоставить -ю по порядку точку одной выборки с -й другой. Проверено перебором всех перестановок на двух выборках по шесть точек: сортировка даёт , полный перебор — то же число.
Между гауссианами есть замкнутая форма. В одномерном случае
| распределения | |
|---|---|
| и | |
| и | |
| и |
Вторая строка — то, чего KL не умеет выразить так же просто: два распределения с общим средним и разной шириной отстоят на конечное расстояние, и оно равно разности стандартных отклонений.
Метрика видит расстояние, а не пересечение. Для непересекающихся носителей KL равна бесконечности, а — расстоянию между ними. Именно поэтому Вассерштейн появился в GAN и почему он естественен для потоков: он измеряет перемещение, а потоки перемещением и занимаются.
Формулировка Бенаму–Бренье: транспорт как поток
Вот связь, ради которой урок стоит в этой ветке. Расстояние имеет динамическую формулировку:
при условии, что поле переносит в . То есть — это минимальная кинетическая энергия потока, переводящего одно распределение в другое.
Отсюда сразу два следствия:
- Оптимальный поток движется по прямым с постоянной скоростью. Из всех способов проехать из точки в точку за единицу времени минимум даёт равномерное прямолинейное движение — это неравенство Коши–Буняковского (блок 1, урок 050), а не свойство транспорта.
- Цель flow matching и цель OT — разные. Flow matching берёт случайные пары ; оптимальный транспорт выбирает пары так, чтобы суммарная стоимость была минимальна. Первое проще, второе даёт прямее.
Minibatch OT: как это используют
Практический приём из урока 090, теперь с объяснением. Вместо случайного сопоставления шума и данных внутри батча решают маленькую задачу транспорта: батч на батч, венгерский алгоритм или Синкхорн. Пары перестают пересекаться, усреднение искажает меньше, маргинальное поле выпрямляется.
| способ пар | стоимость | прямизна |
|---|---|---|
| случайно | нулевая | как есть |
| minibatch OT | или Синкхорн | заметно лучше |
| rectified flow | переобучение | лучше всего, но дороже |
Оговорка, которую стоит держать: OT внутри батча — не глобальный OT. При размере батча решается задача на точках, а не на всём наборе данных, и с ростом приближение улучшается. Это компромисс, а не решение.
Посмотрите, что даёт прямизна для сэмплера: при четырёх шагах прямой путь проходится точно, а кривой — срезается.
- длина пути
- 2.83
- прямое расстояние
- 2.83
- кривизна
- ×1
- ошибка ломаной
- 1.6e-16
Путь совпадает с прямой: минимум кинетической энергии по Бенаму–Бренье достигается ровно на равномерном прямолинейном движении.
Чего оптимальный транспорт не делает
Стоит закрыть популярное ожидание. Знание не даёт генеративной модели: расстояние — это число, а нужна выборка. И решение задачи транспорта между шумом и данными в полной постановке столь же дорого, как сама генерация, — при точках это и требует всех данных сразу.
Практическая роль OT в этой ветке скромнее и точнее: он объясняет, почему прямые пути хороши (минимум энергии), и даёт дешёвое приближение внутри батча. Не более того — и этого достаточно.
Итог
- измеряет стоимость перевозки массы и остаётся конечной при непересекающихся носителях.
- В одном измерении задача решается сортировкой; между гауссианами есть замкнутая форма.
- Бенаму–Бренье переписывает как минимум кинетической энергии потока — отсюда прямые пути.
- Flow matching со случайными парами не решает задачу OT; minibatch OT приближает её и выпрямляет поле.
- Само по себе расстояние генеративной модели не даёт: полезны формулировка и приближение, а не число.
Источники
- Peyré, Cuturi — Computational Optimal Transport — Основной справочник, задача Монжа и Канторовича, алгоритм Синкхорна
- Arjovsky и др. — Wasserstein GAN — Зачем нужна метрика, работающая при непересекающихся носителях
- Tong и др. — Improving and Generalizing Flow-Based Generative Models with Minibatch OT — OT-пары внутри батча для спрямления путей
Проверки
0 из 2Транспорт, энергия и прямизна
Отметьте все верные утверждения об оптимальном транспорте.
Транспорт на прямой
Реализуйте
transport_1d(source, target)— два списка одинаковой длины , каждая точка несёт массу . Стоимость назначения — квадрат расстояния. Верните[optimal_cost, w2, naive_cost, worst_cost]:optimal_cost— минимальная суммарная стоимость по всем сопоставлениям «один к одному». Считать перебор не нужно: на прямой оптимум даёт сортировка обоих списков и сопоставление по порядку;w2= — расстояние Вассерштейна между двумя равномерными наборами точек;naive_cost— стоимость сопоставления «по порядку поступления», то есть -й точки источника с -й точкой цели без всякой сортировки;worst_cost— максимальная суммарная стоимость. Её тоже можно получить без перебора: она достигается на сопоставлении отсортированного источника с целью, отсортированной в обратном порядке.
Проверить себя можно так:
optimal_costникогда не превосходитnaive_cost, аworst_costникогда не меньше обоих.Загрузка редактора…
Ctrl/⌘ + Enter