Добро пожаловать в первую часть захватывающей серии блогов, в которой мы углубимся в мир диффузионных моделей — передового класса генеративных моделей, которые штурмом покоряют ландшафт ИИ!

В этом вступительном блоге мы раскроем основные понятия и терминологию, используемые в новаторской статье Вероятностные модели шумоподавления (DDPM). Эта основа поможет понять сложные темы, которые мы рассмотрим в следующих статьях этой серии. Я надеюсь, что этот блог пробудит ваше любопытство и страсть к этой инновационной области исследований ИИ.

Вероятностные модели диффузионного шумоподавления (DDPM) – это одна из статей, в которой развиваются основы, заложенные в статье: Глубокое обучение без учителя с использованием неравновесной термодинамики) к новому классу генеративных моделей, использующих процесс распространения.

Процесс диффузии относится к способу рассеивания шума (выбранного случайным образом из нормального распределения) в изображение до тех пор, пока не останется ничего, кроме шума. Этот процесс называется итеративным процессом прямой диффузии (рис. 1). Как только исходное изображение полностью зашумлено, следует процесс обратной диффузии (рис. 1) с использованием шумоподавляющего объектива. Проще говоря, необходимо удалить шум, который добавляется при прямом распространении.

Это удивительно, так как в отличие от GAN (у которого есть трудности с обучением из-за враждебных отношений между сетями генератора и дискриминатора), существует простая функция потерь (цель шумоподавления), которую необходимо минимизировать.

Рисунок 1: Стрелка вперед показывает процесс прямой диффузии. Стрелка в обратном направлении отмечает процесс обратной диффузии, кредиты: CVPR 2022 Tutorial)

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

Но как, черт возьми, вы даже убираете шум с изображения, которое представляет собой не что иное, как шум? Как выглядит этот шумоподавляющий объектив? Как мы можем прийти к такой целевой функции шумоподавления?

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

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

Рисунок 2: Основы распределения Гаусса (нормального)

  1. Распределение Гаусса и шум (рис. 2). На рис. 2 N(μ, σ²) представляет собой нормальное (гауссово) распределение со средним значением μ и дисперсией σ². Среднее значение (μ) указывает на центр распределения, а дисперсия (σ²) определяет разброс или дисперсию распределения. Более высокая дисперсия подразумевает больший разброс значений шума, а более низкая дисперсия указывает на более плотную группировку значений шума вокруг среднего значения. Уравнение 1 на рисунке 2 представляет собой прием повторной параметризации, с помощью которого случайные выборки могут быть сгенерированы из стандартного нормального распределения. Как? Все из-за ε, который представляет собой случайную величину, выбранную из стандартного нормального распределения N(0, 1).
  2. Представление/фиксация дисперсии линейным уравнением: Из рисунка 2 мы знаем, что N(μ, σ²) представляет собой нормальное (гауссово) распределение со средним значением μ и дисперсией σ². Допустим, что σ²_start — это начальная дисперсия в начале процесса распространения. Всего есть T шагов времени диффузии, и на каждом временном шаге я хочу линейно увеличивать дисперсию. Могу ли я это сделать? Конечно, верно? Представьте дисперсию линейным уравнением, таким как σ²(t) = σ²_start + (σ²_end — σ²_start) * (t / T), где t — текущий шаг диффузии (0 ≤ t ≤ T), а σ²_end — окончательная дисперсия в конце процесса диффузии. Можем ли мы сказать, что σ²(t) известно, поскольку мы увеличиваем его с линейной скоростью на каждом временном шаге? Да.
  3. Временные шаги: скажем, t обозначает текущий временной шаг, t-1 обозначает предыдущий временной шаг, а 0 обозначает начальное время. Зачем это нужно? В процессе прямой диффузии мы добавляем шум, верно? Скажем, на 0-м временном шаге у нас было исходное изображение. мы добавили немного шума на шаге времени 1 и так далее. Предположим, что текущий временной шаг равен t.
  4. Процесс прямой диффузии: преобразование исходного изображения в полный шум. (Рисунок 1). Как объяснено в пункте 2, предположим, что в прямой диффузии мы начали с момента времени 0, а текущая/последняя итерация по времени — это временной шаг t.
  5. Процесс обратной диффузии. Обратный шум и возврат от полностью зашумленного изображения к исходному изображению. Из точки 3 мы знаем, что процесс прямой диффузии прекратился на временном шаге t. Куда мы вернемся оттуда?Очевидно, на временном шаге 0, почему? (рисунок 1). Таким образом, в процессе обратной диффузии мы вернемся от временного шага t к временному шагу 0.
  6. Две простые функции (рис. 3): первая – "q", отмеченная цифрой 1, а вторая – "p", отмеченная цифрой 2 на рис. 3. Что это?
    Думая о первой функции: Допустим, у нас есть информация об изображении в момент времени «t-1», первая функция «q» определена для прямого процесса. Он оценивает выходное изображение в текущий момент времени t, учитывая изображение на предыдущем временном шаге (t-1). Разве это не логично? Если я знаю изображение в момент времени t-1 и знаю, что я добавляю/рассеиваю в изображение между каждым временным шагом, я буду знать о выходном изображении в текущий момент времени. время. Но как узнать, что мы добавляем между каждым временным шагом?

