89
правок
Изменения
м
→Обзор генеративных моделей
=== DCGAN ===
'''Глубокая сверточная генеративная состязательная сеть''' (англ. ''Deep Convolutional Generative Adversarial Network, DCGAN'') {{---}} обусловлена текстовыми признаками, кодируемыми гибридной сверточно-рекуррентной
нейронной сетью на уровне символов. DCGAN имеет эффективную архитектуру и обучающую структуру, которая позволяет синтезировать изображения птиц и цветов из текстовых описаний, предоставленных человеком.
Для обучения такой модели для птиц был использован набор данных Caltech-UCSD<ref name="caltech">[http://www.vision.caltech.edu/visipedia/CUB-200.html Caltech-UCSD Birds 200 dataset]</ref>, а для цветов {{---}} Oxford-102<ref name="oxford">[https://www.robots.ox.ac.uk/~vgg/data/flowers/102/ Oxford Flowers 102 dataset]</ref>. Наряду с этим было собрано по пять текстовых описаний на изображение, которые были использованы в качестве параметров оценки.
DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером 64×64, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика <tex>\varphi</tex>. Описание, внедренное в <tex>\varphi(t)</tex> сначала сжимается с помощью полностью связанного слоя до небольшого размера (на практике было использовано 128), затем применяется функция активации [[Практики реализации нейронных сетей|Leaky ReLU]] и результат конкатенируется с вектором шума <tex>z</tex>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:DCGAN-1.png|thumb|alt=Архитектура DCGAN|x350px|center|Рисунок 1.<ref name="DCGAN">[https://arxiv.org/abs/1605.05396 Scott R. {{---}} Generative Adversarial Text to Image Synthesis, 2016]</ref> Архитектура DCGAN]]</div>
Как только модель научилась генерировать правдоподобные изображения, она должна также научиться согласовывать их с текстовым описанием, и было бы неплохо, если бы она научилась оценивать, соответствуют ли изображения
заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.
<gallery mode="slideshow" caption="Рисунок 2. Пример результата работы DCGAN">Файл:DCGAN-2.png|Сравнение DCGAN<ref name="DCGAN"/>|alt=Сгенерированные изображения птицФайл:DCGAN-3.png|Сравнение DCGAN<ref name="DCGAN"/>|alt=Сгенерированные изображения цветов
</gallery>
=== Attribute2Image ===
[[Файл: Attribute2Image-2.png|400px|thumb|right|Рисунок 3.<ref name="Attribute2Image"/> Пример результата работы Attribute2Image]]'''Условная генерация изображений из визуальных атрибутов''' (англ. ''Conditional Image Generation from Visual Attributes, Attribute2Image''<ref name="Attribute2Image">[https://arxiv.org/abs/1512.00570 Xinchen Y. {{---}} Conditional Image Generation from Visual Attributes, 2015]</ref>) {{---}} это еще один способ создания изображений из визуальных атрибутов. Attribute2Image моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными, которые можно изучать от начала до конца с помощью [[Вариационный автокодировщик| вариационного автокодировщика]] (англ. ''Variational Autoencoder, VAE''). Экспериментируя с естественными изображениями лиц и птиц Attribute2|Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения с распутанными скрытыми представлениями. Модель использует общий алгоритм минимизации энергии для апостериорного вывода скрытых переменных с учетом новых изображений. Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Attribute2Image-1.png|thumb|alt=Архитектура Attribute2Image|x350px|center|Рисунок 4.<ref name="Attribute2Image"/> Архитектура Attribute2Image]]</div>
=== StackGAN ===
'''Составные генеративные состязательные сети''' (англ. ''Stacked Generative Adversarial Networks, StackGAN''<ref name="StackGAN>[https://arxiv.org/abs/1612.03242 Han Z., Tao X. {{---}} Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks, 2017]</ref>) {{---}} служат для генерации фотореалистичных изображений размера 256x256, заданных текстовыми описаниями. В данной модели трудная задача генерации изображения разлагается на более решаемые подзадачи с помощью процесса эскиз-уточнения (англ. ''sketch-refinement process''). Таким образом, Stage-I GAN рисует примитивную форму и цвета объекта на основе данного текстового описания, получая изображения Stage-I с низким разрешением. Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять привлекательные детали в процессе уточнения (англ. ''refinement process''). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение CGAN<ref name="CGAN">[https://arxiv.org/abs/1411.1784 Mirza M. and Osindero S. {{---}} Conditional Generative Adversarial Nets (CGAN) 2014]</ref> вводится техника условно-когнитивной регуляции (англ. ''Conditioning Augmentation''), которая способствует плавности в обусловливающем многообразии.
{| class="wikitable"
* Обширные качественные и количественные эксперименты демонстрируют эффективность дизайна модели в целом, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GAN.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGAN-1.png|thumb|alt=Архитектура StackGAN|x350px|center|Рисунок 5.<ref name="StackGAN/> Архитектура StackGAN.]]</div>
Генератор Stage-II проектируется как сеть кодировщик-декодировщик с остаточными блоками. Что касается дискриминатора, его структура аналогична структуре дискриминатора Stage-I только с дополнительными блоками понижающей дискретизации, поскольку на этом этапе размер изображения больше.
Для проверки метода были проведены обширные количественные и качественные оценки. Сравниваются два современных метода синтеза текста в изображение, GAN-INT-CLS<ref name="scott">[http://proceedings.mlr.press/v48/reed16.pdf Scott R. {{---}} Generative Adversarial Text to Image Synthesis]</ref> и GAWWN<ref name="scott"/>.
<gallery mode="slideshow" caption="Рисунок 6. Пример результата работы StackGAN">Файл:StackGAN-2.png|Сравнение StackGAN<ref name="StackGAN/>.|alt=Сгенерированные изображения птицФайл:StackGAN-3.png|Сравнение StackGAN<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов
</gallery>
=== StackGAN++ ===
Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. В данном разделе предлагаются <ref name="StackGAN++">[https://arxiv.org/abs/1710.10916 Han Z., Tao X. {{---}} Realistic Image Synthesis with Stacked Generative Adversarial Networks, 2018]</ref> составные генеративные состязательные сети, предназначенные для создания фотореалистичных изображений с высоким разрешением. Во-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-v1 для синтеза текста в изображение. Stage-I по-прежнему рисует примитивную форму и цвета сцены на основе заданного текстового описания, что дает изображения с низким разрешением. Stage-II все также принимает результаты этапа I и текстовое описание в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Во-вторых, усовершенствованная многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 предлагается как для условных, так и для безусловных генеративных задач. StackGAN-v2 состоит из нескольких генераторов и нескольких дискриминаторов, организованных в древовидную структуру; изображения в нескольких масштабах, соответствующие одной и той же сцене, генерируются из разных ветвей дерева. StackGAN-v2 демонстрирует более стабильное поведение при обучении, чем StackGAN-v1, за счет совместной аппроксимации нескольких распределений.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGAN++-1.png|thumb|alt=Архитектура StackGAN++|x350px|center|Рисунок 6.<ref name="StackGAN++"/> Архитектура StackGAN++.]]</div>
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров | гиперпараметров]]. В нескольких статьях утверждалось, что нестабильность частично связана с несвязными носителями распределения данных и подразумеваемого модельного распределения. Эта проблема становится более серьезной при обучении GAN генерировать изображения с высоким разрешением (например, 256x256), потому что вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является свертывание режима, когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры. Чтобы стабилизировать процесс обучения GAN и улучшить разнообразие выборок, несколько методов пытались решить проблемы, предлагая новые сетевые архитектуры, вводя эвристические приемы или изменяя цели обучения.
Введен термин регуляризации согласованности цвета, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображений.
<gallery mode="slideshow" caption="Рисунок 7. Пример результата работы StackGAN++">Файл:StackGAN++-2.png|Сравнение StackGAN++<ref name="StackGAN++"/>.|alt=Сгенерированные изображения цветовФайл:StackGAN++-3.png|Сравнение StackGAN++<ref name="StackGAN++"/>.|alt=Сгенерированные изображения интерьераФайл:StackGAN++-4.png|Сравнение StackGAN++<ref name="StackGAN++"/>.|alt=Сгенерированные изображения собак и кошек
</gallery>
=== HTIS ===
В данном разделе предлагается новый '''иерархический подход к синтезу текста''' (''Hierarchical Text-to-Image Synthesis, HTIS''<ref name="HTIS">[https://arxiv.org/abs/1801.05091 Seunghoon H., Dingdong Y. {{---}} Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis, 2018]</ref>) в изображение путем определения семантического макета. Вместо того, чтобы изучать прямое отображение текста в изображение, алгоритм разбивает процесс генерации на несколько шагов, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображений. Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точному, генерируя '''ограничивающие рамки''' (англ. ''bounding box'') объекта и уточняя каждую рамку, оценивая формы объектов внутри нее. Генератор изображений синтезирует изображение, обусловленное предполагаемым семантическим макетом, что обеспечивает полезную семантическую структуру изображения, совпадающего с текстовым описанием.
Модель не только генерирует семантически более значимые изображения, но также позволяет автоматически аннотировать генерируемые изображения. Созданные изображения и процесс генерации под управлением пользователя путем изменения сгенерированного макета сцены.
Поэтому вместо того, чтобы изучать прямое отображение текста в изображение, был предложен альтернативный подход, который строит семантический макет как промежуточное представление между текстом и изображением. Семантический макет определяет структуру сцены на основе экземпляров объектов и предоставляет детальную информацию о сцене, такую как количество объектов, категорию объекта, расположение, размер, форму.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Semantic-1.png|thumb|alt=Архитектура|x350px|center|Рисунок 9.<ref name="HTIS"/> АрхитектураHTIS.]]</div>
* '''Генератор рамок''' (англ. ''Box Generator'') принимает в качестве входных данных вложения текста и генерирует грубую компоновку, композируя экземпляры объектов в изображении. Выходные данные генератора представляют собой набор ограничивающих рамок <tex>B_1: T = \{B_1, ..., B_T\}</tex>, где каждая ограничивающая рамка <tex>B_t</tex> определяет местоположение, размер и метку категории <tex>t</tex>-го объекта.
* '''Генератор изображений''' (англ. ''Image Generator'') принимает карту семантических меток <tex>M</tex>, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.
<gallery mode="slideshow" caption="Рисунок 10. Пример результата работы">Файл:Semantic-2.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 1Файл:Semantic-3.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 2
</gallery>
В качестве решения данной проблемы была предложена<ref name="AttnGan">[https://openaccess.thecvf.com/content_cvpr_2018/papers/Xu_AttnGAN_Fine-Grained_Text_CVPR_2018_paper.pdf Tao X., Pengchuan Z. {{---}} AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, 2018] </ref> новая '''[[Generative Adversarial Nets (GAN)|генеративно-состязательная нейросеть]] с вниманием''' (англ. ''Attentional Generative Adversarial Network, AttnGAN''), которая относится к вниманию как к фактору обучения, что позволяет выделять слова для генерации фрагментов изображения.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:AttnGanNetwork.png|thumb|alt=Архитектура AttnGAN|x350px|center|Рисунок 11. Архитектура AttnGAN<ref name="AttnGan"/>Архитектура AttnGAN.]]</div>
Модель состоит из нескольких взаимодействующих нейросетей (Рисунок 11):
Большинство существующих методов генерации изображения по тексту нацелены на создание целостных изображений, которые не разделяют передний и задний план изображений, в результате чего объекты искажаются фоном. Более того, они обычно игнорируют взаимодополняемость различных видов генеративных моделей. Данное решение<ref name="CVAE&GAN">[https://ieeexplore.ieee.org/document/8499439 Chenrui Z., Yuxin P. {{---}} Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018]</ref> предлагает контекстно-зависимый подход к генерации изображения, который разделяет фон и передний план. Для этого используется взаимодополняющая связка [[Вариационный автокодировщик| вариационного автокодировщика]] и [[Generative Adversarial Nets (GAN)|генеративно-состязательной нейросети]].
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN.png|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13. Архитектура Stacking VAE and GAN<ref name="CVAE&GAN"/>Архитектура Stacking VAE and GAN.]]</div>
[[Вариационный автокодировщик| VAE]] считается более устойчивым чем GAN, это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):
Полученные результаты проверки (рис.14) на 2 наборах данных (Caltech-UCSD<ref name="caltech"/> и Oxford-102<ref name="oxford"/>) эмпирически подтверждают эффективность предложенного метода.
<gallery mode="slideshow" caption="Рисунок 14. Сравнение CVAE&GAN, StackGan и GAN-INT-CLS ">
Файл:CVAE&GAN_example_flowers.png|Сравнение CVAE&GAN, [[#StackGAN|StackGAN]] и GAN-INT-CLS<ref name="scott"/>.<ref name="CVAE&GAN"/>|alt=Пример результата работы CVAE&GAN (flowers)Файл:CVAE&GAN_example_bird.png|Сверху вниз начиная со второй строки: CVAE&GAN, [[#StackGAN|StackGAN]] и GAN-INT-CLS<ref name="scott"/>. <ref name="CVAE&GAN"/>|alt=Пример результата работы CVAE&GAN (birds)
</gallery>
[[Файл:SurfBoard-questions.png|alt=Изображение, сгенерированное моделью ChatPainter для данного описания и диалога|thumb|x200px|right|Рисунок 16.<ref name="ChatPainter"/> Пример работы ChatPainter.]]
Данная архитектура (рис. 15) опирается на модель [[#StackGAN|StackGAN]]. StackGAN генерирует изображение в два этапа: на первом этапе генерируется грубое изображение 64×64, а на втором генерируется уже улучшенное изображение 256×256.
Формирование вектора текстовых описаний <tex>\phi_{t}</tex> происходит путем кодирования подписей с помощью предварительно обученного кодировщика<ref>[https://github.com/reedscot/icml2016 Pre-trained encoder for ICML 2016 paper]</ref>. Для генерации диалоговых вложений <tex>\zeta_{d}</tex> используется два метода:
! Модель !! Inception Score
|-
| style = "text-align: right" | [[#StackGAN|StackGAN]] || style = "text-align: center" | <tex>8.45 \pm 0.03</tex>
|-
| style = "text-align: right" | ChatPainter (non-recurrent)|| style = "text-align: center" | '''<tex>9.43 \pm 0.04</tex>'''
=== MirrorGAN ===
Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм и семантическое постоянство. Несмотря на то, что существует колоссальный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных целей все еще является категорически сложной задачей. Для осуществления попытки их реализации рассмотрим фреймворк text-to-image-to-text, сохраняющий семантику с вниманием под названием <b>MirrorGAN</b><ref name="MirrorGAN">[https://arxiv.org/abs/1903.05854 Tingting Q., Jing Z. {{---}} MirrorGAN: Learning Text-to-image Generation by Redescription, 2019]</ref>. Данный фреймворк, который из текстового описания генерирует изображение, использует идею обучения с помощью переописания и состоит из трёх модулей:
* модуль встраивания семантического текста (англ. ''semantic text embedding module, <b>STEM</b>'');
* глобально-локальный совместный модуль с вниманием для создания каскадных изображений (англ. ''global-local collaborative attentive module for cascaded image generation, <b>GLAM</b>'');
Чтобы обучать модель сквозным методом, будем использовать две состязательные функции потерь: в визуальном реализме и в семантическом постоянстве. Вдобавок, для эффективного использования двойного регулирования T2I и I2T, применим текстово-семантическую реконструированную функцию потерь, основанную на перекрёстной энтропии.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MirrorGAN.png|thumb|center|x350px|Рисунок 21.<ref name="MirrorGAN"/> Архитектура MirrorGAN.]]</div>
MirrorGan представляет собой зеркальную структуру, объединяя T2I и I2T. Она состоит из трех генераторов. Чтобы сконструировать многоэтапный каскадный генератор, нужно совместить все три сети генерации изображений последовательно. В качестве архитектуры STREAM будем использовать довольно распространенный фреймворк захвата изображения, базирующийся на кодировании и декодировании. Кодировщик изображений есть [[Сверточные нейронные сети | свёрточная нейронная сеть]], предварительно обученная на ImageNet, а декодировщик есть [[Рекуррентные нейронные сети | рекуррентная нейронная сеть]]. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместная оптимизация довольно нестабильна и с точки зрения занимаемого места и времени очень дорога. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.
Показатель Inception был использован для измерения как объективности, так и разнообразия сгенерированных изображений. R-precision был использован для вычисления визуально-семантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниями.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MirrorGAN&Co.jpg|thumb|center|x500px|Рисунок 22.<ref name="MirrorGAN"/> Сравнение MirrorGAN , [[#AttnGAN|AttnGAN]] и других генеративных состязательных сетей.]]</div>
=== Obj-GAN ===
'''Объектно-управляемая [[Generative Adversarial Nets (GAN)| генеративная состязательная сеть]] с вниманием''' (англ. ''Object-Driven Attentive Generative Adversarial Network, Obj-GAN'') позволяет создавать изображения по описанию с учётом объектной компоновки. Объектно-управляемый генератор изображений, создаёт изображения на основе двухэтапной генерации. Сначала создаётся макет по наиболее значимым словам в текстовом описании, после этого генерируется изображение с полученной компоновкой объектов. А для сопоставления синтезируемых объектов с текстовым описанием и сгенерированным макетом, предлагается<refname="Obj-GAN">[https://openaccess.thecvf.com/content_CVPR_2019/papers/Li_Object-Driven_Text-To-Image_Synthesis_via_Adversarial_Training_CVPR_2019_paper.pdf Wendo L., Pengchuan Z. {{---}} Object-driven Text-to-Image Synthesis via Adversarial Training 2019]</ref> новый объектный дискриминатор, базирующийся на Fast R-CNN<ref>[https://arxiv.org/abs/1504.08083 Ross Girshick {{---}} Fast R-CNN, 2015]</ref>. В результате модификаций Obj-GAN значительно превосходит по производительности другие модели на наборе данных COCO<ref name="COCO" />, увеличивая показатель Inception score<ref name="inception"/> на 11% и уменьшая показатель FID (Fréchet inception distance)<ref>[https://en.wikipedia.org/wiki/Fréchet_inception_distance Fréchet inception distance, FID]</ref> на 27%.
{| class="wikitable" style="float:right; margin-left: 10px;"
|}
[[Файл:Obj-GAN.png|thumb|alt=Архитектура Obj-GAN|x300px|thumb|right|Рисунок 23.<ref name="Obj-GAN"/> Архитектура Obj-GAN.]]
Основная цель Obj-GAN {{---}} генерация качественных изображений с семантически значимым макетом и реалистическими объектами. Obj-GAN состоит из пары генератора изображений, управляемый объектами, с вниманием и пообъектного дискриминатора. Генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет, по которым создаёт изображение с помощью многоэтапного процесса coarse-to-fine. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. ''bounding box''), фокусируясь на наиболее релевантных объекту словах.
Рассмотрим архитектуру Obj-GAN. Первым этапом, генеративная состязательная сеть принимает текстовое предложение и генерирует <b>семантический макет</b> {{---}} последовательность объектов специфицированных соответствующими ограничивающими рамками (наряду с метками классов) и фигурами. <b>Генератор рамок</b> (англ. ''Box generator'') и <b>генератор фигур</b> работают соответствующим образом, сначала создавая последовательность ограничивающих рамок, а затем {{---}} фигуру для каждой. Поскольку большинству рамок сопоставлены слова из данного текстового предложения, модель seq2seq с вниманием охватывает это соответствие. Далее конструируется <tex>G_{shape}</tex>, базированный на двунаправленной [[Сверточные нейронные сети | свёрточной]] [[Долгая краткосрочная память|долгой краткосрочной памяти ]] (англ. ''bidirectional convolutional long short-term memory, [[Долгая краткосрочная память|LSTM]]''). Обучение <tex>G_{shape}</tex> основывается на фреймворке генеративной состязательной сети, в которой потеря восприятия используется для ограничения генерируемых фигур и стабилизирования обучения.
<gallery class="center" mode="slideshow" caption="Рисунок 24. Сравнение результатов Obj-GAN с другими генеративными состязательными сетями.">Файл:Obj-GAN_ex1.png|Сравнение Obj-GAN<ref name="Obj-GAN"/>Файл:Obj-GAN_ex2.png|Сравнение Obj-GAN<ref name="Obj-GAN"/>
</gallery>
* экстремальная валидация моделей с использованием MNIST-макетов и наборов данных COCO<ref name="COCO" />, в которой содержатся сложные макеты сцен реального мира.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAE.png|thumb|center|x350px|Рисунок 25.<ref name="LayoutVAE"/> Архитектура LayoutVAE.]]<div>В статье<refname="LayoutVAE">[https://openaccess.thecvf.com/content_ICCV_2019/papers/Jyothi_LayoutVAE_Stochastic_Scene_Layout_Generation_From_a_Label_Set_ICCV_2019_paper.pdf LayoutVAE: Stochastic Scene Layout Generation From a Label Set]</ref> были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <b>PNP-Net</b> {{---}} фреймворк вариационного автокодировщика для генерации изображения абстрактной сцены из текстовой программы, полностью описывающей её (помимо того, что это {{---}} стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); <b>LayoutGAN</b> {{---}} модель, основанная на [[Generative Adversarial Nets (GAN) | генеративных состязательных сетях]], генерирующая макеты графических элементов (прямоугольники, треугольники, и так далее); VAE-базированный фреймворк, кодирующий объект и информацию о макете 3D-сцен в помещении в скрытом коде и т.д..
Обучение генеративных моделей нужно, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой <tex>i</tex>-й ограничивающей рамки категории <tex>k</tex>. LayoutVAE естественным образом декомпозируется на модель для предсказания количества для каждой заданной метки {{---}} <b>CountVAE</b> {{---}} и другая для предсказания местоположения и размера каждого объекта {{---}} <b>BBoxVAE</b>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAEGeneration.png|thumb|center|x350px|Рисунок 26.<ref name="LayoutVAE"/> Генерация по множеству меток <tex>\{person, sea, surfboard\}</tex>.]]</div>
=== TextKD-GAN ===
Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье<refname="TextKD-GAN"/>[https://arxiv.org/abs/1905.01976 Md. Akmal H. and Mehdi R.{{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019]</ref> вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автокодировщики]] (англ. ''autoencoders, AEs'') могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову.
TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний: метод, переносящий знания смягченного вывода модели преподавателя в модель студента. Решение основано на AE (учителе), чтобы получить гладкое представление реального текста. Это гладкое представление подается в дискриминатор TextKD-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовке.
[[Файл:TextKD-GAN_Model.png|thumb|right|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]
В общепринятом текстовом подходе к распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов (а не one-hot представления), и обучении дискриминатора различать их. Здесь используется общепринятый атокодировщик(учитель), чтобы заменить one-hot представление softmax-реконструированным выходом, который является гладким представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке справа. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход атокодировщика подается на вход дискриминатору. Эта техника значительно усложняет различение для самого дискриминатора. Генератор GAN с softmax выходом пытается имитировать распределение выходного сигнала атокодировщика вместо общепринятого one-hot представления.
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <tex>\hat{x} \sim P_{\hat{x}}</tex>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN&Co.png|thumb|center|x500px|Рисунок 28.<ref name="TextKD-GAN"/> Дивергенция Дженсена-Шеннона (англ. ''Jensen-Shannon divergence, JSD'') между сгенерированным и обучающимся предложениями (n-граммами) полученных из эксперимента SNLI (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).]]</div>
=== MCA-GAN ===
Преобразование изображений перекрестным видом проблематично, поскольку оно включает в себя изображения со значительно отличающимися видами и жесточайшей деформацией. В статье<refname="MCA-GAN">[https://arxiv.org/pdf/1904.06807.pdf Multi-Channel Attention Selection GAN with Cascaded Semantic Guidancefor Cross-View Image Translation]</ref> о выборочной [[Generative Adversarial Nets (GAN) | генеративной состязательной сети]] с мультиканальным вниманием (англ. ''Multi-Channel Attention Selection GAN, MCA-GAN'') рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с произвольных точек зрения, основывающийся на семантическом отображении. Работа сети происходит в два этапа:
# изображение и целевое семантическое отображение подаются на вход циклической семантически-управляемой генерационной сети для получения начальных результатов;
# начальные результаты уточняются, используя механизм мультиканального выделения внимания.
Обширные эксперименты на наборах данных Dayton, CVUSA и Ego2Top показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы.
[[Файл:MCA-GAD.png|thumb|left|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]
На картинке слева проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из каскадной семантически-управляемой генерацинной подсети, использующая изображения с одном представлении и условные семантические отображения в другом представлении в качестве входных данных и реконструирующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя генерационный цикл. Второй этап заключается в том, что отличительные характеристики и грубый синтез объединяются и передаются в модуль культиканального выделения внимания, направленный на получение более детализированного синтеза из большего пространства генерации и создание отображений неопределенности для управления множественными оптимизационными потерями.
Поскольку между изначальной точкой зрения и результирующей существует объемная деформация объекта и/или сцены, одномасштабная компонента вряд ли сможет захватить всю необходимую пространственную информацию для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями для восприятия, соответственно, различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора, чтобы синтезировать конечный детализированный результат.
[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]
[[Файл:MCA-GAN_CrossviewImageTranslation.png|thumb|center|x500px|Рисунок 31.<ref name="MCA-GAN"/> Преобразование изображения перекрестным видом.]]
== Области применения ==