Функции потерь

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

Как вы фиксируете разницу между двумя распределениями в функциях потерь GAN? Этот вопрос является областью активных исследований, и было предложено много подходов. Здесь мы рассмотрим две общие функции потерь GAN, обе из которых реализованы в TF-GAN:

TF-GAN также реализует множество других функций потерь.

Одна функция потерь или две?

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

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

Потери генератора и дискриминатора в итоге выглядят по-разному, хотя они выводятся из одной формулы.

Минимаксная потеря

В статье, в которой представлены GAN, генератор пытается минимизировать следующую функцию, а дискриминатор пытается ее максимизировать:

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

В этой функции:

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

Генератор не может напрямую влиять на член log(D(x)) в функции, поэтому для генератора минимизация потерь эквивалентна минимизации log(1 - D(G(z))) .

В TF-GAN см. описание реализации этой функции потерь в минимаксных_дискриминаторах и минимаксных_генераторах_лосс .

Модифицированный минимаксный убыток

В исходной статье GAN отмечается, что приведенная выше минимаксная функция потерь может привести к тому, что GAN застрянет на ранних этапах обучения GAN, когда работа дискриминатора очень проста. Поэтому в документе предлагается изменить потери генератора так, чтобы генератор пытался максимизировать log D(G(z)) .

В TF-GAN см. Modified_generator_loss для реализации этой модификации .

Потеря Вассерштейна

По умолчанию TF-GAN использует потери Вассерштейна .

Эта функция потерь зависит от модификации схемы GAN (называемой «Wasserstein GAN» или «WGAN»), в которой дискриминатор фактически не классифицирует экземпляры. Для каждого экземпляра он выводит число. Это число не обязательно должно быть меньше единицы или больше 0, поэтому мы не можем использовать 0,5 в качестве порога, чтобы решить, является ли экземпляр реальным или поддельным. Обучение дискриминатору просто пытается сделать вывод больше для реальных экземпляров, чем для поддельных.

Поскольку он не может отличить настоящее от подделки, дискриминатор WGAN фактически называется «критиком», а не «дискриминатором». Это различие имеет теоретическое значение, но для практических целей мы можем рассматривать его как признание того, что входные данные для функций потерь не обязательно должны быть вероятностями.

Сами функции потерь обманчиво просты:

Критическая потеря: D(x) - D(G(z))

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

Потери генератора: D(G(z))

Генератор пытается максимизировать эту функцию. Другими словами, он пытается максимизировать вывод дискриминатора для его поддельных экземпляров.

В этих функциях:

  • D(x) — результат критика для реального случая.
  • G(z) — выход генератора при заданном шуме z.
  • D(G(z)) — результат критика для поддельного экземпляра.
  • Выход критика D не обязательно должен быть между 1 и 0.
  • Формулы основаны на расстоянии землеройной машины между реальным и сгенерированным распределениями.

В TF-GAN см. реализации wasserstein_generator_loss и wasserstein_compiler_loss .

Требования

Теоретическое обоснование GAN Вассерштейна (или WGAN) требует, чтобы веса по всей GAN обрезались так, чтобы они оставались в пределах ограниченного диапазона.

Преимущества

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