Картину Моне распознать легче, чем нарисовать. Генеративные модели (создание данных) считаются гораздо более сложными по сравнению с дискриминантными моделями (обработка данных). Тренировать GAN тоже сложно. Эта статья является частью серии GAN, и мы исследуем, почему обучение так неуловимо. Благодаря этому исследованию мы понимаем некоторые фундаментальные проблемы, которые определяют направления многих исследователей. Мы рассмотрим некоторые разногласия, чтобы знать, к чему могут привести исследования. Прежде чем приступить к рассмотрению проблем, давайте кратко рассмотрим некоторые уравнения GAN.

GAN

GAN производит выборку шума z с использованием нормального или равномерного распределения и использует генератор глубокой сети G для создания изображения x (x = G (z)).

В GAN мы добавляем дискриминатор, чтобы различать, является ли вход дискриминатора действительным или сгенерированным. Он выводит значение D (x) для оценки вероятности того, что введенные данные реальны.

Целевая функция и градиенты

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

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

Проблемы с GAN

Многие модели GAN имеют следующие основные проблемы:

  • Несходимость: параметры модели колеблются, дестабилизируются и никогда не сходятся.
  • Коллапс режима: генератор сворачивается, в результате чего создается ограниченное количество образцов.
  • Уменьшенный градиент: дискриминатор становится слишком успешным, и генератор градиента исчезает и ничего не узнает,
  • Дисбаланс между генератором и дискриминатором, вызывающий переоснащение, &
  • Высокая чувствительность к выбору гиперпараметров.

Режим

Распределение реальных данных является мультимодальным. Например, в MNIST существует 10 основных режимов от цифры «0» до цифры «9». Приведенные ниже примеры созданы двумя разными GAN. Верхний ряд создает все 10 режимов, а второй ряд создает только один режим (цифра «6»). Эта проблема называется свертыванием режима, когда генерируются только несколько режимов данных.

равновесие по Нэшу

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

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

Равновесие по Нэшу: x = y = 0. Это единственное состояние, в котором действия вашего оппонента не имеют значения. Это единственное условие, что любые действия соперника не изменят исход игры.

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

где α - скорость обучения. Когда мы строим графики x, y, и xy с итерациями обучения, мы понимаем, что наше решение не сходится.

Если мы увеличим скорость обучения или обучим модель дольше, мы увидим, что параметры x, y нестабильны с большими колебаниями.

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

Функции стоимости могут не сходиться при использовании градиентного спуска в минимаксной игре.

Генеративная модель с KL-дивергенцией

Чтобы понять проблему конвергенции в GAN, мы сначала изучим KL-дивергенцию и JS-дивергенцию. До GAN многие генеративные модели создают модель θ, которая максимизирует оценку максимального правдоподобия MLE. то есть поиск лучших параметров модели, наиболее подходящих для обучающих данных.

Это то же самое, что минимизировать KL-расхождение KL (p, q) (доказательство), которое измеряет, как распределение вероятностей q (оценочное распределение) отличается от ожидаемого распределения вероятностей p (реального распределения).

KL-дивергенция не симметрична.

KL (x) падает до 0 для области, где p (x) → 0. Например, на рисунке справа внизу красная кривая соответствует D (p, q). Он падает до нуля, когда x ›2, где p приближается к 0.

Что из этого следует? KL-расхождение DL (p, q) штрафует генератор, если он пропускает некоторые режимы изображений: штраф высокий, где p (x) ›0 , но q (x) → 0. Тем не менее допустимо, что некоторые изображения не выглядят настоящими. Штраф низкий, если p (x) → 0, но q (x) ›0. (Более низкое качество, но более разнообразные образцы)

С другой стороны, обратная KL-дивергенция DL (q, p) штрафует генератор, если изображения не выглядят реальными: высокий штраф, если p (x) → 0, но q (x) ›0. Но он исследует меньшее разнообразие: низкий штраф, если q (x) → 0, но p (x) ›0. (Более качественные, но менее разнообразные образцы)

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

JS-дивергенция

JS-дивергенция определяется как:

JS-дивергенция симметрична. В отличие от KL-дивергенции, это плохо сказывается на плохих изображениях. (когда p (x) → 0 и q (x) ›0) В GAN, если дискриминатор оптимален (хорошо работает при различении изображений), целевая функция генератора становится (доказательством):

Таким образом, оптимизация модели генератора рассматривается как оптимизация JS-дивергенции. В экспериментах GAN дает более красивые изображения по сравнению с другими генеративными моделями, использующими KL-дивергенцию. Следуйте логике из последнего раздела, ранние исследования предполагают, что оптимизация JS-дивергенции, а не KL-дивергенции, создает лучшие, но менее разнообразные изображения. Однако с тех пор некоторые исследователи отказались от этих утверждений, поскольку эксперименты с GAN с использованием MLE дают изображение аналогичного качества, но все еще страдают проблемой разнообразия изображений. Но уже были предприняты значительные усилия по изучению слабых сторон JS-дивергенции в обучении GAN. Эти работы значимы независимо от дискуссий. Поэтому далее мы более подробно рассмотрим вопросы JS-дивергенции.

