GAN пытаются воспроизвести распределение вероятностей. Поэтому им следует использовать функции потерь, которые отражают расстояние между распределением данных, сгенерированных GAN, и распределением реальных данных.
Как уловить разницу между двумя распределениями в функциях потерь GAN? Этот вопрос является областью активных исследований, и было предложено множество подходов. Здесь мы рассмотрим две распространенные функции потерь GAN, обе из которых реализованы в TF-GAN:
- минимаксные потери : функция потерь, использованная в статье, посвященной GAN .
- Потери Вассерштейна : функция потерь по умолчанию для оценщиков TF-GAN. Впервые описано в статье 2017 года .
TF-GAN также реализует множество других функций потерь.
Одна функция потерь или две?
GAN может иметь две функции потерь: одну для обучения генератора и одну для обучения дискриминатора. Как две функции потерь могут работать вместе, чтобы отразить меру расстояния между распределениями вероятностей?
В схемах потерь, которые мы здесь рассмотрим, потери генератора и дискриминатора возникают из одной меры расстояния между распределениями вероятностей. Однако в обеих этих схемах генератор может влиять только на один член меры расстояния: член, который отражает распределение поддельных данных. Поэтому во время обучения генератора мы опускаем другой член, который отражает распределение реальных данных.
Потери генератора и дискриминатора в конечном итоге выглядят по-разному, хотя они выводятся из одной формулы.
Минимаксная потеря
В статье, посвященной GAN, генератор пытается минимизировать следующую функцию, а дискриминатор пытается ее максимизировать:
В этой функции:
-
D(x)
— это оценка дискриминатора вероятности того, что реальный экземпляр данных x является реальным. - Ex — это ожидаемое значение для всех экземпляров реальных данных.
-
G(z)
— выходной сигнал генератора при заданном шуме z. -
D(G(z))
— это оценка дискриминатора вероятности того, что поддельный экземпляр является реальным. - E z — это ожидаемое значение для всех случайных входных данных генератора (фактически, ожидаемое значение для всех сгенерированных поддельных экземпляров G (z)).
- Формула выводится из перекрестной энтропии между реальным и сгенерированным распределениями.
Генератор не может напрямую влиять на член log(D(x))
в функции, поэтому для генератора минимизация потерь эквивалентна минимизации log(1 - D(G(z)))
.
В TF-GAN см. minimax_discriminator_loss и minimax_generator_loss для реализации этой функции потерь.
Модифицированные минимаксные потери
В оригинальной статье GAN отмечается, что вышеупомянутая минимаксная функция потерь может привести к тому, что GAN застрянет на ранних стадиях обучения GAN, когда работа дискриминатора очень проста. Поэтому в статье предлагается изменить потери генератора так, чтобы генератор пытался максимизировать log D(G(z))
.
В TF-GAN см. реализацию этой модификации в разделе Modified_generator_loss .
Потеря Вассерштейна
По умолчанию TF-GAN использует потери Вассерштейна .
Эта функция потерь зависит от модификации схемы GAN (называемой «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_discriminator_loss .
Требования
Теоретическое обоснование использования GAN Вассерштейна (или WGAN) требует, чтобы веса во всей GAN были ограничены так, чтобы они оставались в пределах ограниченного диапазона.
Преимущества
GAN Вассерштейна менее уязвимы к застреванию, чем GAN на основе минимакса, и позволяют избежать проблем с исчезающими градиентами. Расстояние землеройного машины также имеет то преимущество, что оно является истинной метрикой: мерой расстояния в пространстве вероятностных распределений. В этом смысле перекрестная энтропия не является показателем.