Обзор генеративно-состязательных сетей: от архитектуры к методам обучения

искусственный интеллект алгоритм Нейронные сети Архитектура
Недавно Imperial College, Université de Montréal и другие исследовательские институты совместно опубликовали статью и разобрали генеративно-состязательную сеть, В документе всесторонне изложены концепции, проблемы и методы генеративно-состязательных сетей от самой базовой архитектуры GAN и ее вариантов до обучения процесс и методы обучения решение. Сердце машины кратко представляет статью.

Для полного теоретического вывода и реализации TensorFlow оригинальной GAN (Goodfellow et al., 2014) ознакомьтесь с проектом GitHub и статьей Heart of the Machine:GAN полный теоретический вывод и реализация. Ниже мы представим обзорную статью нашим читателям.


Адрес бумаги:АР Вест V.org/PDF/1710.07…

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


1. Введение

Генератор и дискриминатор обычно состоят из многослойных сетей, содержащих сверточные и/или полносвязные слои. Генератор и дискриминатор должны быть дифференцируемыми, но не обязательно прямо обратимыми (теоретически они должны быть обратимыми). Если генерирующая сеть отображается из некоторого пространства представления, то есть отображает скрытое пространство в пространство данных (нам нужно сосредоточиться на изображении), это можно выразить более формализованно: G : G(z) → R ^|x|, где z ∈ R^|z| — выборка в скрытом пространстве, x ∈ R^|x| — образ, а | · | представляет размерность.

Дискриминационную сеть D исходного GAN можно рассматривать как функцию D : D(x) → (0, 1), которая отображает данные изображения в дискриминационную вероятность (изображение получено из реального распределения данных, а не распределения генератора ). Для фиксированного генератора G дискриминатор D можно обучить, чтобы определить, получено ли изображение из обучающих данных (верно, с вероятностью, близкой к 1) или из генератора (ложно, с вероятностью, близкой к 0). Если дискриминатор уже является лучшим, он станет неподдающимся подделке, и генератору G необходимо продолжить обучение, чтобы снизить точность дискриминатора. Если распределение генератора достаточно хорошо, чтобы полностью соответствовать реальному распределению данных, тогда дискриминатор будет максимально сбит с толку, чтобы дать значение вероятности 0,5 для всех входных данных. На практике дискриминатор может не тренироваться до идеального состояния, мы более подробно рассмотрим процесс обучения в разделе 4.

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


3. Архитектура ГАН

Рисунок 2. Во время обучения GAN генератор может генерировать распределение выборок p_g(x) для соответствия реальным данным p_data(x). При правильной параметризации и обучении GAN эти распределения станут неразличимы. Распределение представления GAN может быть построено с помощью параметров обучения (весов) генеративной и дискриминационной сетей.


A. Полностью подключенная GAN

Первая архитектура GAN использует полносвязные нейронные сети как в генераторе, так и в дискриминаторе. Этот тип архитектуры применяется к относительно простым базам данных изображений, а именно MNIST (рукописные цифры), CIFAR-10 (естественные изображения) и набор данных лиц Торонто (TFD).


B. Сверточная ГАН

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

Состязательная сеть лапласианской пирамиды (LAPGAN) [13] вносит свой вклад в решение этой проблемы, используя многомасштабную декомпозицию формы генеративного процесса: само истинное изображение разлагается на лапласову пирамиду, а условный сверточный GAN обучен генерировать каждый слой с учетом предыдущего слоя.

Кроме того, Рэдфорд и др. [5] (для «глубоких сверточных GAN») предлагают семейство сетевых архитектур, называемых DCGAN, которые позволяют обучать пару глубоких сверточных сетей генератора и дискриминатора. DCGAN использует свертки с шагами и свертки с дробными шагами во время обучения и изучает операторы пространственной субдискретизации и повышающей дискретизации во время обучения. Эти операторы обрабатывают изменения в частоте дискретизации и местоположении, которые являются важными требованиями для отображения из пространства изображения в низкоразмерное скрытое пространство и из пространства изображения в дискриминатор. Раздел IV-B подробно описывает архитектуру и обучение DCGAN.