Исчезающие градиенты в JS-дивергенции

Напомним, что при оптимальном дискриминаторе целевая функция генератора равна:

Что происходит с градиентом JS-дивергенции, когда распределение данных q изображений генератора не совпадает с истиной p для реальных изображений. Рассмотрим пример, в котором p и q распределены по Гауссу, а среднее значение p равно нулю. Давайте рассмотрим q с различными средствами для изучения градиента JS (p, q).

Здесь мы строим JS-дивергенцию JS (p, q) между p и q с помощью q от 0 до 30. Как показано ниже, градиент JS-дивергенции исчезает от q1 до q3. Генератор GAN будет учиться очень медленно до нуля, когда затраты в этих регионах достигают предела. В частности, на начальном этапе обучения p и q сильно различаются, и генератор обучается очень медленно.

Нестабильные градиенты

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

Соответствующий градиент согласно другому исследованию Арджовски:

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

Приведенный выше эксперимент - это не то, как мы обучаем GAN. Однако математически Арджовски показывает, что целевая функция первого генератора GAN имеет исчезающие градиенты, а функция альтернативных затрат имеет флуктуирующие градиенты, которые вызывают нестабильность моделей. Начиная с оригинальной статьи GAN, началась золотая лихорадка в поиске новых функций затрат, таких как LSGAN, WGAN, WGAN-GP, BEGAN и т. Д. Некоторые методы основаны на новых математических моделях, а другие - на интуиции, подтвержденной экспериментами. Цель состоит в том, чтобы найти функцию стоимости с более плавными и отличными от нуля градиентами.

Тем не менее, документ Google Brain 2017 года «Созданы ли GAN равны?» заявляет, что

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

Если какие-либо новые предлагаемые функции затрат окажут сильнейшее влияние на улучшение качества изображения, у нас не будет этой дискуссии. Картина конца света на исходных функциях затрат из математической модели Арджовского также не полностью материализуется. Но я буду осторожными читателями, потому что преждевременно заявляю, что функции стоимости не имеют значения. Мои мысли о статье Google Brain можно найти здесь. Что я могу сделать? Обучение GAN легко терпит неудачу. Вместо того, чтобы пробовать вначале многие функции затрат, сначала отладьте свой дизайн и код. Затем постарайтесь настроить гиперпараметр, потому что модели GAN чувствительны к ним. Сделайте это, прежде чем пробовать функции затрат наугад.

Почему режим коллапса в GAN?

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

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

Но давайте рассмотрим один крайний случай, когда G интенсивно обучается без обновлений для D. Сгенерированные изображения будут сходиться, чтобы найти оптимальное изображение x *, которое больше всего обманывает D, наиболее реалистичное изображение с точки зрения дискриминатора. В этом случае x * не будет зависеть от z.

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

Когда мы перезапускаем обучение дискриминатора, наиболее эффективным способом обнаружения сгенерированных изображений является обнаружение этого единственного режима. Поскольку генератор уже снижает чувствительность к воздействию z, градиент от дискриминатора, скорее всего, сдвинет единственную точку вокруг для следующего наиболее уязвимого режима. Найти это несложно. Генератор создает такой дисбаланс режимов при обучении, что ухудшает его способность обнаруживать другие. Теперь обе сети переоборудованы для использования краткосрочной слабости оппонента. Это превращается в игру в кошки-мышки, и модель не сходится.

На приведенной ниже диаграмме Unroll GAN ​​создает все 8 ожидаемых режимов данных. Во второй строке показан другой GAN, режим которого сворачивается и переходит в другой режим, когда дискриминатор догоняет его.

Во время обучения дискриминатор постоянно обновляется для обнаружения злоумышленников. Таким образом, вероятность переоборудования генератора снижается. На практике наше понимание коллапса мод все еще ограничено. Наше интуитивное объяснение выше, вероятно, слишком упрощено. Методы смягчения последствий разработаны и проверены эмпирическими экспериментами. Однако обучение GAN по-прежнему остается эвристическим процессом. Частичный коллапс все еще распространен.

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

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

Неявная оценка максимального правдоподобия (IMLE)

(Кредит: диаграммы в этом разделе взяты из презентации IMLE или изменены).

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

Дискриминатор GAN создает области желтым цветом, чтобы отличить реальные данные от сгенерированных данных.

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

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

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

IMLE не является моделью GAN. Поэтому мы не будем здесь вдаваться в подробности.

Гиперпараметры и обучение

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

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

Баланс между дискриминатором и генератором

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

Стоимость по сравнению с качество изображения

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

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

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



Если вы хотите быть намного глубже, второй будет предметом более глубокого обсуждения:



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



Ссылка

На пути к принципиальным методам обучения генерирующих состязательных сетей

Усовершенствованные методики обучения GAN

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

Генеративные состязательные сети

Созданы ли GAN равными? Масштабное исследование

Неявная оценка максимального правдоподобия