Всестороннее введение компьютерных генеративных моделей

Вы не поверите, но изображение справа вверху полностью создано компьютером на основе реального изображения Ли Сянь Луна слева. Здесь его изображение лица было «опровергнуто», но при этом сохранялась его отличительная внешность. Оппа - это термин на корейском языке, обозначающий старшего брата. Это также выражение нежности для красивых корейских актеров. Это примерный пример преобразования изображений стилей, когда цифровые изображения преобразовываются в разные, но определенные стили. Реалистичность получаемых изображений впечатляет, учитывая, что они были искусственно созданы компьютером.

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

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

Контур

  1. Интуиция. Краткое введение для интуитивного понимания концепции GAN.
  2. Генеративные модели. Почему стоит изучать генеративные модели (где GAN является одной из структур моделирования)?
  3. Генеративные состязательные сети. Базовая структура и архитектура GAN.
  4. Обучение модели GAN. Как обучить генератор и дискриминатор в GAN?
  5. Основные варианты GAN. Модификация архитектуры, позволяющая использовать сети GAN в различных задачах синтеза изображений.
  6. Применение GAN. Некоторые приложения и текущие модели GAN.

1. Интуиция

Вы смотрели фильм Поймай меня, если сможешь с Леонардо Ди Каприо в главной роли? Он был основан на реальной истории мошенника Фрэнк Абигнейл , который подделал чеки заработной платы на миллионы долларов. Он настолько преуспел в этом, что в конце концов ФБР обратилось к нему, чтобы помочь поймать других фальсификаторов.

GAN очень похожи на состязательную игру афериста против ФБР. Здесь у нас есть генератор, который пытается подделать вещи - картины Ван Гога, романы Шекспира, фортепианные композиции Бетховена - или имитировать стиль игры покойного пианиста Гленна Гулда. И у нас есть дискриминатор, который пытается определить, является ли предмет поддельным или подлинным.

Изначально генератор (аферист) выдавал хреновые имитации. Дискриминатор (ФБР) идентифицировал эти подделки и легко поймал афериста. Но после того, как бесчисленное количество раз попадал в тюрьму и выходил из нее и совершенствовал свои замыслы, мошенник учится создавать все более и более реалистичные имитации. В какой-то момент его имитация стала неотличима от подлинных вещей.

2. Генеративные модели

Большинство из нас, изучающих машинное обучение, вероятно, больше знакомы с дискриминирующими моделями: двоичными классификаторами, многоклассовыми классификаторами, многоклассовыми классификаторами и т. Д. Классификатор фиксирует условную вероятность P ( c | x): вероятность из метка класса c с учетом наблюдения x. Генеративные модели, с другой стороны, фиксируют вероятность P (x) или совместную вероятность P (x, c) наблюдения.

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

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

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

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

В более формальном определении генеративная модель 𝐺, параметризованная 𝜃, принимает на вход случайный вектор шума z и генерирует выходной образец 𝐺 (z; 𝜃) с распределением вероятностей p_generated. Хорошая генеративная модель способна генерировать новые правдоподобные выборки, которые неотличимы от реальных входных выборок. Другими словами, p_generatedp_input.

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

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

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

3. Генеративные состязательные сети (GAN)

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

  • генераторная сеть G, которая принимает вектор случайного шума z для генерации синтетических данных G (z), и
  • дискриминаторная сеть D, которая принимает реальные данные x и синтетические данные и определяет, является ли конкретная выборка данных реальной или поддельной.

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

4. Обучение модели GAN

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

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

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

4.1. Фаза обучения дискриминатору.

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

4.2 Фаза обучения генератора

Обучение генераторной сети немного сложнее. Он включает в себя как генераторную, так и дискриминаторную сети. Итерация обучения генератора включает следующие шаги:

  1. Пример случайного шума.
  2. Произвести выход генератора.
  3. Передайте вывод на дискриминатор.
  4. Рассчитайте потери двоичной классификации.
  5. Обратное распространение через дискриминатор и генераторную сеть.
  6. Обновите только веса генератора.

5. Варианты GAN

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

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

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

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

В статье авторы представили структуру глубокого сверточного генератора, разработанную для их экспериментальных нужд. Структура показана на рисунке ниже. Первый уровень генератора принимает 100-мерный равномерно распределенный шум 𝑧 в качестве входного сигнала для полностью подключенной сети. Результат преобразуется в 4-мерный тензор и используется в качестве начала стека свертки. Затем серия из четырех сверток с дробным шагом преобразует это высокоуровневое представление в изображение размером 64 × 64 пикселя. Для дискриминатора последний сверточный слой сглаживается, а затем подается на одиночный сигмоидальный выход.

