Математика воображения: подробный разбор работы Stable Diffusion и DALL-E

Computerphile 1,1 млн 17 мин 3 мин 04.10.2022
Главное

Эта статья основана на видео с YouTube-канала Computerphile, в котором эксперт подробно разбирает механизмы работы современных генераторов изображений, таких как Stable Diffusion и DALL-E, противопоставляя их классическим нейросетям.

🤖 От классических GAN к диффузионным моделям 0:00

До появления диффузионных моделей стандартом в генерации изображений были GAN (Generative Adversarial Networks — генеративно-состязательные сети) . Их работа строится на взаимодействии двух нейросетей: «Генератора», который пытается создать изображение из случайного шума, и «Дискриминатора», который должен отличить подделку от реального фото из обучающей выборки .

Однако у GAN есть несколько критических недостатков:

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

📉 Математика разрушения: процесс диффузии 3:03

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

  1. На первом этапе кролик еще узнаваем .
  2. На промежуточных — изображение становится «зернистым».
  3. На финальном этапе (обозначаемом как время T) картинка превращается в абсолютно бессмысленный шум .

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

Благодаря свойствам гауссовского шума, исследователям не нужно генерировать всю последовательность промежуточных картинок вручную. Математически можно сразу «прыгнуть» к любому этапу (например, к шагу №7) и получить нужное состояние изображения для обучения .

🧠 Обучение на «вычитании»: как сеть учится видеть 6:17

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

Процесс обучения выглядит так:

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

📝 Управление творчеством через текст 11:53

Процесс удаления шума сам по себе порождает случайные образы. Чтобы управлять результатом, используется кондиционирование (conditioning) — внедрение текстовых подсказок .

Для этого фраза (например, «лягушки на ходулях») прогоняется через трансформерную модель (аналог GPT), которая превращает слова в математические векторы — эмбеддинги . Эти данные подаются в нейросеть вместе с зашумленным изображением. Теперь сеть предсказывает не просто абстрактный шум, а шум, который мешает увидеть именно лягушек .

Трюк с Classifier-Free Guidance (CFG)

Чтобы изображения максимально соответствовали тексту, разработчики используют «хак» под названием Classifier-Free Guidance .

💰 Доступность и стоимость технологий 16:03

Создание таких моделей требует колоссальных ресурсов. Обучение современной нейросети уровня DALL-E или Stable Diffusion обходится в сотни тысяч долларов из-за объема данных и вычислительной мощности .

Однако, по словам автора видео, для конечного пользователя все проще:

Ведущий отмечает, что веса нейросети на всех этапах цикла генерации остаются общими . Это позволяет использовать одну и ту же модель многократно для постепенного «проявления» изображения из хаоса.

💬 Цитаты

«В диффузионных моделях мы пытаемся упростить процесс до итеративной последовательности маленьких шагов.»

автор видео 02:49

«Математически оказывается намного проще предсказывать шум, чем сразу выдавать готовое изображение.»

автор видео 11:39
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
GAN
Тип нейросетей, где две модели (генератор и дискриминатор) соревнуются друг с другом.
U-Net
Архитектура нейросети (энкодер-декодер), используемая для обработки и восстановления изображений.
Эмбеддинг
Преобразование слов или понятий в векторы чисел, понятные компьютеру.
Гауссовский шум
Тип случайного шума, распределение значений которого соответствует нормальному закону.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Stable Diffusion DALL-E диффузионные модели U-Net Google Colab