Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Diffusion Models

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

Диффузионные модели — это модели генеративного ИИ, которые создают данные, обучаясь обращать постепенный процесс зашумления. При обучении изображения или другие данные искажаются гауссовым шумом за множество небольших шагов, а нейронная сеть учится предсказывать шум на каждом шаге. Для генерации модель начинает со случайного шума и пошагово удаляет его, пока не появится новый образец. Яша Золь-Дикштейн и коллеги предложили этот подход в 2015 году в статье «Глубокое обучение без учителя с использованием неравновесной термодинамики», а Джонатан Хо, Аджай Джайн и Питер Аббил сделали его конкурентоспособным в 2020 году с помощью метода вероятностных диффузионных моделей с устранением шума (DDPM), который установил новый рекорд FID — 3,17 на CIFAR-10. В 2021 году исследователи OpenAI показали, что диффузионные модели превосходят GANs в синтезе изображений ImageNet. Сегодня диффузионные модели и родственные им методы сопоставления потоков лежат в основе систем генерации изображений по тексту, таких как Stable Diffusion, генераторов видео, редакторов изображений и научных моделей.

Как работают диффузионные модели#

Прямой процесс не обучается, а задается заранее. На каждом из T шагов к данным добавляется немного гауссова шума; в DDPM используется T = 1 000, а дисперсия шума линейно растет от 0.0001 до 0.02 на шаг. Поскольку сумма гауссовых шумов также является гауссовой, обучающее изображение можно напрямую преобразовать в любой шаг t по замкнутой формуле, xt = sqrt(alpha_bar_t) * x0 + sqrt(1 - alpha_bar_t) * noise, где alpha_bar_t — произведение 1 - beta за первые t шагов. При обучении многократно выбираются изображение, случайный шаг и новый шум, формируется xt, а сеть учится предсказывать этот шум с помощью среднеквадратичной ошибки — упрощенной целевой функции DDPM. Этот код применяет прямой процесс к фотографии с расписанием DDPM:

import urllib.request

import numpy as np
import torch
from PIL import Image

# DDPM's linear schedule: 1,000 steps whose noise variance rises from 0.0001 to 0.02
betas = torch.linspace(1e-4, 0.02, 1000)
alpha_bar = torch.cumprod(1 - betas, dim=0)

# Load a photo and scale its pixels to [-1, 1]
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg")).convert("RGB").resize((256, 256))
x0 = torch.tensor(np.array(image), dtype=torch.float32).permute(2, 0, 1) / 127.5 - 1

# Jump straight to step t in closed form: x_t = sqrt(alpha_bar) * x0 + sqrt(1 - alpha_bar) * noise
frames = []
for t in (0, 99, 299, 599, 999):
    xt = alpha_bar[t].sqrt() * x0 + (1 - alpha_bar[t]).sqrt() * torch.randn_like(x0)
    frames.append(((xt.clamp(-1, 1) + 1) * 127.5).byte().permute(1, 2, 0).numpy())
    print(f"step {t + 1}: image weight {alpha_bar[t].sqrt():.3f}, noise weight {(1 - alpha_bar[t]).sqrt():.3f}")
Image.fromarray(np.hstack(frames)).save("forward_diffusion.jpg")

Вес изображения снижается с 1.000 на шаге 1 до 0.947 на шаге 100, 0.630 на шаге 300, 0.161 на шаге 600 и 0.006 на шаге 1 000, а вес шума растет до 1.000. На сохраненном изображении forward_diffusion.jpg автобус сначала четкий, затем зернистый, потом едва заметный и наконец исчезает.

При генерации процесс идет в обратном направлении. Он начинается с чистого гауссова шума; на каждом шаге сеть предсказывает шум в текущем образце, алгоритм решения удаляет его часть, а немного очищенный результат передается на следующий шаг. Текстовая подсказка или метка класса поступает в сеть как условие, часто через перекрестное внимание. Безклассификаторное управление, предложенное Джонатаном Хо и Тимом Салимансом, обучает одну сеть как с условием, так и без него, а во время генерации экстраполирует от безусловного предсказания в сторону условного. Более высокий коэффициент управления, например используемое по умолчанию значение 7.5 в конвейерах Stable Diffusion 1.x, точнее следует подсказке за счет снижения разнообразия.

