В этом посте описываются GAN basic, StyleGAN и StyleGAN2, предложенные в «Анализе и улучшении качества изображения StyleGAN». План сообщения выглядит следующим образом.

1. GAN Basic

2. показатели оценки GAN

- 2.1. Начальное расстояние Фреше

- 2.2. Перцепционная длина пути

3. StyleGAN

- 3.1. Прогрессивный рост

- 3.2. АдаИН

- 3.3. Сетевая архитектура StyleGAN

- 3.4. Смешивание регуляризации

4. Анализ StyleGAN

5.StyleGAN2

- 5.1. резюме и ключевые идеи

- 5.2. Методы StyleGAN2

- - 5.2.1. Метод нормализации вместо AdaIN

- - 5.2.2. Метод создания изображений с высоким разрешением вместо прогрессивного роста

- - 5.2.3. Регуляризация длины пути для сглаживания скрытого пространства

- 5.3. Полученные результаты

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

1. GAN Basic

GAN расшифровывается как Generative Adversarial Networks и представляет собой структуру для создания изображений с использованием обучения без учителя.

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

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

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

С другой стороны, во время обучения Генератора параметры Дискриминатора фиксируются. Генератор учится выводить второй член уравнения равным 0. То есть значение D (G (z)) становится равным 1. Поскольку первый член является фиксированным значением, выполняется обучение, чтобы минимизировать общая целевая функция.

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

2. Показатели оценки GAN

Поскольку GAN - это обучение без учителя, не существует установленных показателей, таких как точность или оценка F1, для обучения с учителем. Здесь я представляю часто используемую метрику под названием Frechet Inception Distance и Perceptual Path Length, предложенные StyeGAN.

2.1 Начальное расстояние Frechet

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

Формула определения выглядит следующим образом, и расстояние Вассерштейна-2 вычисляется с помощью низкоразмерного встроенного вектора сетью под названием Inception V3. m и c - средние векторы и ковариационные матрицы в пространстве вложения. Изображение с нижним индексом w - это сгенерированное изображение, а изображение без него - реальное изображение. Поскольку он указывает расстояние распределения, чем меньше значение, тем больше поддельное изображение выглядит как реальное изображение, то есть это означает, что генератор имеет лучшую производительность.

2.2. Перцепционная длина пути

Perceptual Path Length (PPL) - индикатор того, плавно ли изменяется изображение в «перцептивном». Использует расстояние изображения, встроенного в обученную модель, аналогично FID. Грубо говоря, он указывает, изменяется ли изображение на кратчайшем «перцепционном» пути в скрытом пространстве, которое является семенем поддельных изображений ». Это проиллюстрировано на рисунке ниже. .

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

Это количественно определяется с помощью Perceptual Path Length (PPL), и формула определения выглядит следующим образом. Это ожидаемое значение расстояния между изображением, сгенерированным скрытой переменной, полученным путем смешивания двух скрытых переменных z_1 и z_2 при соотношении t, и изображением, созданным скрытой переменной, полученным путем смешивания двух при соотношении t + ε.

Рисунок ниже описывает это. Если данные, смешанные с помощью t, и данные, смешанные с помощью t + ε, близки к «перцептивным», возьмите небольшое значение.

Это пример создания изображения с использованием скрытых переменных вокруг t с добавлением небольших изменений ε1 и ε2. У синего пути более короткое «воспринимаемое» расстояние, потому что мы чувствуем сходство между серыми собаками в точках t и t + epsilon 1.

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

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

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

3. StyleGAN

Существует множество исследований GAN, но одна из самых известных моделей - StyleGAN [1], которая была предложена в конце 2018 года. На рисунке ниже показано изображение, созданное StyleGAN. Вы можете видеть, что создается изображение с высоким разрешением, которое может быть ошибочно распознано как реальное.
Сеть StyleGAN имеет две функции: создание изображений с высоким разрешением с использованием прогрессивного роста и включение стилей изображения в каждый слой с помощью АдаИН. Сначала я объясню эти два и перейду к подробной структуре StyleGAN.

3.1. Прогрессивный рост

Progressive Growing - это метод создания изображений с высоким разрешением, предложенный в Progressive-Growing GAN (PG-GAN) [2]. Грубо говоря, это метод создания изображений с высоким разрешением, начиная с изображений с низким разрешением и постепенно добавляя генераторы и дискриминаторы высокого разрешения. На рисунке ниже представлена ​​схематическая диаграмма PG-GAN.

