Изменения

Перейти к: навигация, поиск

Generative Adversarial Nets (GAN)

Нет изменений в размере, 16:30, 15 января 2021
Нет описания правки
==CGAN (Conditional Generative Adversarial Nets)==
[[File:CGAN_architecture.png|450px|thumb|Рисунок 56. Архитектура CGAN. Источник: https://arxiv.org/pdf/1411.1784.pdf]]
'''Условные порождающие состязательные сети''' (англ. ''Conditional Generative Adversarial Nets, CGAN'') $-$ это модифицированная версия алгоритма GAN, которая может быть сконструирована при помощи передачи дополнительных данных '''y''', являющихся условием для генератора и дискриминатора. '''y''' может быть любой дополнительной информацией, например, меткой класса, изображением или данными из других моделей, что может позволить контролировать процесс генерации данных. Например, можно подавать параметр '''y''', как условие на класс для генерации чисел, похожих на MNIST. Создание таких картинок, в случае передачи картинки в качетсве '''y''' является [[:Задача трансляции изображений|задачей трансляции изображений]]. Пример работы ''CGAN'' на датасете ''MNIST'' с метками классов представленных в виде [[:Векторное представление слов|''one-hot'']] векторов <ref>[https://arxiv.org/pdf/1411.1784.pdf CGAN]</ref> (рис. 65).
[[File:CGAN_generated.png|450px|thumb|center|Рисунок 65. Цифры, сгенерированные с помощью CGAN. Источник: https://arxiv.org/pdf/1411.1784.pdf]]
[[File:CGAN_generated_tags.PNG|450px|thumb|right|Рисунок 78. Описание картинки. Источник: https://arxiv.org/pdf/1411.1784.pdf]]
Как уже было упомянуто на вход генератора и дискримантора из GAN подается дополнительная информация '''y''', например в случае с многослойными перецептронами условие может быть представлено дополнительным входным слоем. (рис. 56)
В генераторе априорная вероятность шума <tex>p_{z}(z)</tex> и условие <tex>y</tex> комбинируются в объединённое скрытое представление, а состязательная тренирующая модель (Обе сети пытаются оптимизировать целевую функцию или функцию потерь. Когда дискриминатор меняет свое поведение, то и генератор меняет, и наоборот) предоставляет достаточно свободы в том как это представление составляется.<ref>[https://arxiv.org/pdf/1207.4404.pdf Yoshua Bengio, Gre ́goire Mesnil, Yann Dauphin and Salah Rifai {{---}} Better Mixing via Deep Representations ]</ref>
В дискриминаторе '''x''' и '''y''' представлены как входные параметры.
В качестве примера использования данного алгоритма можно рассмотреть задачу генерации рукописных цифр.
При создании изображения в генератор поступает скомбинированная информация двух параметров: '''y''' и вектор шума. В случае ''MNIST'' это может быть, например, просто метка класса (от 0 до 9). На выходе из генератора поступает изображение, полученное с помощью транспонированной свертки (происходит деконволюция). Затем полученное изображение поступает в дискриминатор, который в свою очередь применяет операцию, обратную деконволюции, чтобы получить полносвязный слой. Наконец, анализируя полученную информацию (полносвязный слой) и параметр '''y''' дискриминатор принимает решение, является ли изображение сгенерированным. (рис. 87)[[File:CGAN_gen_disc_v2.png|450px|thumb|center|Рисунок 87. Генерация при использовании CGAN]]
Также, используя условные порождающие состязательные сети, можно научить такую сеть генерировать текст по картинке и наоборот. В качестве параметра '''y''' в данном случае передается изображение, которое будет описано (рис. 78).
Более того, для такого типа нейронных сетей, принимающих в качестве параметра '''у''' некоротое изображение местности, в результате может быть получено аналогичное изображение этого места зимой или летом, днем или ночью. Такая задача является [[:Задача трансляции изображений|задачей трансляции изображений]]
100
правок

Навигация