Узнайте, как диффузионные модели используют генеративный ИИ для создания высокоточных данных. Узнайте, как улучшить обучение Ultralytics с помощью реалистичных синтетических данных уже сегодня.
Диффузионные модели — это класс генеративных алгоритмов искусственного интеллекта, которые учатся создавать новые образцы данных путем обратного процесса постепенного добавления шума. В отличие от традиционных дискриминативных моделей, используемых для таких задач, как обнаружение или классификация объектов, которые предсказывают метки на основе данных, диффузионные модели сосредоточены на генерации высококачественного контента — в первую очередь изображений, аудио и видео — который точно имитирует статистические свойства реальных данных. Они быстро стали передовым решением для синтеза изображений высокого разрешения, обогнав предыдущих лидеров, таких как генеративные состязательные сети (GAN), благодаря стабильности обучения и способности генерировать разнообразные результаты.
Основной механизм диффузионной модели основан на неравновесной термодинамике. Процесс обучения состоит из двух отдельных фаз: прямого процесса (диффузия) и обратного процесса (удаление шума).
Это итеративное уточнение позволяет исключительно точно контролировать мелкие детали и текстуру, что является значительным преимуществом по сравнению с одноэтапными методами генерации.
Модели диффузии вышли за рамки академических исследований и стали практичными инструментами производственного уровня в различных отраслях промышленности.
Полезно отличать диффузионные модели от других генеративных архитектур:
Хотя обучение диффузионной модели с нуля требует значительных вычислительных ресурсов, инженеры могут использовать предварительно обученные модели или интегрировать их в рабочие процессы наряду с эффективными детекторами. Например, вы можете использовать диффузионную модель для генерации вариаций фона для набора данных, а затем использовать Ultralytics для аннотирования и обучения модели обнаружения на этих улучшенных данных.
Ниже приведен концептуальный пример использования 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}")
Эта область быстро развивается в направлении моделей латентной диффузии (LDM), которые работают в сжатом латентном пространстве, а не в пространстве пикселей, чтобы снизить вычислительные затраты. Такая эффективность позволяет запускать мощные генеративные модели на потребительском оборудовании. По мере продолжения исследований мы ожидаем более тесной интеграции между генеративными входными данными и дискриминативными задачами, такими как использование сценариев, сгенерированных диффузией, для проверки безопасности автономных транспортных средств или улучшения анализа медицинских изображений путем моделирования редких патологий.