Дискриминатор

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

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

Рисунок 1: Обратное распространение в обучении дискриминатора.

Данные обучения дискриминатора

Данные обучения дискриминатора поступают из двух источников:

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

На рисунке 1 два поля «Образец» представляют эти два источника данных, поступающих в дискриминатор. Во время обучения дискриминатора генератор не обучается. Его веса остаются постоянными, пока он создает примеры для обучения дискриминатора.

Тренировка дискриминатора

Дискриминатор подключается к двум функциям потерь . Во время обучения дискриминатора дискриминатор игнорирует потери генератора и просто использует потери дискриминатора. Мы используем потери генератора во время обучения генератора, как описано в следующем разделе .

Во время обучения дискриминатора:

  1. Дискриминатор классифицирует как настоящие данные, так и поддельные данные от генератора.
  2. Потеря дискриминатора наказывает дискриминатор за ошибочную классификацию реального экземпляра как поддельного или поддельного экземпляра как реального.
  3. Дискриминатор обновляет свои веса посредством обратного распространения потерь дискриминатора через сеть дискриминатора.

В следующем разделе мы увидим, почему потери генератора связаны с дискриминатором.