Шум превращает оптимизацию в генерацию
Градиентный спуск ищет один минимум и застревает в нём. Добавьте к каждому шагу немного случайного шума — и алгоритм перестаёт «искать дно», а начинает путешествовать по всему ландшафту, заглядывая в каждую долину тем чаще, чем она глубже. Так оптимизация превращается в сэмплирование. На этом стоят диффузионные модели, которые рисуют картины из шума.
От спуска к блужданию
Обычный градиентный спуск делает шаг против градиента: x \leftarrow x - \nabla U(x)\,\Delta t. Динамика Ланжевена добавляет к нему гауссов толчок: x \leftarrow x - \nabla U(x)\,\Delta t + \sqrt{2T\,\Delta t}\;\xi,\qquad \xi\sim\mathcal N(0,I). Параметр T — температура. При T=0 это в точности спуск: частица скатывается в ближайший минимум и остаётся там. При T>0 толчки позволяют выбираться из ям и переходить через барьеры.
В непрерывном пределе \Delta t \to 0 у этой динамики есть стационарное распределение — больцмановское p(x)\propto e^{-U(x)/T}. Дискретная итерация выше — лишь его приближение: при слишком большом шаге \Delta t возникает ошибка дискретизации. То есть в равновесии частица проводит время в каждой точке тем чаще, чем ниже там энергия. Глубокие ямы населены плотнее мелких; высота T задаёт, насколько резок этот контраст.
Посмотрите на облако
Все частицы стартуют из одного угла. Двигайте температуру:
- T=0 — чистая оптимизация: всё облако стекает в одну ближайшую яму и замирает.
- малое T — переходы через барьеры редки, частицы почти заперты.
- большое T — частицы заселяют все ямы; глубочайшая удерживает больше всего массы.
При чём тут диффузионные модели
Поле -\nabla U — это градиент логарифма плотности, \nabla \log p; в машинном обучении его называют score. Ключевое наблюдение: чтобы сэмплировать из распределения, не нужно знать само p — достаточно знать его score, и Ланжевен сделает остальное. Score-based и диффузионные модели именно так и устроены: нейросеть учится предсказывать score зашумлённых данных, а генерация — это запуск Ланжевена, который ведёт шум обратно к данным.
Барьеры между модами проходимы только при достаточной температуре. Если сразу взять малое T, частица застрянет в первой попавшейся яме и не увидит остальные моды распределения. Поэтому в диффузии шум подают по расписанию — от большого к малому: сначала грубая разведка всего ландшафта, потом тонкая настройка внутри найденной моды.
Связи
- Как методы спускаются с горы (§ оптимизаторы): Ланжевен — это градиентный спуск плюс шум.
- Глобальная оптимизация (§ отжиг): имитация отжига — тот же приём, где температуру медленно снижают, чтобы найти глобальный минимум, а не сэмплировать.
- Тяжёлые хвосты (§ тяжёлые хвосты): форма распределения решает, насколько показательно «среднее» по сэмплам.