GAN имеют ряд общих режимов отказа. Все эти общие проблемы являются областями активных исследований. Хотя ни одна из этих проблем не была решена полностью, мы упомянем некоторые вещи, которые пробовали люди.
Исчезающие градиенты
Исследования показали, что если ваш дискриминатор слишком хорош, то обучение генератора может дать сбой из-за исчезающих градиентов . По сути, оптимальный дискриминатор не предоставляет генератору достаточно информации для продвижения вперед.
Попытки исправить
- Потеря Вассерштейна: потеря Вассерштейна предназначена для предотвращения исчезновения градиентов, даже когда вы тренируете дискриминатор до оптимальности.
- Модифицированные минимаксные потери : в исходной статье GAN предлагалась модификация минимаксных потерь для работы с исчезающими градиентами.
Свернуть режим
Обычно вы хотите, чтобы ваша GAN выдавала широкий спектр выходных данных. Вы хотите, например, другое лицо для каждого случайного ввода в ваш генератор лиц.
Однако, если генератор выдает особенно правдоподобный вывод, генератор может научиться выдавать только этот вывод. На самом деле генератор всегда пытается найти тот выход, который кажется дискриминатору наиболее правдоподобным.
Если генератор начинает снова и снова выдавать одни и те же выходные данные (или небольшой набор выходных данных), лучшей стратегией для дискриминатора будет научиться всегда отклонять эти выходные данные. Но если следующее поколение дискриминатора застрянет в локальном минимуме и не найдет наилучшую стратегию, то следующей итерации генератора будет слишком легко найти наиболее правдоподобный результат для текущего дискриминатора.
Каждая итерация генератора чрезмерно оптимизируется для определенного дискриминатора, и дискриминатору никогда не удается научиться выбираться из ловушки. В результате генераторы меняются через небольшой набор выходных типов. Эта форма сбоя GAN называется коллапсом режима .
Попытки исправить
Следующие подходы пытаются заставить генератор расширить область его действия, не позволяя ему оптимизировать один фиксированный дискриминатор:
- Потеря Вассерштейна: потеря Вассерштейна облегчает коллапс моды, позволяя вам обучать дискриминатор до оптимальности, не беспокоясь об исчезающих градиентах. Если дискриминатор не застревает в локальных минимумах, он учится отклонять выходы, на которых стабилизируется генератор. Так что генератор должен попробовать что-то новое.
- Развернутые GAN : Развернутые GAN используют функцию потерь генератора, которая включает не только текущие классификации дискриминатора, но и выходные данные будущих версий дискриминатора. Таким образом, генератор не может переоптимизировать один дискриминатор.
Неспособность сходиться
GAN часто не сходятся, как обсуждалось в модуле по обучению .
Попытки исправить
Исследователи пытались использовать различные формы регуляризации для улучшения конвергенции GAN, в том числе:
- Добавление шума к входным данным дискриминатора : см., например, Toward Principled Methods for Training Generative Adversarial Networks .
- Штрафные веса дискриминатора : См., например, Стабилизирующее обучение генеративно-состязательных сетей посредством регуляризации .