Обзор структуры GAN

Генеративно-состязательная сеть (GAN) состоит из двух частей:

  • Генератор учится генерировать правдоподобные данные. Сгенерированные экземпляры становятся отрицательными обучающими примерами для дискриминатора.
  • Дискриминатор учится отличать поддельные данные генератора от реальных данных. Дискриминатор наказывает генератор за неправдоподобные результаты.

Когда начинается обучение, генератор выдает заведомо фейковые данные, и дискриминатор быстро учится определять, что это фейк:

Три столбца помечены как «Сгенерированные данные», «Дискриминатор» и «Реальные данные». В разделе «Созданные данные» синий прямоугольник содержит закорючку и кружок. Прямоугольник — это первая неудачная попытка генератора нарисовать долларовую купюру. В разделе «Реальные данные» есть изображение настоящей десятидолларовой купюры. В разделе «Дискриминатор» есть слова «ФЕЙК» и «НАСТОЯЩИЙ». Стрелка указывает от слова «ФЕЙК» к изображению в разделе «Сгенерированные данные». Другая стрелка указывает от слова «НАСТОЯЩИЙ» к изображению под «Реальные данные».

По мере обучения генератор приближается к тому результату, который может обмануть дискриминатор:

Это изображение добавляет новую строку под заголовками «Сгенерированные данные», «Дискриминатор» и «Реальные данные» на предыдущем изображении. В разделе «Сгенерированные данные» есть зеленый прямоугольник с цифрой 10 в верхнем левом углу и простой рисунок лица. В разделе «Реальные данные» есть изображение реальной 100-долларовой купюры. В разделе «Дискриминатор» находится слово «ФЕЙК» со стрелкой, указывающей на изображение в разделе «Сгенерированные данные», и слово «НАСТОЯЩИЙ» со стрелкой, указывающей на изображение в разделе «Реальные данные».

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

Это изображение добавляет новую строку под заголовками «Сгенерированные данные», «Дискриминатор» и «Реальные данные» на первом предыдущем изображении. В разделе «Сгенерированные данные» есть изображение двадцатидолларовой купюры. В разделе «Реальные данные» есть изображение двадцатидолларовой купюры. Под «Дискриминатором» находится слово «РЕАЛЬНЫЙ» со стрелкой, указывающей на изображение в разделе «Сгенерированные данные», и слово «РЕАЛЬНЫЙ» со стрелкой, указывающей на изображение в разделе «Реальные данные».

Вот фото всей системы:

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

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

Поясним детали этой системы более подробно.