Рисунок 3: Определения процесса прямой и обратной диффузии

Думая о второй функции:скажем, у нас есть информация об изображении в момент времени «t», вторая функция «p» определена для обратного процесса. Он оценивает изображение на временном шаге t-1, учитывая изображение на предыдущем временном шаге (t).

Это совершенно нелогично и одновременно умопомрачительно. Как, черт возьми, я могу двигаться к удалению шума и созданию изображения, которое становится более значимым с каждым временным шагом в обратном процессе?

7. Определение первой функции (рис. 3 и 4): Выше мы сказали, что в прямом процессе мы добавляем шум, который выбирается случайным образом из нормального распределения. В документе DDPM он определяется следующим образом (рис. 4):

Рисунок 4: Определение процесса прямой диффузии с точки зрения нормального распределения

Что такое, черт возьми, β(t) выше на рисунке 4? Почему он появляется в среднем и дисперсии в процессе прямой диффузии? В документе DDPMβ(t) — это уровень шума (дисперсия) на шаге t в соответствии с графиком шума.Да, как объяснялось в пункте 2, шум можно планировать. Также , как объяснялось в пункте 2 в статье DDPM, шум планируется линейно.

Объяснение среднего значения (рис. 4): Второй член среднего значения указывает, как изображение в интервале времени (t-1) уменьшается до добавления шума. Когда β(t) мало, коэффициент масштабирования sqrt(1 — β(t)) близок к 1, что означает, что данные в основном остаются неизменными. По мере увеличения β(t) коэффициент масштабирования уменьшается, что приводит к более значительному уменьшению масштаба данных. Это масштабирование гарантирует, что добавленный шум оказывает большее влияние на данные по мере продвижения процесса распространения.

Объяснение дисперсии (рис. 4): β(t) * Iуказывает ковариационную матрицу, представляющую количество шума, добавленного к данным на шаге t. Шум считается изотропным, то есть он влияет на все измерения в равной степени, поэтому он умножается на единичную матрицу. Ковариация определяет распространение шума, при этом чем больше β(t), тем больше к более широкому распространению и более значительному влиянию на данные.

β(t) появляется как в среднем, так и в ковариации уравнения процесса прямой диффузии для управления масштабированием данных и количеством шума, добавляемого на каждом этапе. Следуя графику шума β(t), процесс прямой диффузии постепенно искажает исходные данные с увеличением уровня шума.

8. Определение второй функции (рис. 3 и 5): В прямом процессе мы добавляли шум и определяли прямой процесс с помощью нормального распределения. Применяя ту же интуицию для обратного процесса, можем ли мы сказать, что его также можно определить с помощью нормального распределения? (Ответ да). Скажем, мы представляем это, как показано ниже:

Рисунок 5: Определение процесса обратной диффузии с точки зрения нормального распределения

Однако теперь, как видно из рисунка 5, нам неизвестно среднее значение этой функции нормального распределения/перехода (переход от изображения в момент времени t к моменту t-1). Однако среднее μ неизвестно, а σ² известно (как объяснено в пункте № 5).

Таким образом, все, что нам нужно сделать, чтобы получить μ, чтобы выяснить процесс обратной диффузии, представленный функцией p (рис. 5). Как мы можем сделать это? давайте вызовем нейронную сеть. Что, если мы параметризуем µ? Допустим, я представляю μ в процессе обратной диффузии следующей функцией:

Рисунок 6: Формулировка среднего в процессе обратной диффузии в виде нейронной сети

На рисунке 6 f — это нейронная сеть, которая принимает x_t и временной шаг t в качестве входных данных и выдает среднее значение μ(x_t, t) в качестве выходных данных. Используя нейронную сеть, модель может изучать сложные нелинейные преобразования зашумленных данных, которые необходимы для восстановления исходных данных. Поэтому в DDPM авторы параметризовали μ, и поэтому уравнение на рисунке 6 можно переписать как:

Рисунок 7: Определение процесса обратной диффузии в терминах параметризованного нормального распределения

Таким образом, я помещу нейронную сеть между временным шагом t в процессе обратной диффузии, чтобы достичь временного шага t-1 (рис. 8). В DDPM для представления обратного процесса используется магистраль U-Net (рис. 8).

Рисунок 8: Визуальное представление того, как работает обратная диффузия. Снижение шума от времени t до времени t-1.

…так как это становится больше, вывод целевой функции должен быть продолжен в части 2 и части 3

(ссылка на часть 2)…

(ссылка на часть 3)…

Если вам это нравится или вы считаете это полезным, хлопайте в ладоши и делитесь.