Примечание. Это блог-семинар, созданный Хаораном Чжу ([email protected]) для COMS 6998: Практическая производительность систем глубокого обучения (весна 2021 г.)

Генеративно-состязательные сети (GAN) относятся к подходу к генеративному моделированию с использованием методов глубокого обучения. В 2016 году Янн ЛеКун назвал это «самой интересной идеей в машинном обучении за последние 10 лет». .

Зачем нам нужны GAN?

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

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

Где мы можем применить GAN?

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

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

Ванильные ГАН

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

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

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

Условные GAN с проекционным дискриминатором

Обзор

CGAN с проекционным дискриминатором были предложены Такеру Миято и Масанори Кояма в 2018 году. CGAN с проекционным дискриминатором использует основанный на проекциях способ включения условной информации в дискриминатор, чтобы уважалась роль условной информации в базовом распределении вероятностей. В частности, дискриминатор использует внутреннее произведение между вектором условий y и вектором признаков. Это отличается от большинства существующих структур CGAN, которые просто объединяют (встроенный) условный вектор с входным или вектором признаков в некотором скрытом слое. Эта разница показана на рис. 5. Однако следует помнить, что использование проекционного дискриминатора основано на важном допущении: распределение условной переменной yпри заданном x (P[y|x]) — дискретное или одномодальное непрерывное распределение.

Авторы применили CGAN с проекционным дискриминатором для двух задач: генерация изображений с условным классом в ImageNet и суперразрешение изображений. Фреймворк показал значительно лучшую производительность в обеих задачах по сравнению с современными фреймворками. Например, как показано в таблице 1, CGAN с проекционным дискриминатором (названным проекция в таблице) достигли гораздо более высокого начального балла (расхождение KL между условным и маргинальным распределением классов) и меньшего внутреннего FID ( FID между сгенерированными изображениями и изображениями набора данных внутри каждого класса). Intra FID измеряет не только визуальное качество, но и разнообразие генерируемых изображений.

Архитектура

Функция потерь дискриминатора определяется выражением

В статье авторы показали, что в предположении, что P[y|x] является дискретным или унимодальным, у нас будет следующее оптимальное решение для указанной выше функции потерь. V — матрица вложения y. Из решения ясно видно, что скалярное произведение между y и phi(x) (вектор признаков) взято.

На рис. 6 показана архитектура CGAN с проекционным дискриминатором для задачи генерации изображений с условным классом в ImageNet. В исходной конструкции в качестве дискриминатора использовался предварительно обученный ResNet-50.

Идеи и наблюдения

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

Однако, несмотря на то, что CGAN с проекционным дискриминатором очень эффективны, остаются вопросы. Прежде всего, что, если предположение не выполняется (например, мультимодальность P[y|x])? Можем ли мы все еще найти улучшение конкатенации? К моменту создания этого поста (насколько мне известно) не было работы, направленной на ответ на этот вопрос.

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

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

GAN с самостоятельным вниманием (SAGAN)

Обзор

Теперь давайте обратим наше внимание на GAN самоконтроля. SAGAN был предложен Zhang et al. в 2019 году в статье под названием Самогенерирующие состязательные сети. Один из его дизайнеров, Ян Гудфеллоу, также является создателем оригинальной GAN.

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

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

Действительно, эксперименты, проведенные авторами, соответствуют нашим ожиданиям. Также наблюдалось значительное улучшение задачи создания изображений в ImageNet. В таблице 2 показано сравнение производительности SAGAN и современных сетей GAN. Следует отметить, что SNGAN-проекция в таблице соответствует CGAN с проекционным дискриминатором, который мы рассмотрели ранее. Таким образом, SAGAN служит общим улучшением CGAN с проекционным дискриминатором.

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

Архитектура

На рис. 8 показано внимание к себе для SAGAN. f(x), g(x) и h(x) — это ключ, запрос и значение соответственно. Бета-оценка внимания определяется

Операция Softmax применяется к каждой строке. Выходной вектор слоя внимания состоит из записей, которые принимают следующую форму

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

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

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

Идеи и наблюдения

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

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

На рис. 8 показаны некоторые примеры изображений из разных классов, сгенерированных SAGAN. В крайнем левом столбце перечислены внутренние FID нашего SAGAN (слева) и CGAN с проекционным дискриминатором (справа). Для таких классов изображений, как золотые рыбки, SAGAN гораздо лучше захватывает геометрические узоры. Для изображений, которые более различимы по текстуре, чем по геометрии, таких как каменная стена и долина, CGAN с проекционным дискриминатором имеет более низкий внутренний FID, чем SAGAN, что подтверждает приведенное выше утверждение. Следовательно, мы должны разумно использовать внимание к себе, в зависимости от того, какой образ мы стремимся создать.

Вывод

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

  1. Гудфеллоу и др. Генеративно-состязательные сети
  2. Мирза и Осиндеро. Условно-генеративные состязательные сети
  3. Хороший парень. Учебник NIPS 2016: Генеративно-состязательные сети
  4. Рэдфорд и др. Неконтролируемое репрезентативное обучение с помощью глубоких сверточных генеративно-состязательных сетей

использованная литература

  1. cGAN с проекционным дискриминатором
  2. Генерирующие на себя состязательные сети
  3. Нежное введение в генеративно-состязательные сети (GAN)
  4. Внимание — это все, что вам нужно