Ускорение генерации#

Для генерации методом DDPM нужно 1 000 вычислений сети на изображение, поэтому значительная часть прогресса в этой области связана с сокращением их количества:

  • Улучшенные алгоритмы генерации: DDIM повторно использует обученную DDPM с детерминированным алгоритмом генерации и создает высококачественные образцы в 10–50 раз быстрее по реальному времени. Более поздние решатели ОДУ сокращают типичную генерацию примерно до 20–50 шагов.
  • Латентная диффузия: модель латентной диффузии устраняет шум в сжатом представлении, полученном автоэнкодером, а не в пикселях. Автоэнкодер Stable Diffusion преобразует изображение размером 512×512×3 в латентное представление 64×64×4, содержащее в 48 раз меньше значений.
  • Дистилляция: модели согласованности учатся напрямую преобразовывать любой зашумленный образец в чистый, что позволяет генерировать за один шаг; латентные модели согласованности применяют ту же идею к Stable Diffusion, сокращая генерацию до 2–4 шагов.
  • Более прямые траектории: сопоставление потоков и выпрямленный поток обучаются на прямых траекториях от шума к данным, по которым решатели могут пройти за меньшее число шагов.

Сама сеть устранения шума перешла от сверточной архитектуры U-Net, использовавшейся в DDPM и Stable Diffusion 1.x, к диффузионному трансформеру (DiT), который применяется в большинстве современных генераторов изображений и видео.

Диффузионные модели и другие генеративные модели#

  • Генеративно-состязательные сети (GANs): GAN генерирует образец за один прямой проход, однако состязательное обучение генератора и дискриминатора может быть нестабильным и приводить к схлопыванию мод, когда генератор охватывает лишь часть данных. Обучение диффузионных моделей представляет собой стабильную регрессию и полнее охватывает распределение данных, но требует множества шагов генерации.
  • Вариационные автоэнкодеры (VAEs): VAE декодирует латентный вектор в образец за один проход, но полученные образцы обычно более размыты. Модели латентной диффузии используют автоэнкодер в стиле VAE только для сжатия изображений, а генерацию выполняет диффузионная модель.
  • Авторегрессионные модели: языковые и визуальные авторегрессионные модели генерируют по одному токену или масштабу за раз, опираясь на предыдущие данные. Диффузионная модель на каждом шаге параллельно уточняет все части образца, а диффузионные языковые модели применяют тот же процесс устранения шума к тексту.

Примеры применения в реальных условиях#

  • Генерация и редактирование изображений: модели генерации изображений по тексту создают изображения на основе подсказок; заливка изображений заново генерирует замаскированную область с учетом окружения; ControlNet задает структуру с помощью карт границ, глубины или позы, а диффузионные модели увеличения разрешения выполняют сверхразрешение.
  • Генерация видео: модели генерации видео устраняют шум в сжатых латентных представлениях сразу множества кадров, поэтому каждый кадр генерируется вместе с соседними.
  • Синтетические обучающие данные: сгенерированные изображения восполняют пробелы в наборах данных для компьютерного зрения, например добавляют редкие дефекты, необычные погодные условия или нетипичные ракурсы. В наборе данных на платформе Ultralytics действие «Создать похожие изображения» создает от 1 до 16 новых изображений за пакет на основе исходного, а выбранные изображения добавляются в набор данных без разметки и готовы к аннотированию.
  • Робототехника: диффузионные политики создают последовательности действий робота путем устранения шума, используя изображения с камеры в качестве условия.
  • Наука: AlphaFold 3 предсказывает структуры комплексов белков, нуклеиновых кислот и небольших молекул с помощью диффузионного модуля, устраняющего шум в исходных координатах атомов и заменяющего модуль структуры AlphaFold 2.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения