Введение в генеративно-состязательные сетевые архитектуры и их приложения

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

Этот процесс очень напоминает обычное применение человеческого интеллекта; когда людям, например, показывают несколько образцов архитектуры домов, они в конечном итоге смогут придумать новые, но похожие собственные архитектуры. Генеративное моделирование пытается имитировать это поведение (которое, возможно, приближается к «творчеству») и тем самым еще больше сокращает разрыв между человеческим интеллектом и ИИ.

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

Как работают GAN?

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

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

Цель:

Как обсуждалось ранее, генератор (G) и дискриминатор (D) соревнуются друг с другом в состязательной игре. Математически G и D играют в следующую минимаксную игру для двух игроков с функцией значений V(G,D), где E представляет ожидание.

Мы обучаем D, чтобы максимизировать вероятность присвоения правильной метки как обучающим примерам, так и образцам из G. Одновременно мы обучаем G минимизировать log(1-D(G(z))).

Таким образом, мы выполняем градиентное подъем на дискриминаторе, используя следующее:

И мы выполняем градиентный спуск на генераторе, используя следующее:

Популярные архитектуры GAN

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

DCGAN

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

DCGAN (предложенный в 2015 году) представил сверточные нейронные сети (CNN) в качестве моделей генератора и дискриминатора, что позволяет гораздо более эффективно обрабатывать данные изображения. В этом случае дискриминатор состоит из шаговых сверточных слоев с активационными функциями Leaky ReLU, а генератор состоит из сверточно-транспонированных слоев с активационными функциями ReLU. Обе сети также состоят из слоев пакетной нормализации. Полный код DCGAN можно найти здесь.

Пикс2пикс

GAN — это архитектура для обучения моделей для создания новых изображений. Хотя GAN могут генерировать новые случайные примеры для заданного набора данных, мы не можем контролировать типы генерируемых изображений. Условные GAN или cGAN — это тип сети GAN, который включает условную генерацию изображений с помощью модели генератора. Например, генерация изображений может быть обусловлена ​​меткой класса для создания изображений, специфичных для этого класса.

Pix2pix — это такая структура cGAN для универсального преобразования изображений в изображения. Pix2pix может восстанавливать исходные изображения по их меткам истинности, раскрашивать изображения в оттенках серого и т. д. Полную реализацию Python для pix2pix можно найти здесь.

Pix2pix состоит из сети генератора U-Net (AutoEncoder с пропуском соединений) и сети дискриминатора PatchGAN. Вместо того, чтобы предсказывать, является ли все изображение реальным или поддельным, дискриминатор pix2pix берет [N x N]участок изображения и предсказывает, является ли он реальным или поддельным для каждого пикселя в этом участке. Авторы утверждают, что такой дискриминатор налагает больше ограничений, которые способствуют четкости высокочастотных деталей. Примеры результатов, полученных pix2pix в разных задачах, приведены выше.

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

СРГАН

Super-Resolution GAN или SRGAN — это архитектура GAN, которая решает проблему единого изображения Super-Resolution. Super-Resolution относится к созданию изображений с высоким разрешением из аналогов с низким разрешением.

SRGAN — это генерирующая сеть, в которой используется глубокая (16 блоков) остаточная сеть (SRResNet) с пропуском соединений. В то время как большинство предыдущих подходов использовали минимизацию среднеквадратичной ошибки (MSE) в качестве единственной цели оптимизации, SRGAN оптимизирован для новой потери восприятия. SRGAN вычисляет потери на картах объектов сети VGG вместо традиционных потерь MSE. Это позволяет SRGAN создавать изображения сверхвысокого разрешения с высокими коэффициентами масштабирования (до 4x). Архитектура модели показана выше.

Некоторые результаты реконструкции, полученные SRGAN, показаны ниже.

ЦиклГАН

Как и pix2pix, CycleGAN также является моделью для перевода изображений общего назначения. Основная проблема в pix2pix заключается в том, что для обучения сети требуются парные данные, что облегчается в CycleGAN. Например, в задаче преобразования эскиза в изображение CycleGAN не требует точного эквивалента эскиза фактическому изображению. Примеры того, что подразумевается под парными и непарными данными, показаны ниже.

CycleGAN, в отличие от обычных сетей GAN, использует два набора генераторов и дискриминаторов. Один генератор берет изображения из первого домена в качестве входных данных и выводит изображения для второго домена. Другой генератор берет изображения из второго домена в качестве входных данных и генерирует изображения для первого домена. Каждый из этих генераторов имеет соответствующий дискриминатор, задачей которого является отличить синтезированные изображения от реальных.

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

