Интуиция, стоящая за строительными блоками моделей диффузии

Диффузионные модели — это генеративные модели, используемые в различных областях глубокого обучения. В настоящее время они в основном используются для генерации изображений и звука. В частности, эти модели являются движущей силой впечатляющих моделей генерации изображений, таких как Dalle2 и Stable диффузия. Я уверен, что вы видели блестящие изображения, созданные этими моделями. Впечатляющие результаты — просто свидетельство того, насколько захватывающим является прогресс в области глубокого обучения.

Что такое Диффузия?

В физике диффузия — это просто общее движение чего-либо; (атомы, энергия) из области большей концентрации в область меньшей концентрации. Теперь представьте, что капните маленькую каплю краски в стакан с водой, плотность краски будет сосредоточена в одном месте, но со временем капля будет диффундировать в воду, пока не достигнет равновесия. Разве не было бы здорово, если бы мы могли обратить этот процесс вспять? К сожалению, это невозможно. Но модели диффузии пытаются подогнать модель с конечной целью обратить этот процесс вспять.

Интуиция, стоящая за моделями диффузии

Мы можем обобщить модели диффузии не лучше, чем авторы Глубокого обучения без учителя с использованием неравновесной термодинамики:

Основная идея состоит в том, чтобы систематически и медленно разрушать структуру в распределении данных с помощью итеративного процесса прямой диффузии. Затем мы изучаем процесс обратной диффузии, который восстанавливает структуру данных, создавая очень гибкую и удобную генеративную модель данных.

Модели диффузии пытаются воспроизвести процесс диффузии, итеративно добавляя шум к исходному изображению. Мы продолжаем добавлять шум, пока изображение не станет чистым шумом. Шум определяется цепью событий Маркова. Цепь Маркова — это модель событий, в которой каждый временной шаг зависит только от предыдущего временного шага. Марковское свойство определяется следующим образом:

P(Xₙ = iₙ | Xₙ₋₁)

Таким образом, любая последовательность случайных величин X₀, X₁, X₂, …, Xₙ, удовлетворяющая вышеуказанному условию, может рассматриваться как цепь Маркова. Именно это марковское предположение делает изучение добавленного шума податливым. После обучения модели прогнозированию шума на каждом временном шаге модель сможет генерировать изображения с высоким разрешением на основе входных данных гауссового шума. Подводя итог: мы продолжаем добавлять шум к изображению, пока у нас не останется ничего, кроме чистого шума. Затем мы обучаем нейронную сеть удалять этот шум. Итак, диффузионные модели состоят из двух этапов:

  1. Процесс прямого распространения
  2. Процесс обратной диффузии

Процесс прямой диффузии

Процесс прямой диффузии — это этап, на котором структура данных разрушается. Это делается путем применения выборки шума из нормального распределения. Окончательное изображение впоследствии будет сходиться к чистому шуму z ~ N (0, 1). Количество шума, применяемого к каждой метке времени, не является постоянным. График используется для масштабирования среднего значения и дисперсии. В исходной статье DDPM от OpenAI применялся линейный график. Но исследователи, опять же, из OpenAI, обнаружили, что это приводит к множеству избыточных шагов распространения. Поэтому в своей статье «Улучшенные вероятностные модели шумоподавления и диффузии» они реализовали свой собственный косинусный график.

Прямой процесс определяется как q(xₜ|xₜ₋₁). Эта функция просто добавляет шум на каждом временном шаге t. Математическое определение прямого процесса выглядит следующим образом: q(xₜ|xₜ₋₁) = N(xₜ; sqrt{1-βₜ}xₜ, βₜI). Возможно, вы помните из своих занятий по статистике, что нормальное распределение параметризуется средним значением и дисперсией. sqrt{1-βₜ}xₜ является средним значением. βₜI — дисперсия. Бета, которые вы видите в этом уравнении, представляют собой просто значения в диапазоне от 0 до 1 0‹β₁‹β₂‹…‹β_T‹1; Бета-версии непостоянны и регулируются графиком отклонений. Обычно предполагается повторять этот процесс для каждого временного шага t. Выполнение этого процесса всего за один шаг сэкономило бы нам много вычислительных ресурсов. Давайте посмотрим, как это делается. Во-первых, давайте определим αₜ = 1-βₜ. Затем мы можем определить совокупный продукт всех альф α⁻ₜ = ∏aₛ. Теперь, используя прием перепараметризации, мы можем переписать вышеупомянутую формулу следующим образом:

Используя альфы, мы можем переписать это как:

Как вы уже догадались, теперь мы можем распространить это на предыдущие временные шаги:

Используя произведение всех альф, окончательное уравнение примет следующий вид:

Поздравляю! Это было все для процесса прямой диффузии :)

Процесс обратной диффузии

Было бы неплохо обратить описанный выше процесс вспять, вычислив q(xₜ₋₁|xₜ). К сожалению, этот расчет требует каждого временного шага. Таким образом, мы возвращаемся к нейронной модели, которая учится аппроксимировать эти условные вероятности. В обратном процессе нейронная сеть будет предсказывать среднее значение по изображению. Нейронная сеть рассмотрит изображение и попытается определить распределение изображений, откуда это изображение пришло в прямом процессе.

Наша функция потерь для моделей диффузии — это просто -log(pθ(x₀)). Проблема в том, что диффузионные модели — это модели со скрытыми переменными, которые принимают следующую форму:

