Диффузия и потоки
Ланжевеновская динамика
Сэмплирование по одному только score — и почему без шумового члена оно не работает
Один шаг
Есть score. Как из него получить выборки? Ответ короче ожидаемого:
Первое слагаемое — обычный градиентный подъём по (блок 5). Второе — шум, и множитель у него , а не : это ровно тот масштаб, при котором стационарным распределением цепи оказывается , а не что-то другое.
При и числе шагов распределение сходится к . Заметьте, чего здесь нет: ни нормировочной константы, ни самой плотности — только её score.
Почему без шума не работает
Уберите шумовой член, и останется градиентный подъём. Он находит моду и там остаётся. Поставьте температуру в нуль и посмотрите на readout «доля времени у мод».
- макс. |score|
- 17.72
- длина пути
- 98.5
- доля времени у мод
- 32.4%
Разница между двумя режимами — это разница между двумя разными задачами:
| градиентный подъём | Ланжевен | |
|---|---|---|
| что находит | одну моду | выборку из |
| соотношение мод | теряется | сохраняется |
| куда сходится | точка | распределение |
| зачем нужен | оптимизация | генерация |
Для генеративной модели первый столбец бесполезен: он даёт «самое типичное» изображение, а нужны разные.
Три источника ошибки
Теория обещает сходимость при и бесконечном числе шагов. На практике не то и не другое, и стоит понимать, чем именно платят.
Смещение дискретизации. При конечном стационарное распределение цепи — не , а что-то рядом, и расхождение растёт с . Исправляется поправкой Метрополиса–Гастингса (блок 3, урок 170), которая делает цепь точной ценой шага принятия/отклонения.
Конечное время смешивания. Чтобы перейти из одной моды в другую, блуждание должно пройти область низкой плотности, где score почти нулевой (урок 040) и движение случайно. Время такого перехода растёт экспоненциально с глубиной разделяющей ямы. Практически это означает, что цепь застревает в той моде, где стартовала.
Неизвестный score вне носителя. Сеть обучалась там, где были данные. Стартовая точка блуждания берётся из широкого распределения — то есть заведомо оттуда, где оценка score недостоверна.
Отжиг по уровням шума
Последние две проблемы решаются одним приёмом, и он же оказывается диффузией.
Возьмём семейство зашумлённых версий распределения: — это данные плюс гауссов шум масштаба . Тогда
| что происходит с | |
|---|---|
| большое | почти гауссиана; мод нет, ям нет, носитель — всё пространство |
| среднее | моды проступают, но разделены неглубоко |
| малое | почти исходные данные, ямы глубокие |
Сэмплирование идёт от большого к малому, каждый раз запуская Ланжевена на несколько шагов и передавая результат дальше. При большом переходы между модами дёшевы, потому что ям почти нет; к моменту, когда ямы появляются, точка уже находится в правильной области.
Это в точности annealed Langevin, и это же — обратный процесс диффузии, записанный по-другому. Урок 060 покажет, что и обучение здесь то же самое.
Что дают ручки виджета
| ручка | что меняет | что видно |
|---|---|---|
| шаг | размер и подъёма, и шума | большой — грубее и быстрее, смещение растёт |
| температура | только шум | — подъём, — сэмплирование, — плоское распределение |
| guidance | умножает score | сэмплирование из : моды острее, хвосты беднее |
Про третью строку стоит сказать точно, потому что она пригодится в уроке 080. Умножение score на — это в точности score распределения , поскольку
То есть «усилить guidance» математически означает «сэмплировать из более острого распределения», и температура в языковых моделях — та же операция с .
Итог
- Ланжевен превращает score в сэмплер: подъём плюс шум масштаба .
- Без шума это поиск моды, а не генерация; соотношение мод теряется полностью.
- Три источника ошибки: смещение дискретизации, экспоненциальное время смешивания, недостоверный score вне данных.
- Отжиг по уровням шума решает две последние — и оказывается диффузией.
- Умножение score на = сэмплирование из . Эта строчка вернётся в уроке 080.
Источники
- Roberts, Tweedie — Exponential convergence of Langevin distributions — Сходимость и смещение дискретизации
- Song, Ermon — Generative Modeling by Estimating Gradients of the Data Distribution — Annealed Langevin и почему одного уровня шума не хватает
Проверки
0 из 2Подъём, шум и отжиг
Отметьте все верные утверждения о ланжевеновской динамике.
Смещение дискретизации
Возьмём одномерную гауссиану с нулевым средним и дисперсией . Её score равен , поэтому ланжевеновский шаг превращается в
то есть в обычный процесс AR(1) с коэффициентом и шумом дисперсии . Его стационарная дисперсия равна , что сокращается до замкнутой формы.
Реализуйте
langevin_bias(variance, eps)— верните[stationary_variance, bias, relative_percent, max_stable_eps]:stationary_variance= ;bias— разность со стационарной дисперсией истинного распределения, то есть с ;relative_percent— смещение в процентах от ;max_stable_eps= — шаг, при котором и цепь перестаёт сходиться.
Проверьте по дороге, что действительно сокращается до формулы выше: это упражнение на две строки алгебры.
Загрузка редактора…
Ctrl/⌘ + Enter