Некоторые примеры результатов, полученных с помощью CycleGAN, показаны ниже.

СтильGAN

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

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

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

Приложения GAN

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

Увеличение данных

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

Например, Frid-Adar et al. в своей статье использовали сеть DCGAN для расширения своего набора данных КТ печени. Они сравнили производительность обоих классических методов увеличения данных (таких как случайные перевороты, случайные аффинные и т. д.) и увеличили свой набор данных, используя изображения, сгенерированные GAN. Их результаты показаны ниже, показывая явное превосходство методов расширения на основе GAN.

Аудио Синтез

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

WaveGAN использовал архитектуру DCGAN, но модифицировал ее для генерации одномерных выборок вместо двумерных изображений. Авторы разработали модель WaveGAN для создания относительно коротких звуковых эффектов. Они надеялись, что это послужит основой для будущих исследований в области генерации звука, которые могли бы создать законченное музыкальное произведение. Например, авторы обучили WaveGAN на коротких аудиозаписях ударных, в результате чего получилась процедурная драм-машина, предназначенная для помощи электронным музыкантам (демонстрация авторов).

WaveGAN также был протестирован как синтезатор текста в речь, чтобы доказать его возможности по сравнению с современными технологиями; однако использование WaveGAN как такового не было конечной целью. WaveGAN действительно производил звуковые образцы произнесенных цифр, которые люди могут легко идентифицировать. Авторы предоставили несколько примеров звуков, сгенерированных WaveGAN здесь.

Преобразование изображения в изображение

Преобразование изображения в изображение — это класс проблем со зрением и графикой, целью которого является изучение сопоставления между входным и выходным изображениями с использованием обучающего набора выровненных пар изображений. Pix2pix, StyleGAN и CycleGAN, которые мы обсуждали ранее, являются примерами сетей на основе GAN, которые выполняют преобразование изображения в изображение.

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

Здесь идея состоит в том, чтобы создать новую модель, изменив веса предварительно обученной модели GAN. Это побуждает новую модель создавать изображения, которые напоминают эскиз пользователя, сохраняя при этом цвет, текстуру и контекст исходной модели. Это междоменная модель GAN Few-Shot Learning. Примеры результатов, полученных с помощью этой модели, показаны ниже.

Искусство ИИ

От создания мультфильмов до короткометражных фильмов, GAN использовались во всех видах искусства, в том числе для создания искусства NFT.

Например, недавний проект под названием Critical Extant использует ИИ для иллюстрации ограниченных общедоступных данных о флоре и фауне, находящихся под угрозой исчезновения. Для этого алгоритмы на основе GAN были обучены на миллионах изображений из открытых источников около десяти тысяч видов. Затем обученная модель использовалась для создания визуальных представлений видов, находящихся под угрозой исчезновения, но практически не представленных в Интернете, особенно в социальных сетях. Цель проекта состояла в том, чтобы отследить области, в которых нашим знаниям не хватает, и создать петли обратной связи в цифровом мире, чтобы внести позитивные изменения в мир природы. Пример сгенерированного изображения птицы Lanius newtoni (Ньютонов фискальный) показан ниже.

CartoonGAN — это модель на основе GAN, которая преобразует реалистичные изображения в мультфильмы, примеры которых показаны ниже.

Недостатки GAN

Хотя GAN в настоящее время де-факто являются выбором генеративных моделей, есть некоторые предостережения, о которых следует знать:

  1. Нестабильный: GAN обучаются с использованием одного обратного распространения для обучения сетей генератора и дискриминатора. Это может привести к исчезновению градиента, что, в свою очередь, приведет к стагнации обучения сети. Таким образом, GAN по своей сути являются нестабильными сетями.
  2. Сбой режима. Сбой режима происходит, когда генератор может создавать только один тип выходных данных или небольшой набор выходных данных. Это может произойти, когда, например, генератор находит определенный тип данных, который может легко обмануть дискриминатор, и поэтому продолжает генерировать этот тип данных.
  3. Неконвергентность: параметры модели постоянно колеблются. Конвергенция достигается для небольших вариантов использования. Однако сходимость не гарантируется теоретически. Это может быть связано с тем, что, хотя решение может существовать, динамика алгоритма обучения градиентного спуска не позволяет нейронным сетям достичь оптимальных значений параметров.

Заключение

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

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

Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.