Керас: Вручную обратно от дискриминатора к генератору - PullRequest
1 голос
/ 16 марта 2020

У меня есть модель, которая по сути является вспомогательной условной GAN; первая часть модели - генератор, последняя часть - дискриминатор. Дискриминатор делает мультиклассовые (k = 10) прогнозы.

Следуя работе http://arxiv.org/abs/1912.07768 (pp3 для полезной диаграммы, но обратите внимание, я игнорирую изменения структуры сети для целей этого вопроса Я тренирую всю модель для итераций T = 32, генерируя входные данные syntheti c и метки классов («внутренний l oop»). Я могу прогнозировать реальные данные и метки, используя только дискриминатор (ученик) для получения убытков Однако мне нужно распространять ошибку Дискриминатора обратно через внутренний l oop к Генератору.

Как мне добиться этого с Keras? Можно ли сделать l oop развертывание в Керасе? Как я могу обеспечить произвольную потерю и вернуть ее обратно на развернутые слои?

Обновление: теперь есть одна реализация в PyTorch, которая использует библиотеку Facebook «Higher». Похоже, это означает, что обновления, сделанные во время внутреннего l oop, должны быть «развернуты», чтобы окончательные мета-потери были применены ко всей сети. Есть ли у Keras способ достичь этого? https://github.com/GoodAI/GTN

1 Ответ

0 голосов
/ 17 марта 2020

Кажется, это Генеративная Состязательная Сеть (GAN) , которую изучает обе модели; один для классификации , а другой для поколения . Подводя итог, можно сказать, что выход генератора генерируется как вход в дискриминаторе, а затем передает свой выход генератора в качестве его входа.

Существует также обсуждение и реализация этого в TensorFlow Keras с использованием MNIST Di git Набор данных в TensorFlow GAN / DCGAN Документация по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...