Дискриминатор в GAN — это просто классификатор. Он пытается отличить реальные данные от данных, созданных генератором. Он может использовать любую сетевую архитектуру, соответствующую типу данных, которые он классифицирует.
Рисунок 1: Обратное распространение в обучении дискриминатора.
Данные обучения дискриминатора
Данные обучения дискриминатора поступают из двух источников:
- Реальные экземпляры данных , такие как реальные фотографии людей. Дискриминатор использует эти экземпляры как положительные примеры во время обучения.
- Поддельные экземпляры данных , созданные генератором. Дискриминатор использует эти экземпляры как отрицательные во время обучения.
На рисунке 1 два поля «Образец» представляют эти два источника данных, поступающих в дискриминатор. Во время обучения дискриминатора генератор не обучается. Его веса остаются постоянными, пока он создает примеры для обучения дискриминатора.
Тренировка дискриминатора
Дискриминатор подключается к двум функциям потерь . Во время обучения дискриминатора дискриминатор игнорирует потери генератора и просто использует потери дискриминатора. Мы используем потери генератора во время обучения генератора, как описано в следующем разделе .
Во время обучения дискриминатора:
- Дискриминатор классифицирует как настоящие данные, так и поддельные данные от генератора.
- Потеря дискриминатора наказывает дискриминатор за ошибочную классификацию реального экземпляра как поддельного или поддельного экземпляра как реального.
- Дискриминатор обновляет свои веса посредством обратного распространения потерь дискриминатора через сеть дискриминатора.
В следующем разделе мы увидим, почему потери генератора связаны с дискриминатором.