Я понял, как работает GAN, в то время как две сети (генеративная и дискриминационная) конкурируют друг с другом. Я построил DCGAN (GAN с сверточным дискриминатором и деконволюционным генератором), который теперь успешно генерирует рукописные цифры, аналогичные тем, которые указаны в наборе данных MNIST.
Я много читал о приложениях GAN для извлечения функций из изображений. Как можно использовать мою обученную модель GAN (в наборе данных MNIST) для извлечения функции из рукописных изображений MNIST, написанных от руки?
Ответы:
Обычно для извлечения функций вы можете использовать верхний слой сети перед выводом. Интуиция заключается в том, что эти функции линейно отделимы, потому что верхний слой - это просто логистическая регрессия.
Для GAN вы можете использовать функции от дискриминатора. Предполагается, что эти функции дают вероятность, если входные данные поступили из обучающего набора данных «реальные изображения». В статье Рэдфорда DCGAN они используют все сверточные слои дискриминатора и запускают функции извлечения максимального пула для CIFAR-10.
источник
Ответ Кенни правильный: если вы используете сверточную букву D , выходные данные слоев до плотного могут служить в качестве объектов. Моя интуиция заключается в том, что он будет работать лучше для AC-GAN (или аналогичных архитектур, которые заставляют D классифицировать входные данные в дополнение к определению, является ли он поддельным или реальным).
Существует подход, называемый BiGAN, который добавляет компонент Encoder, способный отображать сгенерированные и обучающие выборки в скрытое распределение z, используемое для «инициализации» генератора. Авторы показывают, что он может эффективно использоваться в качестве набора функций для передачи обучения и других задач.
источник
поскольку GAN состоит из двух частей - генератора и дискриминатора, существует два способа использования GAN в качестве экстрактора признаков:
Второй способ более спорный. В некоторых исследованиях [1] считалось, что, поскольку цель дискриминатора состоит в том, чтобы отличать сгенерированные выборки от реальных выборок, он просто сосредоточится на разнице между этими двумя типами выборок. Но что имеет смысл, так это разница между реальными выборками, то есть выборками, используемыми в последующих задачах.
Я попытался изучить это, и я обнаружил, что извлеченная функция может быть разложена на две ортогональные подпространства. Первый пробел способствует задаче дискриминатора, а второй свободен от нее. Поскольку в большинстве случаев функции, используемые для отличия реальных выборок от сгенерированных, представляют собой шум, второе пространство признаков будет свободным от шума. С этой точки зрения, хотя задача дискриминатора не будет фокусироваться на разнице между реальными выборками, которые полезны для задач нисходящего потока, будут работать безшумные функции, содержащиеся во втором подпространстве.
[1] Йост Тобиас Спрингенберг. Неконтролируемое и полуконтролируемое обучение с категориальными порождающими состязательными сетями. arXiv: 1511.06390 [cs, stat], апрель 2016 г. Препринт arXiv. arXiv: 1511.06390 [stat.ML]. Итака, Нью-Йорк: Университетская библиотека Корнелла.
источник