Как вы понимаете, эта форма не имеет замкнутого решения. Решение этой проблемы состоит в том, чтобы вычислить вариационную нижнюю границу. Обратите внимание, что знание происхождения VAE может помочь вам понять следующие формулы. Весь обратный процесс определяется следующим образом:

Поскольку это совместное распределение, мы должны умножить каждый обратный процесс. Помните, что pθ(xₜ₋₁|xₜ) переводит вас из более шумного изображения в менее шумное. Я упомянул вариационную нижнюю границу, но что это такое? На высоком уровне допустим, что у нас есть функция f(x), которая неразрешима. Если мы сможем доказать, что у нас есть функция g(x), которая меньше, чем f(x). Затем, максимизируя g(x),мы можем быть уверены, что f(x) также увеличится. Давайте сравним -log(pθ(x₀)), добавив расхождение KL к нашей исходной функции f(x) = -log(pθ(x₀)).

Переписав дивергенцию КЛ через теорему Байеса, мы получим следующее:

Таким образом, наша вариационная нижняя граница становится:

Наша цель теперь состоит в том, чтобы сделать правую часть аналитически вычислимой. Начнем с того, что перепишем журналы как продукты:

Используя правило произведения логарифмов, мы можем переписать правую часть:

Вычитание первого члена суммы дает нам следующее:

Переписав q(xₜ|xₜ₋₁), используя теорему Байеса и обработав входное изображение при t = 0:

Замена:

Используя правило продукта:

Второе суммирование можно упростить еще больше. Возьмем T равным любому числу, вы увидите, что большинство членов сокращаются, и у вас останется следующее:

Замена:

Используя правило частного, мы можем переписать два последних члена:

Вы можете видеть, что первый и последний члены сокращаются. Приведение в порядок нашей формулы с другим использованием правила частного:

Теперь мы можем записать логарифмическиетермы в KL-дивергенции:

Авторы статьи DDPM проигнорировали первый термин. Как упоминалось выше, термин pθ(xₜ₋₁|xₜ) можно переписать как нейронную сеть, предсказывающую среднее значение:

q(xₜ₋₁|xₜ, x₀) имеет решение в закрытой форме, как упоминалось ранее. Мы можем записать это как:

Авторы использовали простую среднеквадратичную ошибку между фактическим μ и предсказанным μ. Используя определение, которое выходит за рамки этого сообщения в блоге, чтобы доказать, они пришли к следующему:

Используя приведенное выше определение, мы можем упростить среднеквадратичную ошибку до:

Это термин, на котором мы делаем шаг вперед в градиентном спуске! После всех этих упрощений мы пришли к следующему выводу: предсказать шум. Окончательная целевая функция принимает следующий вид:

Поздравляю! Вы прошли через обратный процесс.

Что такое стабильная диффузия?

Стабильная диффузия — это альтернатива OpenAI Dalle.2 с открытым исходным кодом. Поскольку стабильная диффузия — это модель скрытой диффузии, я попытаюсь дать общее объяснение LDM. Помните, как процесс обратной диффузии использует нейронную сеть для постепенного уменьшения шума? Stable Diffusion использует U-Net, которая представляет собой нейронную сеть на основе свертки, которая понижает разрешение изображения до более низкого размера и восстанавливает его во время повышения частоты дискретизации. Пропускные соединения добавляются между слоями понижающей и повышающей дискретизации для лучшего потока градиента. Приглашение вводится в модель путем объединения текстовых вложений, созданных из языковой модели, с представлением изображения. Уровни внимания в U-Net позволяют модели обращать внимание на текстовые маркеры посредством перекрестного внимания.

LDM, как следует из названия, не работают с необработанными пикселями. Вместо этого изображение кодируется в меньшее пространство с помощью кодировщика. Затем изображение декодируется обратно в исходное пространство с помощью декодера. Это позволяет процессу диффузии работать в небольшом/скрытом пространстве и завершает шумоподавление в этом пространстве. Вы можете думать об этом как об автоэнкодере, охватывающем процесс распространения. Вот почему это называется скрытой диффузией; мы реализуем процесс диффузии не в пикселях, а в скрытом пространстве. Следующего изображения должно быть достаточно, чтобы резюмировать LDM:

Краткое содержание

  1. Модели диффузии работают, итеративно добавляя шум к изображению, а затем обучая нейронную сеть распознавать шум и восстанавливать изображение.
  2. U-Nets — наиболее широко используемая нейронная сеть для обратного процесса.
  3. Пропуск соединений и уровни внимания добавляются в U-Net для повышения производительности.
  4. LDM работают, кодируя изображение в меньшее скрытое пространство и реализуя процесс распространения в этом пространстве, затем изображения восстанавливаются с помощью декодера.

Рекомендации

Документы:

  1. Глубокое обучение без учителя с использованием неравновесной термодинамики
  2. Удаление шума из вероятностных моделей диффузии
  3. Улучшенные вероятностные модели диффузионного шумоподавления

Видео:

  1. Модели распространения | Бумага Объяснение | Объяснение математики
  2. Диффузионные модели с нуля в PyTorch
  3. DDPM — диффузионные модели превзошли GAN по синтезу изображений (объяснение исследовательской работы по машинному обучению)
  4. Как работает стабильная диффузия? - ОБЪЯСНЕНИЕ моделей скрытой диффузии

Письменные учебники:

  1. Что такое диффузионные модели?
  2. Как работают модели распространения: математика с нуля