В качестве расширения синтеза 2D-изображений Ву и др. [14] продемонстрировали GAN, который использует объемную свертку для синтеза образцов 3D-данных. Ву и др. [14] синтезировали новые объекты, такие как стулья, столы и автомобили, а также продемонстрировали метод преобразования 2D-изображений в 3D-изображения.


C. Условный ГАН

Мирза и др. расширили структуру (2D)GAN до условных настроек, преобразовав генератор и дискриминатор в условные классы. Преимущество условных GNN заключается в том, что они могут обеспечить лучшее представление для мультимодальной генерации данных. Условный GAN и InfoGAN [16] параллельны, он может разлагать источник шума на несжимаемый источник и «скрытый код», а также может обнаруживать изменения, максимизируя интерактивную информацию между скрытым кодом и скрытым фактором генератора. Этот скрытый код можно использовать для обнаружения целевых классов в полностью неконтролируемых данных, даже если скрытый код неоднозначен. Представления, изученные InfoGAN, по-видимому, имеют семантические особенности и могут обрабатывать сложные запутанные ситуации во внешнем виде (включая изменения позы, освещение и эмоциональное содержание изображений лица).


Модель логического вывода D.GAN

Исходная форма GAN не может отображать заданный вход x в вектор в скрытом пространстве (в литературе по GAN это часто называют механизмом вывода). Было предложено несколько методов инвертирования генератора предварительно обученных GAN, таких как независимо предложенный Adversarial Learned Inference (ALI) и двунаправленный GAN, которые обеспечивают простое и эффективное масштабирование путем добавления сети вывода, чтобы дискриминатор тестировал как пространство данных, так и скрытое пространство вместе.

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

В идеале выходные данные (восстановленные как входные данные) в модели кодер-декодер должны быть аналогичны входным данным. Как правило, реконструированные выборки данных, синтезированные с использованием ALI/BiGAN, имеют низкую точность. Достоверность выборок можно повысить, дополнительно добавив (выборки данных и их реконструированные) функции состязательной стоимости.


E. Состязательный автоэнкодер (AAE)

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

Рисунок 3. Слева Условный GAN (Conditional GAN), предложенный Mirza et al., может синтезировать изображения в соответствии с классом-условием, дискриминатор определяет, является ли изображение истинным или ложным в соответствии с условным классом. Правильно, InfoGAN, чей дискриминатор также может оценивать метки классов.

Рисунок 4. Архитектура ALI/BiGAN, состоящая из трех сетей. Один из них — дискриминатор, есть сеть, отображающая вектор шума из латентного пространства в пространство изображения (декодер, обозначаемый G), а последняя сеть (кодировщик, обозначаемый E) отображает реальное изображение из изображения пространство в скрытое пространство.


4. Тренируйте ГАН


А. Введение

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

Стоимость обучения оценивается функцией значений V(G,D), которая содержит параметры генератора и дискриминатора.

Процесс обучения можно представить следующим образом:

Во время обучения параметры одной из моделей обновляются, а параметры другой модели фиксируются. Гудфеллоу и др. показывают, что существует единственный оптимальный дискриминатор D∗ (x) = p_data(x) /(p_data(x)+p_g(x)) для фиксированного генератора. Они также показывают, что генератор G является оптимальным, когда pg(x) = pdata(x), что эквивалентно оптимальному дискриминатору, дающему значение вероятности 0,5 для всех выборок x. Другими словами, генератор G оптимален, когда дискриминатор D сбит с толку максимизацией и не может отличить настоящие образцы от поддельных.

