Что такое GAN?

Генеративная состязательная сеть (GAN) – это архитектура глубокого обучения. Она учит две нейронные сети конкурировать друг с другом и генерировать более реалистичные новые данные из заданного для обучения их набора. Например, можно создавать изображения или оригинальную музыку из соответствующих баз данных. GAN называют состязательной, потому что она обучает две разные сети и противопоставляет их друг другу. Одна из них генерирует новые данные, беря выборку входных данных и максимально изменяя ее. А вторая пытается предсказать, являются ли полученные выходные данные оригинальными. Другими словами, сеть прогнозирования определяет, являются ли сгенерированные данные поддельными или настоящими. Система создает новые улучшенные версии поддельных данных до тех пор, пока сеть прогнозирования не перестанет отличать подделку от оригинала.

Как можно использовать генеративные состязательные сети?

У архитектуры GAN есть несколько вариаций в разных отраслях. Далее представлены несколько примеров.

Генерация изображений

Генеративные состязательные сети создают реалистичные изображения с помощью текстовых подсказок или путем изменения существующих изображений. Они помогают создавать реалистичные и захватывающие визуальные эффекты в видеоиграх и цифровых развлечениях.

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

Генерация обучающих данных для других моделей

В системах машинного обучения (МО) обучающий набор данных искусственно дополняется путем создания его измененных копий на основе уже имеющейся информации.

Генеративные модели можно использовать для дополнения данных, чтобы создавать синтетические данные со всеми атрибутами реальных. Например, можно генерировать мошеннические данные транзакций, а затем использовать их для обучения другой системы МО, которая будет обнаруживать мошенничество. Благодаря этому система может научиться точно различать подозрительные и подлинные транзакции.

Дополнение недостающей информации

Иногда вам может понадобиться, чтобы генеративная модель точно угадала и дополнила недостающую информацию в наборе данных.

Например, вы можете обучить GAN генерировать изображения поверхности под землей (приповерхностные), предоставив ей информацию о корреляции между данными о поверхности и подземными сооружениями. Изучая известные изображения недр, модель может создавать новые с помощью карт рельефа. Их можно использовать для создания геотермальных карт или улавливания и хранения углерода.

Генерация 3D-моделей на основе 2D-данных

GAN может создавать 3D-модели из 2D-фотографий или отсканированных изображений. Например, когда GAN используется в сфере здравоохранения, она совмещает отсканированные изображения тела и снимки рентгена, чтобы создавать реалистичные изображения органов. Это помогает при планировании и симуляции хирургических вмешательств.


 

Как работает генеративная состязательная сеть?

Генеративная состязательная сетевая система состоит из двух глубоких нейронных сетей – генерирующей и дискриминирующей. Обе сети тренируются в состязательной игре, где одна пытается генерировать новые данные, а другая – угадать, являются ли они поддельными или реальными.

Технически GAN работает описанным ниже образом. Сложное математическое уравнение составляет основу всего вычислительного процесса. Ниже предоставлен упрощенный обзор работы GAN.

  1. Генерирующая нейронная сеть анализирует обучающий набор данных и определяет их атрибуты.
  2. Дискриминирующая нейронная сеть также анализирует исходные обучающие данные и самостоятельно определяет атрибуты.
  3. Генерирующая сеть изменяет некоторые из них, добавляя шум (или что-либо другое) к определенным атрибутам.
  4. После она передает измененные данные дискриминирующей.
  5. Вторая сеть вычисляет вероятность того, принадлежат ли сгенерированные выходные данные исходному их набору.
  6. Дискриминирующая сеть дает генерирующей некоторые рекомендации по снижению рандомизации векторов шума в следующем цикле.

Генерирующая сеть пытается максимально увеличить вероятность ошибки дискриминирующей, а та в свою очередь пытается свести шанс к минимуму. Повторяя обучение раз за разом, генерирующая и дискриминирующая сети развиваются и постоянно противостоят друг другу, пока не достигнут состояния равновесия. В этом состоянии дискриминирующая сеть больше не может распознавать синтезированные данные. На этом тренировочный процесс закончен.


 

Пример обучения GAN

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

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

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

Какие существуют типы генеративных состязательных сетей?

Существуют разные типы моделей GAN в зависимости от используемых математических формул и разных способов взаимодействия генерирующей и дискриминирующей сетей друг с другом.

Далее приведены некоторые часто используемые модели, но этот список не является исчерпывающим. Существует множество видов GAN, таких как StyleGAN, CycleGAN и DiscoGAN, которые решают различные типы проблем.

Оригинальная GAN

Это базовая модель GAN, которая генерирует вариации данных практически без обратной связи от дискриминирующей сети. Оригинальная GAN обычно требует доработки в большинстве реальных случаев использования.

GAN с условиями

GAN с условиями (cGaN) вводит новое понятие – согласование, которое помогает генерировать целевые данные. Генерирующая и дискриминирующая сети получают дополнительную информацию, обычно в виде меток классов или какой-либо другой формы согласования данных.

Например, в качестве условия при создании изображений может быть предоставлена метка, описывающая их содержимое. Согласование позволяет генерирующей сети создавать данные, отвечающие определенным условиям.

Глубокая сверточная GAN

Поскольку у сверточных нейронных сетей (CNN) довольно высокие возможности в обработке изображений, глубокая сверточная GAN (DCGAN) объединяет архитектуры CNN и GAN.

В DCGAN генерирующая сеть использует транспонированные свертки для масштабирования распределения данных, а дискриминирующая сеть – для классификации данных. DCGAN также вводит рекомендации по архитектуре, чтобы сделать обучение более стабильным.

GAN со сверхвысоким разрешением

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

«Пирамида Лапласа» сетей GAN (LAPGAN) решает проблему создания изображений с высоким разрешением, разбивая ее на этапы. При этом используется иерархический подход: несколько генерирующих и дискриминирующих сетей работают с разными масштабами или разрешениями изображения. Процесс начинается с создания изображения с низким разрешением, качество которого улучшается поэтапно.

Как AWS может удовлетворить ваши требования к генерирующим состязательным сетям?

Amazon Web Services (AWS) предлагает множество сервисов для работы с GAN.

Amazon SageMaker – это полностью управляемый сервис, который можно использовать для подготовки данных, создания, обучения и развертывания моделей машинного обучения. Эти модели можно применять во множестве сценариев, а сам SageMaker обладает полностью управляемой инфраструктурой, инструментами и рабочими процессами. Также у него есть широкий набор функций, которые ускоряют разработку и обучение GAN для любого приложения.

Amazon Bedrock является полностью управляемым сервисом. Вы можете использовать его, чтобы получить доступ к базовым моделям (FM) или обученным глубоким нейронным сетям от Amazon и ведущих стартапов в области искусственного интеллекта (ИИ). FM доступны через API, поэтому из нескольких вариантов можно выбрать модель, которая подходит именно вам. Такие модели можно использовать в собственных приложениях GAN. С помощью Amazon Bedrock вы будете быстрее разрабатывать и развертывать масштабируемые, надежные и безопасные приложения для генеративного искусственного интеллекта. И вам не нужно организовывать работу инфраструктуры.

AWS DeepComposer позволяет вам творчески использовать МО. Музыкальный клавишный инструмент и новейшие техники МО помогут вам отточить навыки работы с ним. Ваши разработчики могут начать работать с GAN, независимо от их опыта в сферах МО или музыки. Они смогут обучать и оптимизировать модели GAN для создания оригинальной музыки.

Начните работу с генерирующими состязательными сетями на AWS, создав учетную запись уже сегодня.

AWS: дальнейшие шаги

Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS.

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход