Глоссарий

Генеративная адверсарная сеть (GAN)

Узнай, как GAN революционизируют ИИ, генерируя реалистичные изображения, улучшая данные и стимулируя инновации в здравоохранении, играх и многом другом.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Генеративные адверсарные сети (GAN) - это мощный класс фреймворков машинного обучения, впервые представленный Яном Гудфеллоу и его коллегами в 2014 году. Они относятся к области генеративного ИИ и известны своей способностью генерировать новые данные, которые имитируют некоторое распределение входных данных. GAN достигают этого за счет состязательного процесса с участием двух конкурирующих нейросетей: генератора и дискриминатора. Эта уникальная архитектура привела к значительным достижениям, особенно в компьютерном зрении.

Как работают GANS

Основная идея GANов заключается в соревновательной игре между двумя сетями:

  1. Генератор: Эта сеть пытается создать синтетические данные (например, изображения, звуки, текст), которые выглядят так, будто они получены из реального набора данных. Она начинает с того, что принимает на вход случайный шум и пытается преобразовать его в реалистично выглядящие выходные данные.
  2. Дискриминатор: Эта сеть выступает в роли судьи. Ее цель - отличить реальные данные (из реальных обучающих данных) от поддельных, созданных генератором. Он выводит вероятность, указывающую на то, насколько вероятно, что входной образец реален.

Во время обучения эти две сети тренируются одновременно. Генератор учится выдавать все более реалистичные данные, чтобы обмануть Дискриминатор, а Дискриминатор становится лучше в выявлении поддельных данных. Этот процесс использует обратное распространение для обновления весов моделей обеих сетей в зависимости от их производительности, руководствуясь определенной функцией потерь. Система достигает равновесия, когда Генератор создает настолько убедительные данные, что Дискриминатор уже не может достоверно их отличить (работает не лучше, чем случайное угадывание).

Ключевые понятия и проблемы

Несколько концепций являются центральными для понимания GAN:

  • Состязательный проигрыш: функции потерь разработаны таким образом, что улучшение Генератора соответствует ухудшению Дискриминатора, и наоборот, что стимулирует соревновательный процесс обучения.
  • Тренируй стабильность: Обучение GAN может быть печально известно своей сложностью. К распространенным проблемам относятся:
    • Коллапс режима: Генератор выдает лишь ограниченное разнообразие результатов, не позволяя охватить все разнообразие тренировочных данных. Узнай больше о коллапсе режимов.
    • Исчезающие градиенты: Дискриминатор слишком быстро становится слишком хорошим, обеспечивая мало полезной обратной связи (градиентов) для генератора, на которых он может учиться. Смотри проблему исчезающего градиента.
    • Неконвергенция: Модели могут не достичь стабильного равновесия.

Исследователи разработали различные техники и архитектурные модификации (например, Wasserstein GANs или WGANs), чтобы смягчить эти проблемы и повысить стабильность обучения.

Применение в реальном мире

GAN нашли множество применений, особенно в генерации визуального контента:

  1. Генерация реалистичных изображений: Такие GAN, как StyleGAN и BigGAN, могут генерировать фотореалистичные изображения высокого разрешения, например человеческие лица( популярный пример -This Person Does Not Exist ), животных или объекты. Эта возможность ценна для создания произведений искусства, игровых активов и потенциального создания синтетических данных для пополнения наборов данных для обучения таких моделей, как Ultralytics YOLO.
  2. Перевод с изображения на изображение: Такие модели, как pix2pix и CycleGAN, могут преобразовывать изображения из одного стиля в другой, например, конвертировать спутниковые снимки в карты, наброски в фотографии или менять времена года на снимках. Изучи примеры перевода изображений.
  3. Дополнение данных: GAN могут генерировать вариации существующих данных, эффективно выполняя их дополнения. Это полезно в таких областях, как анализ медицинских изображений, где реальных данных может быть мало, и помогает повысить надежность диагностических моделей.

GANS в сравнении с другими генеративными моделями

GAN отличаются от других генеративных подходов:

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

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

GAN представляют собой значительную веху в глубоком обучении, раздвигая границы творческого потенциала ИИ. Ты можешь углубиться в эту тему, прочитав оригинальную статью Generative Adversarial Nets. Для практической реализации изучи такие ресурсы, как учебники по GAN вTensorFlow или примеры вPyTorch.

Читать полностью