Автор: Александр Ковальчук
Генеративные модели
Генеративные модели — это специальный класс моделей машинного обучения, способных порождать некоторый выходной сигнал. Этот сигнал имеет схожие характеристики (или схожее распределение) с теми данными, на которых он обучался.
Под капотом такие модели оценивают апостериорную вероятность наблюдения данных $P(x)$. Это знание они используют для генерации новых сэмплов.
Часто генеративные модели строятся таким образом, чтобы иметь возможность включать некоторое условие в сам процесс генерации. Следовательно, они оценивают условную апостериорную вероятность $P(x \mid y)$, где $y$ — репрезентация некоторого условного сигнала.
Генеративные модели применяются к большому числу целевых доменов: текстам, аудио, изображениям, видео и др. Конечно, структура целевого сигнала влияет на архитектуру модели машинного обучения — работает она в авторегрессионной манере или нет, из каких слоев состоит, какие механизмы могут использоваться для внедрения условной информации в генеративный процесс.
Давайте остановимся на моделях, генерирующих изображения. Их классификация следующая:
- VAE, или Variational Autoencoder — вариационный автокодировщик. Основан на энкодер-декодер архитектуре. Энкодер значительно сжимает входной сигнал в некоторое внутреннее представление; при сжатии часть информации теряется. Декодер разжимает это внутреннее представление в оригинальный сигнал. По такому принципу работает обычный автокодировщик. Чтобы его можно было назвать вариационным, в архитектуру добавляют еще более узкое горлышко — теперь выходом энкодера является не просто некоторое скрытое представление, а параметры некоторого распределения. Затем они используются декодером для сэмплирования. Самые известные представители этого семейства моделей: VQ-VAE, VQ-VAE-2 и AutoEncoderKL.
- GAN, или Generative Adversarial Network — генеративно-состязательная сеть. Состоит из двух частей: генератора и дискриминатора (иногда его называют критиком). Генератор порождает некоторый выходной пример, а дискриминатор пытается отличить его от реальных данных. Процесс тренировки таких моделей заключается в minimax состязании между этими двумя моделями. GAN'ы — очень красивый концепт, хоть и подверженный различным проблемам в сходимости. Но научное сообщество смогло разработать большое количество техник для борьбы с ними. Для обучения модели используют различные adversarial функции потерь (minimax loss / NSGAN, LSGAN, EBGAN, BEGAN, WGAN, WGAN-GP). Наиболее известные представители здесь: ProGAN, StyleGAN, StyleGAN2, Alias-Free GAN / StyleGAN3, BigGAN, pix2pixHD и SPADE.
- NF, или Normalizing flow — нормализирующие потоки. Основаны на построении набора инвертируемых преобразований, которые трансформируют простое вероятностное распределение в более сложное. В отличие от других моделей, они в явном виде получают оценку распределения данных $P(x)$, что позволяет их использовать как для генерации новых данных, так и для оценки реалистичности имеющихся примеров. Самые известные архитектуры данного семейства — RealNVP, NICE и Glow.
- Diffusion-based models — диффузионные модели. Обучаются так, чтобы итеративно удалить шум с сигнала со случайным шумом. Простота обучения и элегантность таких моделей сильно повлияла на всю генеративную сферу последних лет. Наиболее известные модели: ImageGen, DALL-E, DALL-E 2, Kandinsky и, конечно, Stable-Diffusion.
В этой статье мы сфокусируемся на диффузионных моделях и способах их дообучения.
DDPM
DDPM расшифровыватся как “Denoising Diffusion Probabilistic models”. Эти модели относятся к классу моделей со скрытыми латентными переменными. То есть мы предполагаем, что вместе с чистыми сэмплами $x_0$ существуют латенты $x_1, \dots, x_T$ одной размерности с чистыми данными.
$$
p_{\theta}\left( x_0 \right) := \int p_{\theta} \left( x_{0:T} \right) \mathrm{d} x_{1:T}
$$
Для таких моделей определяются два процесса: прямой диффузный и обратный denoise процессы.
![Рисунок 1. Denoising Diffusion Probabilistic Models [источник: arXiv:2006.11239]](https://prod-files-secure.s3.us-west-2.amazonaws.com/fb875fd6-d46b-4f75-8a43-7beca7a54a5e/8fb2335a-c824-4599-a2d2-804da9b8076a/ddpm.gif)
Рисунок 1. Denoising Diffusion Probabilistic Models [источник: arXiv:2006.11239]
Прямой диффузный процесс
Процесс диффузии состоит из нескольких шагов, на каждом из которых случайный гауссовый шум добавляется ко входному сигналу. Это приводит к постепенному зашумлению входного сигнала до тех пор, пока мы не получим чистый гауссовый шум.