Введение в Генеративно-состязательные сети (GAN – Genereative Adversarial Networks)

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

Адаптированный перевод статьи Jason Brownlee от 17 июня 2019г. в Generative Adversarial Networks

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

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

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

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

В этом посте вы познакомитесь с кратким введением в Генеративно-состязательные сети, или GAN.

В частности, вы узнаете:

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

Давайте начнем

A Gentle Introduction to General Adversarial Networks (GANs)

Введение в Генеративно-состязательные сети (GAN)
Фото Барни Мосса , права защищены.

Содержание

Этот пост состоит из трех частей:

  1. Какие бывают генерирующие Модели?
  2. Что такое Генеративно-состязательные сети?
  3. Зачем нужны Генеративно-состязательные сети ?

Какие бывают генерирующие Модели?

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

Обучение с учителем против обучения без учителя

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

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

В подходе прогнозирующего или контролируемого обучения цель состоит в том, чтобы выучить модель делать отображение входящих данных x в выходящие значения y, учитывая имеющийся набор пар ввода-вывода…

– Страница 2, Машинное обучение: вероятностная перспектива , 2012.

Такое моделирование обычно называют контролируемой формой обучения или обучением с учителем.

Example of Supervised Learning

Пример контролируемого обучения

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

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

Модель строится путем извлечения или суммирования шаблонов, основанных на входных данных. Корректировка модели отсутствует, так как модель ничего не прогнозирует.

Вторым основным типом машинного обучения является описательный или неконтролируемый подход к обучению. Здесь нам дают только входные данные, и цель состоит в том, чтобы найти «закономерности» в данных. […] Это гораздо менее четко определенная задача, так как нам не говорят, какие шаблоны искать, и нет очевидной метрики ошибки, которую следует использовать (в отличие от контролируемого обучения, где мы можем сравнить наш прогноз у для данных х с наблюдаемой величиной).

– Страница 2, Машинное обучение: вероятностная перспектива , 2012.

Такое отсутствие коррекции обычно называют неконтролируемой формой обучения или обучением без учителя.

Example of Unsupervised Learning

Пример обучения без учителя

Примерами неконтролируемых задач обучения являются кластеризация и генеративное моделирование, а примерами неконтролируемых алгоритмов обучения являются K-means и генерирующие состязательные сети.

Дискриминационное и генеративное моделирование

В контролируемом обучении нас часто интересует разработка модели для прогнозирования метки класса на примере входных переменных.

Такая задача прогнозирующего моделирования называется классификацией.

Классификация также традиционно называется дискриминационным моделированием.

… Мы используем данные обучения, чтобы найти дискриминантную функцию f(x), которая отображает каждый элемент x непосредственно в метку класса, тем самым объединяя этапы вывода и принятия решения в одну задачу обучения.

– Страница 44, Распознавание образов и машинное обучение , 2006.

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

Example of Discriminative Modeling

Пример дискриминационного моделирования

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

Такие типы моделей называются генеративными моделям .

Example of Generative Modeling

Пример генеративного моделирования

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

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

– Страница 43, Распознавание образов и машинное обучение , 2006.

Фактически, действительно хорошая генеративная модель может генерировать новые примеры, которые не просто правдоподобны, а неотличимы от реальных примеров из области входных данных.

Примеры генеративных моделей

Наивный Байес – пример генеративной модели, которая часто используется в качестве дискриминационной модели.

Например, Наивный Байес работает, суммируя распределение вероятностей каждой входной переменной и выходного класса. Когда делается прогноз, вероятность для каждого возможного результата вычисляется для каждой переменной, независимые вероятности объединяются, и наиболее вероятный результат является прогнозом. При обратном использовании, распределения вероятностей для каждой переменной могут быть выбраны для создания новых вероятных (независимых) значений признаков.

Другие примеры генеративных моделей включают в себя скрытое распределение Дирихле или LDA и модель гауссовой смеси или GMM.

Методы глубокого обучения могут быть использованы в качестве генеративных моделей. Два популярных примера включают ограниченную машину Больцмана, или RBM, и Deep Belief Network, или DBN.

Два современных примера алгоритмов генеративного моделирования глубокого обучения включают в себя Variational Autoencoder, или VAE, и Generative Adversarial Network, или GAN.

Что такое Генерирующие Состязательные Сети?

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

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

Архитектура GAN была впервые описана в статье Ian Goodfellow , et al. из компании Google в 2014 году под названием « Генериративно-состязательные сети ».

Стандартный подход под названием «Глубокие сверточные генеративно-состязательные сети», или DCGAN, который привел к более стабильным моделям, был впоследствии формализован Алеком Рэдфордом и соавт. в работе 2015 года под названием «Обучение репрезентативной выборки с использованием неконтролируемых генериративно-состязательных сетей».

Большинство современных GAN в определенной степени основаны на архитектуре DCGAN …

Учебное пособие NIPS 2016: Генерирующие Состязательные Сети , 2016.

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

  • Генератор. Модель, которая используется для генерации новых правдоподобных примеров из области переменных задачи.
  • Дискриминатор. Модель, которая используется для классификации примеров как реальных (из реальной области) или поддельных (сгенерированных).

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