В идеале дискриминатор будет обучен на оптимальную работу с текущим генератором, затем генератор снова обновится. Однако на практике дискриминатор не может быть оптимально обучен, поэтому распространенная стратегия заключается в том, что дискриминатор подвергается только небольшому количеству итераций, а генератор и дискриминатор обновляются синхронно. Кроме того, генераторы обычно используют чередующуюся, ненасыщающую норму обучения, используя max_G log D(G(z)) вместо min_G log(1 − D(G(z))).

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


  • Две модели (генератор, дискриминатор) не сходятся [5];
  • Генератор «вылетает», т.е. генерирует одинаковые выборки с разными входными данными [25];
  • Потеря дискриминатора быстро сходится к нулю, так что нет достаточно сильного градиентного пути для продолжения обновления генератора.

Рисунок 5. Основной цикл обучения GAN. Новый тип выборки данных x 'может быть получен путем передачи случайной выборки, z - это случайный шум, полученный и используемый в качестве входных данных для сети генератора. Возможно, дискриминатору потребуется обновить k раз, прежде чем генератор будет обновлен один раз.


Б. Тренировочные навыки

Первым крупным улучшением обучения GAN для генерации изображений стала архитектура DCGAN, предложенная Рэдфордом и др. [5]. Это исследование является дальнейшим исследованием архитектур CNN, ранее использовавшихся в области компьютерного зрения, и содержит ряд рекомендаций по созданию и обучению генераторов и дискриминаторов. В разделе III-B мы упомянули о важности ступенчатых извилин и малых ступенчатых извилин [27], которые являются важными компонентами архитектурного дизайна. Это позволяет генератору и дискриминатору научиться превосходным операциям повышения и понижения дискретизации, которые могут улучшить качество синтеза изображения. Что касается обучения, исследователи рекомендуют использовать пакетную нормализацию [28] в обеих сетях для стабилизации обучения в глубоких моделях. Другое предложение состоит в том, чтобы свести к минимуму количество полностью связанных слоев, используемых для улучшения возможности обучения глубоких моделей. Наконец, Рэдфорд и др. [5] утверждают, что использование функции активации ReLU с утечкой в ​​среднем слое дискриминатора превосходит использование обычной функции ReLU.

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

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

Наконец, одностороннее сглаживание меток заменяет цель дискриминатора с 1 на 0,9, сглаживая границы классификации дискриминатора, предотвращая самоуверенность дискриминатора и давая генератору плохие градиенты. Сондерби и др. [29] улучшили эту идею, добавив шум к образцам, чтобы бросить вызов дискриминатору перед их подачей на дискриминатор. Сондерби и др. [29] утверждают, что одностороннее сглаживание меток искажает лучший дискриминатор, а их метод, шум экземпляра, сближает многообразие реальных и ложных выборок, не позволяя дискриминатору легко найти границу дискриминатора, которая полностью разделяет настоящие. и поддельные образцы. Этот трюк можно реализовать на практике, добавив гауссовский шум к синтетическим и реальным изображениям, чтобы стандартное отклонение постепенно уменьшалось с течением времени. Позже Аржовски и др. [26] формализовали процесс добавления шума к выборкам данных для стабилизации обучения.


C. Корректировка функции затрат

1) Обобщение функции стоимости GAN: Новозин и др. [30] утверждают, что обучение GAN можно обобщить, чтобы не только минимизировать расхождение JS (расхождение Дженсена-Шеннона), но также минимизировать оценку расхождения f. Их можно назвать f-GAN.

2) Другие функции стоимости для предотвращения исчезновения градиентов: Аржовски и др. [32] предлагают WGAN, сеть GAN с дополнительной функцией стоимости, полученной из приблизительного расстояния Вассерштейна.


7. Обсуждение


А. Открытые вопросы

1) Коллапс режима: как описано в главе 4, общей проблемой GAN является коллапс генератора, который может выводить только небольшой класс похожих выборок (частичный коллапс), а в худшем случае может генерировать только простую выборку (полный коллапс). [26], [48].

2) Неустойчивость обучения - седловая точка: в GAN гессиан функции потерь становится неположительно определенным. Следовательно, матрица второго порядка, которая не является положительно определенной, может найти только седловую точку вместо локального минимума.


Б. Заключение

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


от arXiv

Сборник "Сердце машины"

Участие: Лу Сюэ, Лю Сяокунь, Цзян Сыюань


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