exponenta event banner

Контроль хода обучения GAN и определение общих видов отказов

Обучение GAN может быть сложной задачей. Это происходит потому, что генератор и дискриминаторные сети конкурируют друг с другом во время обучения. На самом деле, если одна сеть учится слишком быстро, то другая сеть может не учиться. Это часто может привести к тому, что сеть не сможет сойтись. Чтобы диагностировать проблемы и контролировать по шкале от 0 до 1, насколько хорошо генератор и дискриминатор достигают своих соответствующих целей, вы можете построить их оценки. Пример обучения GAN и построения графика оценки генератора и дискриминатора см. в разделе Генеративная состязательная сеть поездов (GAN).

Дискриминатор учится классифицировать входные изображения как «реальные» или «сгенерированные». Выход дискриминатора соответствует вероятности Y ^, что входные изображения принадлежат классу «вещественные».

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

scoreGenerator=mean (Y^Generated),

где Y ^ Generated содержит вероятности для созданных изображений.

Учитывая, что 1 Y ^ - вероятность изображения, принадлежащего классу «сгенерировано», оценка дискриминатора представляет собой среднее значение вероятностей входных изображений, принадлежащих правильному классу:

scoreDisriminator=12mean (Y^Real) +12mean (1−Y^Generated),

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

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

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

Сбой сходимости

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

Доминирует дискриминатор

Этот сценарий происходит, когда оценка генератора достигает нуля или около нуля, а оценка дискриминатора достигает одного или около одного.

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

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

  • Ухудшение дискриминатора путем случайного предоставления ложных меток реальным изображениям (одностороннее переворачивание метки)

  • Ухудшение дискриминатора путем добавления уровней отсева

  • Повышение способности генератора создавать больше элементов за счет увеличения числа фильтров в его слоях свертки

  • Ухудшение дискриминатора путем уменьшения его числа фильтров

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

Доминирует генератор

Этот сценарий происходит, когда оценка генератора достигает одного или почти одного.

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

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

  • Повышение способности дискриминатора узнавать больше возможностей за счет увеличения числа фильтров

  • Ухудшение работы генератора путем добавления уровней отсева

  • Ухудшение работы генератора путем уменьшения его числа фильтров

Свертывание режима

Свертывание режима - это когда GAN создает небольшое разнообразие изображений со множеством дубликатов (режимов). Это происходит, когда генератор не может узнать представление богатого элемента, поскольку он учится связывать сходные выходы с несколькими различными входами. Для проверки свертывания режима проверьте созданные изображения. Если разнесение на выходе невелико и некоторые из них почти идентичны, то вероятен коллапс режима.

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

Если вы наблюдаете, что это происходит, то попробуйте увеличить способность генератора создавать более разнообразные выходы за счет:

  • Увеличение размеров входных данных для генератора

  • Увеличение числа фильтров генератора для создания более широкого спектра функций

  • Ухудшение дискриминатора путем случайного предоставления ложных меток реальным изображениям (одностороннее переворачивание метки)

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

См. также

| | | | | |

Связанные темы