На приведенном выше рисунке они начинают с создания изображения 4x4, постепенно увеличивают разрешение и, наконец, создают изображение с высоким разрешением 1024x1024. Даже если добавлена ​​сеть для увеличения разрешения, D и G для разрешений продолжают обучение.

3.2 АдаИН

AdaIN - это метод нормализации для переноса стилей, предложенный в 2017 году Xun Huang et al. Математическое выражение выглядит следующим образом [3]. Нормализуйте ввод содержимого x и стиль ввода y, используя среднее значение и дисперсию.

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

AdaIN используется в следующей формуле в StyleGAN. Концепция применения линейного преобразования с использованием стиля к нормализованной информации содержимого не изменилась. Но y_s и y_b, линейное преобразование к вектору стиля W, описанному позже, используются вместо стандартного отклонения и среднего значения стиля.

3.3 Сетевая архитектура StyleGAN

Ключевые моменты сети StyleGAN заключаются в следующем.

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

(A) на рисунке - это PG-GAN, а (b) - это StyleGAN. Оба используют прогрессивный рост, который постепенно увеличивает разрешение. Однако, в то время как PG-GAN генерирует изображение из стохастической скрытой переменной z, StyleGAN генерирует изображение из фиксированного тензора 4x4x512. А скрытые стохастические переменные используются в качестве векторов стилей в StyleGAN.

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

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

3.4. Смешивание регуляризации

StyleGAN использует метод регуляризации, называемый Mixing Regularization, который смешивает две скрытые переменные, используемые в Style во время обучения. Например, если существует вектор стиля w_1, w_2, отображаемый из скрытых переменных z_1, z_2, используйте w_1 для создания изображения 4x4 и используйте w_2 для создания изображения 8x8.

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

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

Они экспериментируют с тремя разрешениями вставки стиля B: низким разрешением (4²-8²), средним разрешением (16²-32²) и высоким разрешением (64² – 1024²).

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

4. Анализ StyleGAN

Как мы уже видели, StyleGAN может создавать красивые изображения, но известно, что на нем есть некоторый шум и неестественные детали.

Во-первых, давайте посмотрим на шум в виде капель воды на рисунке ниже.

Этот шум не всегда появляется на сгенерированных изображениях, но это проблема, которая возникает на всех картах функций при разрешении около 64x64. Авторы считают, что эта проблема связана со слоем нормализации (AdaIN). Когда появляется карта признаков с небольшим распределением типа пиков, даже если исходное значение небольшое, значение будет увеличено путем нормализации и будет иметь большое влияние. Фактически, удаление нормализации заставляет каплю исчезнуть.

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

Между прочим, анализ Perceptual Path Length (PPL), введенный StyleGAN, оказался связанным с качеством изображения. Авторы StyleGAN2 считают, что это связано с тем, что для генератора важно расширять скрытое пространство для создания высококачественных изображений, чтобы генерировать высококачественные изображения, а скрытые переменные для создания изображений низкого качества вынуждены перемещаться в быстро меняющееся пространство.

StyleGAN2 [4] улучшает качество генерации изображения, используя характеристики PPL и улучшая капельный шум и неследующие режимы. Теперь посмотрим, как StyleGAN2 решает их и улучшает качество изображений.

5. StyleGAN2

Краткое изложение StyleGAN2 и ключевые идеи заключаются в следующем.

Сводка

Улучшения StyleGAN. нормализация веса CNN вместо AdaIN для удаления капель, улучшения неестественных режимов за счет удаления прогрессивного роста и улучшения качества изображения, обеспечивая непрерывность в скрытом пространстве. FID и т. Д. Значительно улучшены по сравнению со StyleGAN.

Ключевые выводы

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

5.2. Методы StyleGAN2

В этой части мы посмотрим, что они на самом деле делают со StyleGAN2.

5.2.1. Метод нормировки вместо AdaIN

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

Начнем с упрощения блока Style (серая область на рисунке b).

При подробном описании AdaIN можно разбить на два этапа. Первый - это нормализовать информацию содержимого с помощью собственной статистики, а второй - линейный переход нормализованной информации содержимого с использованием информации о стиле. Когда часть AdaIN StyleGAN (a) расширяется в соответствии с ней, она становится такой, как показано на ( б). Операция внутри AdaIN следующая: нормализация содержимого → линейное преобразование по вектору стиля. но обратите внимание, что в блоке Style порядок следующий: линейное преобразование по вектору стиля → (Свертка →) → нормализация содержимого.

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

