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