Diffusion Models
Узнай, как диффузионные модели используют генеративный AI для создания высококачественных данных. Научись улучшать обучение Ultralytics YOLO26 с помощью реалистичных синтетических данных уже сегодня.
Диффузионные модели — это класс алгоритмов генеративного ИИ, которые учатся создавать новые образцы данных, обращая процесс постепенного добавления шума. В отличие от традиционных дискриминативных моделей, используемых для таких задач, как обнаружение объектов или классификация, которые предсказывают метки по данным, диффузионные модели сосредоточены на генерации высококачественного контента — прежде всего изображений, аудио и видео, — который близко имитирует статистические свойства данных из реального мира. Они быстро стали передовым решением для синтеза изображений высокого разрешения, обойдя прежних лидеров, таких как генеративно-состязательные сети (GANs), благодаря стабильности обучения и способности создавать разнообразные результаты.
Как работают диффузионные модели#
Основной механизм диффузионной модели основан на неравновесной термодинамике. Процесс обучения включает две отдельные фазы: прямой процесс (диффузию) и обратный процесс (устранение шума).
- Прямой процесс: на этом этапе структура обучающего изображения систематически разрушается за счёт добавления небольших количеств гауссовского шума на протяжении последовательности временных шагов. По мере продолжения процесса сложные данные, например фотография кошки, постепенно превращаются в чистый неструктурированный случайный шум.
- Обратный процесс: цель нейронной сети — научиться обращать это искажение. Начиная со случайного шума, модель предсказывает шум, добавленный на каждом шаге, и вычитает его. Итеративно удаляя шум, модель «очищает» случайный сигнал, пока не появится связное высококачественное изображение.
Такое итеративное уточнение обеспечивает исключительный контроль над мелкими деталями и текстурой, что является значительным преимуществом по сравнению с методами генерации за один шаг.
Практические применения#
Диффузионные модели вышли за рамки академических исследований и превратились в практические инструменты производственного уровня в различных отраслях.
- Генерация синтетических данных: одно из наиболее ценных применений для инженеров компьютерного зрения — создание синтетических данных для расширения обучающих наборов данных. Если набор данных недостаточно разнообразен — например, в нём отсутствуют изображения автомобилей в снежных условиях, — диффузионная модель может генерировать реалистичные варианты. Это помогает повысить устойчивость моделей компьютерного зрения, таких как YOLO26, при развёртывании в непредсказуемых условиях.
- Восстановление и редактирование изображений: диффузионные модели лежат в основе продвинутых инструментов редактирования, позволяющих пользователям изменять отдельные области изображения. Этот метод, известный как восстановление, может удалять нежелательные объекты или заполнять отсутствующие части фотографии на основе окружающего контекста. Архитекторы и дизайнеры используют его для быстрого прототипирования и визуализации изменений продуктов или окружающей среды без необходимости ручного 3D-рендеринга.
Различия между ключевыми терминами#
Полезно отличать диффузионные модели от других генеративных архитектур:
- Диффузионные модели и GANs: хотя GANs используют две конкурирующие сети — генератор и дискриминатор — и известны высокой скоростью сэмплирования, они часто страдают от «коллапса мод», при котором модель создаёт ограниченное разнообразие результатов. Диффузионные модели обычно стабильнее при обучении и полнее охватывают распределение данных, хотя на этапе инференса они могут работать медленнее.
- Диффузионные модели и VAEs: вариационные автокодировщики (VAEs) сжимают данные в латентное пространство, а затем восстанавливают их. Хотя VAEs работают быстро, их сгенерированные изображения иногда могут выглядеть размытыми по сравнению с чёткими деталями, создаваемыми диффузионными процессами.
Практическая реализация#
Хотя обучение диффузионной модели с нуля требует значительных вычислительных ресурсов, инженеры могут использовать предварительно обученные модели или интегрировать их в рабочие процессы вместе с эффективными детекторами. Например, ты можешь использовать диффузионную модель для генерации вариантов фона в наборе данных, а затем применить Ultralytics Platform для разметки и обучения модели обнаружения на этих дополненных данных.
Ниже приведён концептуальный пример с использованием torch для имитации простого шага прямой диффузии (добавления шума), который лежит в основе обучения таких систем.
import torch
def add_noise(image_tensor, noise_level=0.1):
"""Simulates a single step of the forward diffusion process by adding Gaussian noise."""
# Generate Gaussian noise with the same shape as the input image
noise = torch.randn_like(image_tensor) * noise_level
# Add noise to the original image
noisy_image = image_tensor + noise
# Clamp values to ensure they remain valid image data (e.g., 0.0 to 1.0)
return torch.clamp(noisy_image, 0.0, 1.0)
# Create a dummy image tensor (3 channels, 64x64 pixels)
dummy_image = torch.rand(1, 3, 64, 64)
noisy_result = add_noise(dummy_image)
print(f"Original shape: {dummy_image.shape}, Noisy shape: {noisy_result.shape}")Дальнейшие направления развития#
Эта область быстро развивается в направлении латентных диффузионных моделей (LDMs), которые работают в сжатом латентном пространстве, а не в пространстве пикселей, чтобы снизить вычислительные затраты. Такая эффективность делает возможным запуск мощных генеративных моделей на пользовательском оборудовании. По мере продолжения исследований мы ожидаем более тесной интеграции генеративных входных данных с дискриминативными задачами, например использования сценариев, сгенерированных диффузионными моделями, для проверки безопасности автономных транспортных средств или улучшения анализа медицинских изображений с помощью моделирования редких патологий.