Мы упростили работу внутри блока Style. Здесь давайте предположим, что первое линейное преобразование вектором стиля выполняется обработкой внутри свертки. В блоке Style используется коэффициент y_s, который является линейным преобразованием вектора стиля W. Операция обработки изображения контента, умноженного на s, с весом свертки w_ijk эквивалентна свёртыванию изображения контента с произведением веса w_ijk и s. Таким образом, эту операцию можно переписать следующим образом: (Операция мода в (d) выше)

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

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

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

5.2.2. Метод создания изображений с высоким разрешением вместо прогрессивного роста

Оригинальный StyleGAN Generator имеет простую конфигурацию. Без прогрессивного роста таким простым генераторам будет сложно создавать изображения с высоким разрешением a. Но, увеличивая выразительную силу генератора и дискриминатора, кажется возможным генерировать изображения с высоким разрешением без прогрессивного роста.

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

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

Чтобы выбрать лучшие сети, они провели эксперименты со всеми комбинациями генератора / дискриминатора (b) -типа и генератора / дискриминатора (c) -типа и приняли лучший результат. В следующей таблице показаны экспериментальные результаты.

Из этих результатов видно, что использование генератора типа (b) значительно улучшает воспринимаемую длину пути, а использование дискриминатора типа (c) улучшает FID. Итак, авторы приняли эти сети.

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

Поскольку генератор (b) -типа суммирует сгенерированные изображения каждого разрешения, можно вычислить вклад каждого разрешения в окончательное сгенерированное изображение. Вертикальная ось указывает вклад каждого разрешения, а горизонтальная ось указывает прогресс обучения. На приведенном выше рисунке (a), где была принята новая сеть, вклад на стороне высокого разрешения постепенно увеличивался по мере прохождения процесса обучения, а когда размер сети был увеличен (рисунок b), вклад высокого разрешения стороны еще больше увеличились в конце обучения.

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

5.2.3. Регуляризация длины пути для сглаживания скрытого пространства

Теперь, когда было обнаружено, что, вероятно, существует корреляция между Perceptual Path Length (PPL), которая указывает на перцептивную гладкость скрытого пространства, и качеством изображения, мы включаем это в модель как термин регуляризации. Формула следующая. a - константа, а y - случайное изображение, созданное на основе нормального распределения.

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

5.4 Результаты

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

Я пропустил объяснение для C, но кажется, что обновление члена регуляризации не нужно выполнять очень часто, что называется «ленивой» регуляризацией. Глядя на результаты, даже для Lazy, результаты неплохие. Модель увеличила размер сети в дополнение ко всем методам, описанным до сих пор. Время обучения сократилось за счет включения ленивой регуляризации и AdaIN в свертку (37 → 61 изображение / сек), и благодаря этому они могли дополнительно масштабировать сеть (31 изображение / сек).

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

Теперь давайте посмотрим на сгенерированное изображение. Очень красивое качественно сгенерированное изображение.

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

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

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

В этом посте я объяснил основы GAN, StyleGAN и StyleGAN2. StyleGAN2 улучшает качество изображения, улучшая нормализацию и добавляя ограничения для сглаживания скрытого пространства. Однако даже с 8 графическими процессорами (V100) это стоит 9 дней для набора данных FFHQ и 13 дней для LSUN CAR. BigGAN и другие доказали эффективность более крупной модели. Но я лично рад, если появится высокопроизводительный небольшой GAN, которым можно управлять с помощью персональных компьютеров.

Еженедельная рассылка по машинному обучению с Revue



Twitter, одно предложение, пояснение на бумаге . Пожалуйста, следуйте.



Ссылка

  1. Теро Каррас, Самули Лайне, Тимо Айла, Архитектура генератора на основе стилей для генеративных состязательных сетей, CVPR2019
  2. Теро Каррас, Тимо Айла, Самули Лайне, Яакко Лехтинен, Постепенное развитие сетей GAN для повышения качества, стабильности и вариативности, ICLR2018
  3. Сюнь Хуан, Серж Белонжи, Перенос произвольных стилей в реальном времени с адаптивной нормализацией экземпляров, ICCV2017
  4. Теро Каррас, Самули Лайне, Миика Айттала, Янне Хеллстен, Яакко Лехтинен, Тимо Айла, Анализ и улучшение качества изображения StyleGAN, arXiv: 1912.04958
  5. StyleGAN2, https://www.youtube.com/watch?v=c-NJtV9Jvp0