– Страница 699, Deep Learning , 2016.

Модель генератора

Модель генератора принимает случайный вектор фиксированной длины в качестве входных данных и генерирует выборку.

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

Это векторное пространство называется скрытым пространством или векторным пространством, состоящим из скрытых переменных . Скрытые переменные – это те переменные, которые возможны для наблюдения в исходной области, но не наблюдаются напрямую.

Латентная переменная – это случайная переменная, которую мы не можем наблюдать непосредственно.

– Страница 67, Deep Learning , 2016.

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

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

– Страница 270, Deep Learning with Python , 2017.

После обучения модель генератора сохраняется и используется для генерации новых примеров.

Example of the GAN Generator Model

Пример модели генератора GAN

Модель Дискриминатора

Модель дискриминатора берет пример из области входных данных (действительный или сгенерированный) и предсказывает двоичную метку класса реального или поддельного (сгенерированного).

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

Дискриминатор – это нормальная (и хорошо понятная) классификационная модель.

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

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

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

Обучение неконтролируемой репрезентации с использованием глубоких сверточных генеративно-состязательных сетей , 2015.

Example of the GAN Discriminator Model

Пример модели дискриминатора GAN

GAN как игра для двух игроков

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

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

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

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

Учебное пособие NIPS 2016: Генерирующие состязательные сети , 2016.

Таким образом, две модели конкурируют друг с другом, они соперничают в смысле теории игр и играют в игру с нулевой суммой (антагонистическая игра).

Поскольку инфраструктуру GAN можно естественно проанализировать с помощью инструментов теории игр, мы называем GAN «состязательными».

Учебное пособие NIPS 2016: Генеративные состязательные сети , 2016.

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

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

В конце генератор каждый раз создает точные реплики из входной области, а дискриминатор не может определить разницу и предсказывает «неуверенно» (например, 50% для реального и поддельного) в каждом случае. Это просто пример идеализированного случая; нам не нужно добираться до этой точки, чтобы прийти к полезной модели генератора.

Example of the Generative Adversarial Network Model Architecture

Пример архитектуры модели Генеративно-состязательной сети

[обучение] заставляет дискриминатор попытаться научиться правильно классифицировать образцы как реальные или поддельные. Одновременно генератор пытается обмануть классификатор, представляя, что его образцы реальны. При конвергенции выборки генератора неотличимы от реальных данных, и дискриминатор всегда выдает 1/2. Затем дискриминатор может быть отброшен.

– Страница 700, Deep Learning , 2016.

GAN и сверточные нейронные сети

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

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

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

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

Условные GAN

Важным расширением GAN является их использование для условного генерирования выходных данных.

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

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

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

Условные Генерирующие Состязательные Сети , 2014.

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

Таким образом, условная GAN может использоваться для генерации примеров из области данного типа.

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

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

Example of a Conditional Generative Adversarial Network Model Architecture

Пример условной архитектуры модели Генериративно-состязательной сети

Зачем нужны Генеративно-состязательные сети?

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

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

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

Успешное генеративное моделирование обеспечивает альтернативный и потенциально более предметно-ориентированный подход для увеличения данных. Фактически, увеличение данных – это упрощенная версия генеративного моделирования, хотя это редко описывается таким образом.

… Увеличение выборки скрытыми (ненаблюдаемыми) данными. Это называется увеличением данных. […] В других задачах скрытые данные являются фактическими данными, которые могли бы наблюдаться, но отсутствуют.

– Страница 276, Элементы статистического обучения , 2016.

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

Существует много причин, по которым GAN интересны, важны и требуют дальнейшего изучения. Ян Гудфеллоу описывает некоторые из них в своей основной конференции и связанном с ней техническом отчете 2016 года под названием « Учебное пособие по NIPS 2016: Генерирующие состязательные сети ».

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

Возможно, наиболее убедительное применение GAN – это условные GAN для задач, которые требуют генерации новых примеров. Здесь , Ян Гудфеллоу указывает три главных примера:

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

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

Можно сказать, что “удивительные” не является достаточным прилагательным для характеристики их способности и успеха.

Example of the Progression in the Capabilities of GANs from 2014 to 2017

Пример развития возможностей GAN с 2014 по 2017 год. Взятые из Злонамеренное использование искусственного интеллекта: прогнозирование, предотвращение и смягчение последствий , 2018.

Дальнейшее чтение

Этот раздел предлагает больше ресурсов по теме, если вы хотите изучить ее более подробно.

Posts

Books

Papers

Articles

Резюме

В этом посте вы ознакомились с кратким введением в Генериративно-состязательные сети, или GAN.

В частности , вы узнали:

  • Что такое GAN, включая контролируемое и неконтролируемое обучение и дискриминационное и генеративное моделирование.
  • Что GAN представляют собой архитектуру для автоматического обучения генеративной модели, рассматривая неконтролируемую задачу как контролируемую и используя как генеративную, так и дискриминационную модель.
  • Что GAN обеспечивают путь к сложному расширению данных для исходной области и решению задач, которые требуют генеративного подхода, такого как, например, преобразование изображения в изображение.
Поделиться...
Поделиться в facebook
Поделиться в twitter
Поделиться в vk