Понимание функции потери GAN


17

Я изо всех сил пытаюсь понять функцию потери GAN, как это предусмотрено в статье « Понимание порождающих противоборствующих сетей» (сообщение в блоге, написанное Дэниелом Сейта).

В стандартной кросс-энтропийной потере мы имеем выход, который был пропущен через сигмовидную функцию и полученную двоичную классификацию.

Сиета заявляет

Таким образом, для [каждой] точки данных Икс1 и ее метки мы получаем следующую функцию потерь ...

ЧАС((Икс1,Y1),D)знак равно-Y1журналD(Икс1)-(1-Y1)журнал(1-D(Икс1))

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

Ответы:


6

Фокус этого вопроса

«Как ... мы можем обрабатывать данные из истинного распределения и данные из порождающей модели в одной и той же итерации?

Анализ Основополагающей Публикации

В указанной странице, Понимание генеративных состязательных сетей (2017 г.) , докторант Дэниел Sieta правильно ссылается Генеративная Состязательность сеть, Гудфелий, POUGET-Abadie, Мирза, Севайте, Warde-Фарел, Ozair, Courville и Bengio, июнь 2014 года . Это абстрактные состояния: «Мы предлагаем новую структуру для оценки генеративных моделей через состязательный процесс, в котором мы одновременно обучаем две модели ...» В этой оригинальной статье определены две модели, определенные как MLP (многослойные персептроны).

  • Генеративная модель, G
  • Дискриминационная модель, Д

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

  • G обучен, чтобы захватить распределение данных набора примеров достаточно хорошо, чтобы обмануть D.
  • D обучен, чтобы определить, является ли его ввод макетами G или набором примеров для системы GAN.

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

Вероятно, дурак D является синонимом максимизации вероятности того, что D будет генерировать столько ложных срабатываний и ложных отрицаний, сколько он исправляет классификации, по 50% каждый. В информатике это означает, что предел информации D имеет G, приближающийся к 0, когда t приближается к бесконечности. Это процесс максимизации энтропии G с точки зрения D, таким образом, термин кросс-энтропия.

Как достигается конвергенция

Поскольку функция потерь, воспроизведенная из записи Sieta за 2017 год в этом вопросе, - это функция D, предназначенная для минимизации перекрестной энтропии (или корреляции) между двумя распределениями применительно к полному набору точек для данного состояния обучения.

ЧАС((Икс1,Y1),D)знак равно1D(Икс1)

Для G есть отдельная функция потерь, предназначенная для максимизации перекрестной энтропии. Обратите внимание, что в системе существует ДВА уровня детализации обучения.

  • Это игра движется в игре с двумя игроками
  • Это из учебных образцов

Они создают вложенную итерацию с внешней итерацией следующим образом.

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

Когда D окончательно проигрывает, мы достигли нашей цели.

  • G восстановил распределение тренировочных данных
  • D был сведен к неэффективности («вероятность 1/2 везде»)

Почему необходимо параллельное обучение

Если бы две модели не были обучены методам параллелизма, то конвергенция в состязательной плоскости (внешняя итерация) не произошла бы в уникальном решении, заявленном в статье 2014 года.

Дополнительная информация

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

Я предлагаю изучить статью 2014 Goodfellow et alia (опытные исследователи) чтобы узнать о технологии GAN, а не страницу 2017 года.


3

Давайте начнем с самого начала. GAN - это модели, которые могут научиться создавать данные, аналогичные данным, которые мы им предоставляем.

При обучении генеративной модели, отличной от GAN, наиболее простой функцией потери, вероятно, является среднеквадратичная ошибка (MSE).

Пожалуйста, позвольте мне привести вам пример ( Trickot L 2017 ):

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

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

Однако какая функция может игнорировать конкретные пиксели и фокусироваться на обнаружении кошек на фотографии?

Это нейронная сеть. Это роль дискриминатора в GAN. Работа дискриминатора состоит в том, чтобы оценить, насколько правдоподобно изображение.

В статье, которую вы цитируете, « Понимание порождающих состязательных сетей» (Daniel S 2017), перечислены два основных момента.

Major Insight 1: функция потерь дискриминатора является функцией кросс-энтропийной потери.

Major Insight 2: понимание того, как насыщение градиента может или не может негативно повлиять на тренировку. Насыщенность градиента является общей проблемой, когда градиенты слишком малы (т. Е. Равны нулю), чтобы выполнить какое-либо обучение.

Чтобы ответить на ваш вопрос, нам нужно более подробно остановиться на втором главном представлении.

В контексте GAN насыщение градиентом может происходить из-за плохой конструкции функции потерь генератора, поэтому это «главное понимание» ... основано на понимании компромиссов между различными функциями потерь для генератора.

Конструкция, реализованная в статье, решает проблему функции потерь, имея очень специфическую функцию (чтобы различать два класса). Лучший способ сделать это - использовать перекрестную энтропию (Insight 1). Как написано в блоге:

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

Как уточняется в комментариях к сообщению в блоге:

Ожидание [в кросс-энтропийной функции] происходит из сумм. Если вы посмотрите на определение ожидания для дискретной случайной величины, вы увидите, что вам нужно суммировать по различным возможным значениям случайной величины, взвешивая каждое из них по их вероятности. Здесь вероятности составляют всего 1/2 для каждого, и мы можем рассматривать их как исходящие от генератора или дискриминатора.


Вопрос не задавался тем, что было проще всего использовать в качестве функции потерь для ANN. Специфика математики была неясной для @tringtolearn, и цитирование аспиранта без каких-либо разъяснений не дает разъяснений.
FauChristian

1

Вы можете рассматривать комбинацию zввода и xввода как одну выборку и оценивать, насколько хорошо дискриминатор выполнил классификацию каждого из них.

Вот почему пост позже разделяет один yна E(p~data)и E(z)- в основном, у вас разные ожидания (y для каждого из входов дискриминатора, и вам нужно одновременно измерять оба, чтобы оценить, насколько хорошо работает дискриминатор.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.