5.2 Условный GAN (CGAN)

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

Условный вектор произвольный. Например, в статье CGAN авторы используют горячие векторы метки класса, чтобы заставить GAN генерировать цифры MNIST. Они также продемонстрировали автоматическую маркировку изображений, обусловленную вектором признаков изображения, извлеченным сверточным слоем предварительно обученного AlexNet.

5.3 Дополнительный классификатор GAN (ACGAN)

ACGAN - это расширение условной GAN, которое модифицирует дискриминатор, добавляя дополнительную задачу: предсказать метку класса данного изображения поверх реальной / фальшивой классификации. Известно, что принуждение модели к выполнению дополнительных задач (многозадачное обучение) повышает производительность исходной задачи. Он имеет эффект стабилизации процесса обучения и позволяет генерировать большие высококачественные изображения, одновременно изучая представление в скрытом пространстве, которое не зависит от метки класса. Структура ACGAN показана ниже. Авторы продемонстрировали, что этот метод может помочь создать более четкое изображение с более высоким разрешением.

5.4 Двунаправленный GAN (BiGAN)

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

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

Структура BiGAN показана ниже. В дополнение к генератору 𝐺 из стандартной структуры GAN, BiGAN включает кодировщик 𝐸, который сопоставляет данные x со скрытыми представлениями z . Дискриминатор BiGAN 𝐷 различает не только в пространстве данных (x по сравнению с 𝐺 (z)), но и совместно в данных и скрытом пространстве (кортежи ( x, 𝐸 (x)) по сравнению с (𝐺 (z), z)), где скрытый компонент является либо выходом кодировщика 𝐸 (x), либо входом генератора z.

6. Заявление

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

6.1 Супер разрешение изображения

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

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

Последние модели: Progressive Face Super Resolution (2019), Super-Resolution для изображений лиц с камер наблюдения (2021)

6.2 Рисование изображения

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

Последние модели: Deepfillv2 (2019 г.), EdgeConnect (2019 г.)

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

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

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

Последние модели: pix2pixHD-Aug (2020), toon2real (2021)

Выводы

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

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

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

  1. I.J. Гудфеллоу, Дж. Пуже-Абади, М. Мирза, Б. Сюй, Д. Вард-Фарли, С. Озаир, А. К. Курвиль и Ю. Бенжио, Генеративные состязательные сети (2014), NIPS .
  2. I.J. Гудфеллоу, NIPS 2016 Tutorial: Generative Adversarial Networks (2017), ArXiv, abs / 1701.00160.
  3. А. Рэдфорд, Л. Метц и С. Чинтала, Неконтролируемое обучение представлений с помощью глубоких сверточных порождающих состязательных сетей (2016), arXiv: cs.LG / 1511.06434
  4. М. Мирза и С. Осиндеро, Условные порождающие состязательные сети (2014), arXiv: cs.LG / 1411.1784
  5. А. Одена, К. Олах и Дж. Шленс, Условный синтез изображений с вспомогательными классификаторами GAN (2017), arXiv: stat.ML/1610.09585
  6. Дж. Донахью, П. Крахенбюль и Т. Даррелл, Adversarial Feature Learning (2017), arXiv: cs.LG / 1605.09782
  7. К. Ледиг, Л. Тайс, Ф. Хусар, Дж. Кабальеро, А. Айткен, А. Теджани, Дж. Тотц, З. Ван и В. Ши, Фотореалистичное сверхразрешение одиночного изображения с использованием генерирующей состязательной сети (2017), Конференция IEEE 2017 года по компьютерному зрению и распознаванию образов (CVPR), 105–114.
  8. Б. Долганский и К. Кантон-Феррер, Изображение глаз с образцами генеративных враждебных сетей (2018), Конференция IEEE / CVF 2018 по компьютерному зрению и распознаванию образов, 7902–7911.
  9. П. Изола, Дж. Чжу, Т. Чжоу и А.А. Эфрос, Преобразование изображения в изображение с использованием сетей условной конкуренции (2017 г.), Конференция IEEE 2017 г. по компьютерному зрению и распознаванию образов (CVPR), 5967–5976.
  10. Ф.Х. Танака и К. Аранья, Увеличение данных с помощью GAN (2019), ArXiv, abs / 1904.09135.
  11. А. Чациагапи, Г. Параскевопулос, Д. Сгуропулос, Г. Пантазопулос, М. Никандроу, Т. Джаннакопулос, А. Катсаманис, А. Потамианос и С. С. Нараянан, Увеличение данных с использованием GAN для распознавания речевых эмоций (2019), INTERSPEECH.