1632
правки
Изменения
м
{{В разработке}}Автоматический синтез Автоматическое создание реалистичных высококачественных изображений из текстовых описаний был было бы интересен интересно и довольно полезенполезно, так как имеет множество практических применений, но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные [[Generative Adversarial Nets (GAN)| генеративные состязательные сети]] (англ. ''Generative Adversarial Nets, GANs'') начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. Мы рассмотрим глубокую архитектуру В данной статье рассмотрены формулировка и формулировку глубокая архитектура GAN, объединим а также объединены достижения в моделировании текста и генерации изображений, переводя визуальные концепции из символов в пикселипо тексту.
=== ChatPainter ===
В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных в модели ChatPainter предлагается<ref name="ChatPainter">[https://arxiv.org/abs/1802.08216 Shikhar S., Dendi S. {{---}} ChatPainter: Improving Text to Image Generation using Dialogue, 2018]</ref> использовать диалоги, которые дополнительно описывают сцены (пример рис. 16). Это приводит к значительному улучшению Inception score<ref name="inception"/> и качества генерируемых изображений в наборе данных [[Известные наборы данных#COCO|MS COCO (Microsoft COCO dataset)]]. Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных [[Известные наборы данных#COCO|MS COCO]], с данными из Visual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: ChatPainter.png|thumb| alt=Архитектура ChatPainter|x350px|center|Рисунок 15.<ref name="ChatPainter"/> Архитектура ChatPainter: <ol style="list-style-type:lower-alpha">
<li>Этап 1: модель генерирует изображение 64×64, по описанию и диалогу. </li>
<li>Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу </li>
</ol>]]</div>
[[Файл: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> используется два метода:
*Нерекурсивный кодировщик {{---}} сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного кодировщика Skip-Thought<ref>[https://github.com/ryankiros/skip-thoughts Skip-Thought encoder]</ref>.
*Рекурсивный кодировщик {{---}} генерирует Skip-Thought векторы (англ. ''Skip-Thought Vectors'')<ref>[https://arxiv.org/abs/1506.06726 Skip-Thought Vectors]</ref> для каждого сообщения в диалоге, а затем кодирует их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]].
Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. ''Conditioning Augmentation, CA''). Модуль CA нужен для получения скрытых условных переменных, которые передаются на вход генератору.
Архитектура блоков (рис. 15) upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN
Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception score<ref name="inception"/>, в отличии от модели [[#StackGAN|StackGAN]]. Кроме того, рекурсивная версия ChatPainter получилась лучше, чем нерекурсивная версия. Вероятно, это связано с тем, что в нерекурсивной версии кодировщик не обучается на длинных предложениях сворачивая весь диалог в одну строку.
{| class="wikitable"
|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''
|-
! Модель !! 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>'''
|-
| style = "text-align: right" | '''ChatPainter (recurrent)'''|| style = "text-align: center" | '''<tex>9.74 \pm 0.02</tex>'''
|-
| style = "text-align: right" | [[#AttnGAN|AttnGAN]] || style = "text-align: center" | <tex>25.89 \pm 0.47</tex>
|}
<div {| class="oo-ui-panelLayout-scrollablewikitable" style="displayfloat: blockright; verticalmargin-align:middle; height: auto; widthleft: auto10px;">|+ '''Inception scores для сгенерированных изображений в тестовых наборах [[Файл:FusedGAN.pngИзвестные наборы данных#Caltech-UCSD Birds 200 (CUB)|thumbCaltech-UCSD]] и [[Известные наборы данных#COCO|alt=Архитектура FusedGAN|x350px|center|Рисунок 19.<ref name="FusedGAN"/> Архитектура FusedGANCOCO]]</div>'''Контролируемая выборка относится к процессу выборки изображений путем изменения таких факторов как стиль, фон и другие детали. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сохраняя остальной контекст неизменным.Основное преимущество данной модели состоит в том, что для обучения она может использовать полу|-размеченные данные. Это означает, что помимо размеченных данных (изображение и его описание) для генерации изображений, модель может использовать изображения без текстового описания.! Модель состоит из двух взаимосвязанных этапов !! Inception Score (рис. 19): * На первом этапе с помощью [[Generative Adversarial Nets Известные наборы данных#Caltech-UCSD Birds 200 (GANCUB)| GANCaltech-UCSD]] выполняется генерация изображений из случайного вектора, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге.* На втором этапе ) !! Inception Score ([[Generative Adversarial Nets (GAN)Известные наборы данных#CGAN (Conditional Generative Adversarial Nets)COCO|CGANCOCO]] генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и данные полученные с первого шага. |-| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>М_{s}</tex> выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации2. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле88 \pm 0. Поэтому вместо того, чтобы учиться с нуля, <tex>G_{c}04</tex> строится поверх || style = "text-align: center" | <tex>М_{s}7.88 \pm 0.07</tex>, добавляя к нему стили с помощью текстового описания.Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя альтернативный метод оптимизации.|-<div class| style ="ootext-uialign: right" | [[#GAN-panelLayoutINT-scrollable" CLS|GAWWN]] || style="display: block; verticaltext-align:middle; height: auto; width: auto;center"| <tex>[[ Файл:FusedGAN_ example3.70 \pm 0.png04</tex> |thumb| altstyle =Пример работы FusedGAN|x350px|"text-align: center" |Рисунок 20.<ref name="FusedGAN"/tex> Сравнение FusedGAN с другими моделями]]-</divtex>Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе |-| style = "text-align: right" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)StackGAN |Caltech-UCSDStackGAN]]|| style = "text-align: center" | <tex>3. Данные сравнения приведены в таблице62 \pm 0.{07</tex> || classstyle ="wikitabletext-align: center"| <tex>8.45 \pm 0.03</tex>
! Модель !! Inception Score| style = "text-align: right" | [[#StackGAN++ | StackGAN++]] || style = "text-align: center" | <tex>3.82 \pm 0.06</tex> || style = "text-align: center" | <tex>-</tex>
=== MirrorGAN ===
{| class="wikitable"== TextKD-GAN ===|+ Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''Inception scores для сгенерированных изображений в тестовых наборах ), таких как [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]https://en.wikipedia.org/wiki/Machine_translation машинный перевод] , моделирование языка и обобщение текста. [[Известные наборы данных#COCO|COCO]]'''|-! Модель !! Inception Score Generative Adversarial Nets ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUBGAN)|Caltech-UCSDГенеративные состязательные сети]]) !! Inception Score (достигли замечательного успеха в создании высококачественных изображений в [[Известные наборы данных#COCOКомпьютерное зрение |COCOкомпьютерном зрении]])|, и в последнее время они также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-| style = "text-align: right" | GAN-INT-CLS за дискретности текста. В данной статье<ref name="scottTextKD-GAN"/> || style = "text-align[https: center" | <tex>2//arxiv.org/abs/1905.01976 Md. Akmal H.88 \pm 0and Mehdi R.04{{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019]</texref> || style = "textвводится метод, использующий дистилляцию знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)) для эффективного оперирования настройками сети. TextKD-align: center" | GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с <texb>7.88 \pm 0.07дистилляцией знаний</texb>{{---}} методом, переносящим знания смягченного вывода модели (учителя) в меньшую модель (ученика). Решение основано на автокодировщике (учителе), чтобы получить гладкое представление настоящего текста. Это представление затем подается в дискриминатор TextKD-GAN вместо обычного one-hot представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления автокодировщика. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе генеративных состязательных сетей, который не нуждается в предварительном обучении. |<div class="oo-ui-panelLayout-| scrollable" style = "textdisplay: block; vertical-align: rightmiddle; height: auto; width: auto;" >[[Файл:TextKD-GAN_Model.png|thumb|center|x400px| GAWWN Рисунок 27.<ref name="scottTextKD-GAN"/> || style = "textМодель TextKD-align: center" | GAN для генерации текста.]]<tex/div>3 В общепринятом текстовом распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.70 \pm 0wikipedia.04<org/wiki/tex> || style = "textOne-hot one-alignhot] и [https: center" | <tex>//en.wikipedia.org/wiki/Softmax_function softmax]). Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. На рисунке 27 проиллюстрирована модель, в которой используется стандартный автокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Как видно, вместо one-hot представления реальных слов смягченный преобразованный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо обычного one-</tex>hot представления.|-| style = "textОбучение автокодировщика и TextKD-alignGAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена: right" | [[#StackGAN | StackGAN]] || style = "text-alignРеконструирующий член для автокодировщика: center" | <tex>3.62 \pm 0.07</tex> |min\limits_{(\varphi, \psi)} L_{AE}(\varphi, \psi) = \min\limits_{(\varphi, \psi)} \| style = "textx -align: center" \mathrm{softmax}(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x))) \| <tex>8^ 2.45 \pm 0.03</tex>|-| style = "text-align: right" | # [[#StackGAN++ Функция потерь и эмпирический риск | StackGAN++Функция потерь]] || style = "text-alignдля дискриминатора с градиентным штрафом (англ. ''discriminator loss function with gradient penalty''): center" | <tex>3.82 \pm 0.06</tex> || style min\limits_{w \in W} L_{discriminator}(w) = "text\min\limits_{w \in W} -align: center" E_{x \sim P_x} [f_w(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x)))] + E_{z \sim P_z} [f_w(G(z))] + \lambda_2 E_{\hat{x} \sim P_{\hat{x}}} [(\| \nabla_{\hat{x}} f_w(\hat{x}) \| <tex>_2 -1)^2].</tex>|-| style = "text-align# Состязательная стоимость (англ. ''adversarial cost'') генератора: right" | PPGN<ref name="PPGN"/tex> || style \min\limits_\theta L_{Gen}(\theta) = "text-align: center" | <tex>-\min\limits_\theta E_{z \sim P_z} [f_w(G(z))].</tex> || style = "text-align: center" | Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <tex>9.58 \pm 0.21hat{x} \sim P_{\hat{x}}</tex>.|<div class="oo-ui-panelLayout-| scrollable" style = "textdisplay: block; vertical-align: rightmiddle; height: auto; width: auto;" | >[[#AttnGAN Файл:TextKD-GAN&Co.png| AttnGAN]] thumb|center| style = "text-align: center" x500px| <tex>4Рисунок 28.36 \pm 0.03</tex> || style ref name= "textTextKD-align: centerGAN" | <tex>25.89 \pm 0.47</tex>|Дивергенция Дженсена-| style = "textШеннона (англ. ''Jensen-align: right" | MirrorGAN || style = "textShannon divergence, JSD'') между сгенерированным и обучающимся предложениями (n-align: center" | граммами) полученных из эксперимента SNLI<texref>4[https://nlp.56 \pm 0stanford.05edu/projects/snli/ The Stanford Natural Language Inference (SNLI) Corpus]</texref> || style = "text-align: center" | <tex>26(Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).47 \pm 0.41]]</texdiv>|}
Будем рассматривать Рассмотрим задачу генерации сцен с описанием набора меток. Набор меток, представленный как более слабое описание, Этот набор всего лишь предоставляет множество меток, присутствующих в данном изображении (без дополнительного описания взаимосвязи), заставляя модель изучать пространственные и подсчитываемые отношения (англ. ''spatial and count relationships'') на основе визуальных данных.
Имея Обучение генеративных моделей необходимо, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок (англ. ''bounding boxes'') <tex>b_{k, i} = [x_{k, i}, y_{k, i}, w_{k, i}, h_{k, i}]</tex>, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой <tex>Li</tex> и количество объектов в -й ограничивающей рамки категории <tex>\left\{ n_m : m \in L \right\}k</tex>, BBoxVAE предсказывает распределение координат . LayoutVAE декомпозируется на модель для предсказания количества для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в каждой заданной метки {{---}} <b>CountVAE, в пространстве меток, </b> {{---}} и упорядочиваем ограничивающие рамки слева направо модель для каждой метки; предсказания местоположения и размера каждого объекта {{---}} <b>все ограничивающие рамки предсказываются перед переходом к следующей метке.BBoxVAE</b>.
=== 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 было бы более сложным из-за дискретности текста. В данной статье<ref name="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, который не нуждается в предварительной подготовке.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN_Model.png|thumb|right|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]</div>
В общепринятом текстовом подходе к распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. Здесь используется общепринятый атокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке 27. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор GAN с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо общепринятого one-hot представления.
Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:
# Реконструирующий член для автокодировщика: <tex>\min\limits_{(\varphi, \psi)} L_{AE}(\varphi, \psi) = \min\limits_{(\varphi, \psi)} \| x - \mathrm{softmax}(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x))) \| ^ 2.</tex>
# [[Функция потерь и эмпирический риск | Функция потерь]] для дискриминатора с градиентным штрафом (англ. ''discriminator loss function with gradient penalty''): <tex>\min\limits_{w \in W} L_{discriminator}(w) = \min\limits_{w \in W} -E_{x \sim P_x} [f_w(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x)))] + E_{z \sim P_z} [f_w(G(z))] + \lambda_2 E_{\hat{x} \sim P_{\hat{x}}} [(\| \nabla_{\hat{x}} f_w(\hat{x}) \| _2 - 1)^2].</tex>
# Состязательная стоимость (англ. ''adversarial cost'') генератора: <tex>\min\limits_\theta L_{Gen}(\theta) = -\min\limits_\theta E_{z \sim P_z} [f_w(G(z))].</tex>
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <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<ref>[https://nlp.stanford.edu/projects/snli/ The Stanford Natural Language Inference (SNLI) Corpus]</ref> (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).]]</div>
rollbackEdits.php mass rollback
== Обзор генеративных моделей ==
На данный момент самые качественные изображения генерируют сети GAN (фотореалистичные и разнообразные, с убедительными деталями в высоком разрешении). Поэтому в данной статье мы сосредоточимся на моделях GAN.
{| class="wikitable"|+ '''Сравнение моделей'''|-! rowspan=2 | Модель !! colspan= DCGAN 2|Inception Score <ref name="inception"/>!! rowspan=2 | FID <ref name="FID"/> !! rowspan=2 | Разрешение генерируемой картинки !! rowspan=2 | Реализация !!rowspan=2 | Модификация (отличие от GAN)!!rowspan=2 | Пример сгенерированной картинки|-| style = "text-align: center" | [[Известные наборы данных#COCO|COCO]] | style = "text-align: center" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]|-| style = "text-align: center" | [[#Attribute2Image|Attribute2Image, 2015]] | style = "text-align: center" | <tex>14.30 \pm 0.10</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>64 \times 64</tex>| style = "text-align: center" | [https://github.com/xcyan/eccv16_attr2img да]| Генерация изображения как смесь переднего и заднего планов на основе многоуровневой генеративной модели.| [[Файл:Attribute2Image-example.png|128px|thumb|center|Male, no eyewear, frowning, receding hairline, bushy eyebrow, eyes open, pointy nose, teeth not visible, rosy cheeks, flushed face.]]|-| style = "text-align: center" | [[#GAN-INT-CLS|GAN-INT-CLS, 2016]] | style = "text-align: center" | <tex>7.88 \pm 0.07</tex>| style = "text-align: center" | <tex>2.88 \pm 0.04</tex>| style = "text-align: center" | <tex>60.62</tex>| style = "text-align: center" | <tex>64 \times 64</tex>| style = "text-align: center" | [https://github.com/soumith/dcgan.torch да]| Обучение на текстовых признаках, кодируемых гибридной сверточно-рекуррентной нейронной сетью.| [[Файл:GAN-INT-CLS-example.png|128px|thumb|center|This flower is white and pink in color, with petals that have veins.]]|-| style = "text-align: center" | [[#StackGAN|StackGAN, 2017]] | style = "text-align: center" | <tex>8.45 \pm 0.03</tex>| style = "text-align: center" | <tex>3.70 \pm 0.04</tex>| style = "text-align: center" | <tex>74.05</tex>| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | [https://github.com/hanzhanggit/StackGAN да]| Генерация изображения происходит в два этапа, на первом этапе создается примитивная форма изображения и задаются цвета объектов, на втором исправляются дефекты предыдущего этапа и добавляются более мелкие детали.| [[Файл:StackGAN-example.png|128px|thumb|center|This flower has a lot of small purple petals in a dome-like configuration.]]|-| style = "text-align: center" | [[#FusedGAN|FusedGAN, 2018]] | style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>3.00 \pm 0.03</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>64 \times 64</tex>| style = "text-align: center" | нет| Генерация изображения в два этапа, на первом задаются признаки стиля, на втором генерируется изображение.| [[Файл:FusedGan_256x256_cub.png|128px|thumb|center|This bird has a bright yellow body, with brown on it's crown and wings.]]|-| style = "text-align: center" | [[#ChatPainter|ChatPainter, 2018]] | style = "text-align: center" | <tex>9.74 \pm 0.02</tex>| style = "text-align: center"| {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| В качестве дополнительных данных для обучения используется диалог описания изображения.| [[Файл:ChatPainter_256x256_coco.png|128px|thumb|center|A person in yellow pants in on a snowboard.]]|-| style = "text-align: center" | [[#StackGAN++|StackGAN++, 2018]] | style = "text-align: center" | <tex>8.30 \pm 0.10</tex>| style = "text-align: center" | <tex>3.84 \pm 0.06</tex>| style = "text-align: center" | <tex>81.59</tex>| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | [https://github.com/hanzhanggit/StackGAN-v2 да]| Генерация изображений разного масштаба из разных ветвей древовидной структуры, в которой несколько генераторов разделяют между собой большинство своих параметров.| [[Файл:StackGAN++-example.png|128px|thumb|center|A picture of a very clean living room.]]|-| style = "text-align: center" | [[#HTIS|HTIS, 2018]] | style = "text-align: center" | <tex>11.46 \pm 0.09</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| Генерация изображения разбивается на несколько шагов, сначала создается семантический макет из текста, затем этот макет преобразовывается в изображение.| [[Файл:HTIS-example.png|128px|thumb|center|A man is surfing in the ocean with a surfboard.]]|-| style = "text-align: center" | [[#AttnGAN | AttnGAN, 2018]] | style = "text-align: center" | <tex>25.89 \pm 0.47</tex>| style = "text-align: center" | <tex>4.36 \pm 0.03</tex>| style = "text-align: center" | <tex>28.76</tex>| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | [https://github.com/taoxugit/AttnGAN да]| Выделение слов для генерации областей картинки с помощью механизма внимания.| [[Файл:AttnGan_256x256_coco.png|128px|thumb|center|A photo a homemade swirly pasta with broccoli carrots and onions.]]|-| style = "text-align: center" | [[#CVAE&GAN|CVAE&GAN, 2018]] | style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| Разделение переднего и заднего плана, сначала CVAE генерирует картинку в плохом качестве, после качество повышается с помощью GAN.| [[Файл:CVAE&GAN_256x256_cub.png|128px|thumb|center|This is a yellow and gray bird with a small beak.]]|-| style = "text-align: center" | [[#MMVR|MMVR, 2018]] | style = "text-align: center" | <tex>8.30 \pm 0.78</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| Обучение на изменённом описании картинки.| [[Файл:MMVR_256x256_coco.png|128px|thumb|center|A boat on a beach near some water.]]|-| style = "text-align: center" | [[#MirrorGAN|MirrorGAN, 2019]] | style = "text-align: center" | <tex>26.47 \pm 0.41</tex>| style = "text-align: center" | <tex>4.56 \pm 0.05</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | [https://github.com/qiaott/MirrorGAN да]| Генерация изображения с использованием идеи обучения посредством переописания.| [[Файл:MirrorGANExample.png|128px|thumb|center|Boats at the dock with a city backdrop.]]|-| style = "text-align: center" | [[#Obj-GAN|Obj-GAN, 2019]] | style = "text-align: center" | <tex>31.01 \pm 0.27</tex>| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>17.03</tex>| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | [https://github.com/jamesli1618/Obj-GAN да]| Основной принцип генерации изображений заключается в распознавании и создании отдельных объектов из заданного текстового описания.| [[Файл:Obj-GANExample.png|128px|thumb|center|A hotel room with one bed and a blue chair.]]|-| style = "text-align: center" | [[#LayoutVAE|LayoutVAE, 2019]] | style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| Генерация стохастических макетов сцен (англ. ''stochastic scene layouts'') из заданного набора слов.| [[Файл:LayoutVAEExample.png|128px|thumb|center|Person, sea, surfboard.]]|-| style = "text-align: center" | [[#MCA-GAN|MCA-GAN, 2019]] | style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | {{---}}| style = "text-align: center" | <tex>256 \times 256</tex>| style = "text-align: center" | нет| Генерация изображения с произвольных ракурсов, основывающаяся на семантическом отображении (англ. ''semantic mapping'').| [[Файл:MCA-GANExample.png|128px|thumb|center]]|} === 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>) моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными (рис. 4), которые можно изучать от начала до конца с помощью [[Вариационный автокодировщик| вариационного автокодировщика]] (англ. ''Variational Autoencoder, VAE''). Экспериментируя с естественными изображениями лиц и птиц на наборах данных [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] и [http://vis-www.cs.umass.edu/lfw LFW] Attribute2Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения размером 64x64 пикселя с распутанными скрытыми представлениями (англ. ''disentangled latent representations'') {{---}} это состояние, в котором каждый фактор приобретается как каждый элемент скрытых переменных, то есть если в модели с обученными скрытыми представлениями смещение одной скрытой переменной при сохранении других фиксированными генерирует данные, показывающие, что изменяется только соответствующий фактор. (рис. 3). Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами. <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> === GAN-INT-CLS ===
'''Глубокая сверточная генеративная состязательная сеть''' (англ. ''Deep Convolutional Generative Adversarial Network, DCGAN'') {{---}} обусловлена текстовыми признаками, кодируемыми гибридной сверточно-рекуррентной
нейронной сетью на уровне символов. DCGAN имеет эффективную архитектуру (рис. 1) и обучающую структуру, которая позволяет синтезировать изображения птиц и цветов из текстовых описаний.
Для обучения такой модели для птиц был использован набор данных [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]], а для цветов {{---}} [[Известные наборы данных#102 Category Flower|Oxford-102]]. Наряду с этим было собрано по пять текстовых описаний на изображение, которые были использованы в качестве параметров оценки.
DCGAN во многих случаях может генерировать на основе текста визуально-правдоподобные изображения размером 64×64 пикселя, а также отличается тем, что сама модель является генеративной состязательней сетью, а не только использует ее для постобработки. Текстовые запросы кодируются с помощью текстового кодировщика <tex>\varphi</tex>, который позволяет получить [[Векторное представление слов|векторное представление слов]]. ОписаниеЗатем применяется концепция [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|условной генеративной состязательной сети]] (англ. ''Conditional Generative Adversarial Network, CGAN''). Таким образом, описание, внедренное в <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=Рисунок 1. Архитектура 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 был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.
<div classgallery mode="oo-ui-panelLayout-scrollable" stylepacked heights=400px caption="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:DCGAN-2.png|thumb|alt=Рисунок 2. Пример результата работы DCGAN.|x350px|center|Рисунок 2.<ref name="PyTorchDCGAN">[https://pytorch.org/tutorials/_images/sphx_glr_dcgan_faces_tutorial_004.png Nathan I. {{GAN-CLS, GAN-INT и GAN-INT-}} DCGAN TUTORIAL]</ref> Пример результата работы DCGANCLS.]]</div"> === Attribute2Image ===[[Файл: Attribute2ImageDCGAN-2.png|400px|thumb|right|Рисунок 3.Сгенерированные изображения птиц<ref name="Attribute2ImageDCGAN"/> Пример результата работы Attribute2Image.]]'''Условная генерация изображений из визуальных атрибутов''' (англ. ''Conditional Image Generation from Visual Attributes, Attribute2Image''<ref name|alt="Attribute2Image">[https://arxiv.org/abs/1512.00570 Xinchen Y. {{---}} Conditional Image Generation from Visual Attributes, 2015]</ref>) {{---}} это еще один способ создания изображений из визуальных атрибутов. Attribute2Image моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными (рис. 4), которые можно изучать от начала до конца с помощью [[Вариационный автокодировщик| вариационного автокодировщика]] (англ. ''Variational Autoencoder, VAE''). Экспериментируя с естественными изображениями лиц и Сгенерированные изображения птиц Attribute2|Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения с распутанными скрытыми представлениями (рис. 3). Модель использует общий алгоритм минимизации энергии для апостериорного вывода скрытых переменных с учетом новых изображений. Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами. <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Attribute2ImageDCGAN-13.png|thumb|alt=Архитектура Attribute2Image|x350px|center|Рисунок 4.Сгенерированные изображения цветов<ref name="Attribute2ImageDCGAN"/> Архитектура Attribute2Image.]]|alt=Сгенерированные изображения цветов</divgallery>
=== StackGAN ===
|+ '''Inception scores для сгенерированных изображений в тестовых наборах [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]], [[Известные наборы данных#102 Category Flower|Oxford-102]] и [[Известные наборы данных#COCO|COCO]]'''
|-
! Набор данных !! Inception Score<ref name="inception"/>
|-
| style = "text-align: right" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex>
|}
Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS<ref name="scott">[http://proceedings.mlr.press/v48/reed16.pdf Scott R. {{|GAN-INT--}} Generative Adversarial Text to Image SynthesisCLS]]</ref> и [[#GAN-INT-CLS|GAWWN<ref name="scott"/> ]] (рис. 6).
<gallery mode="slideshow" packed heights=350px caption="Рисунок 6. Пример результата работы StackGAN.">Файл:StackGAN-2.png|Сравнение StackGANСгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птицФайл:StackGAN-3.png|Сравнение StackGANСгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов
</gallery>
=== FusedGAN ===
Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели разделяют процесс генерации на несколько этапов. Например, в модели [[#Attribute2Image|Attribute2Image]] раздельная генерации фона и переднего плана позволила получить контролируемую выборку (фиксируя фон и меняя основную сцену, и наоборот). В свою очередь модель FusedGAN<ref name="FusedGAN">[https://arxiv.org/abs/1801.05551 Navaneeth B., Gang H. {{---}} Semi-supervised FusedGAN for ConditionalImage Generation, 2018]</ref> может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В данной модели в отличие от [[#StackGAN|StackGAN]], где несколько этапов [[Generative Adversarial Nets (GAN)| GAN]] обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенным StackGAN.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:FusedGAN.png|thumb|alt=Архитектура FusedGAN|x350px|center|Рисунок 19.<ref name="FusedGAN"/> Архитектура FusedGAN]]</div>
Контролируемая выборка относится к процессу выборки изображений путем изменения таких факторов как стиль, фон и другие детали. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сохраняя остальной контекст неизменным.
Основное преимущество данной модели состоит в том, что для обучения она может использовать полу-размеченные данные. Это означает, что помимо размеченных данных (изображение и его описание) для генерации изображений, модель может использовать изображения без текстового описания.
Модель состоит из двух взаимосвязанных этапов (рис. 19):
* На первом этапе с помощью [[Generative Adversarial Nets (GAN)| GAN]] выполняется генерация изображений из случайного вектора, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге.
* На втором этапе [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|CGAN]] генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и данные полученные с первого шага.
<tex>М_{s}</tex> выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле. Поэтому вместо того, чтобы учиться с нуля, <tex>G_{c}</tex> строится поверх <tex>М_{s}</tex>, добавляя к нему стили с помощью текстового описания.
Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя альтернативный метод оптимизации.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[ Файл:FusedGAN_ example.png|thumb| alt=Пример работы FusedGAN|x350px|center|Рисунок 20.<ref name="FusedGAN"/> Сравнение FusedGAN с другими моделями]]</div>
Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]. Данные сравнения приведены в таблице.
{| class="wikitable"
|-
! Модель !! Inception Score <ref name="inception"/>
|-
| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>2.88 \pm 0.04</tex>
|-
| style = "text-align: right" | [[#StackGAN++|StackGAN-I]] || style = "text-align: center" | <tex>2.95 \pm 0.02</tex>
|-
| style = "text-align: right" | FusedGAN || style = "text-align: center" | <tex>3.00 \pm 0.03</tex>
|}
=== ChatPainter ===
В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных в модели ChatPainter предлагается<ref name="ChatPainter">[https://arxiv.org/abs/1802.08216 Shikhar S., Dendi S. {{---}} ChatPainter: Improving Text to Image Generation using Dialogue, 2018]</ref> использовать диалоги, которые дополнительно описывают сцены (пример рис. 16). Это приводит к значительному улучшению Inception score<ref name="inception"/> и качества генерируемых изображений в наборе данных [[Известные наборы данных#COCO|MS COCO (Microsoft COCO dataset)]]. Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных [[Известные наборы данных#COCO|MS COCO]], с данными из Visual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: ChatPainter.png|thumb| alt=Архитектура ChatPainter|x350px|center|Рисунок 15.<ref name="ChatPainter"/> Архитектура ChatPainter: <ol style="list-style-type:lower-alpha">
<li>Этап 1: модель генерирует изображение 64×64, по описанию и диалогу. </li>
<li>Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу </li>
</ol>]]</div>
[[Файл: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> используется два метода:
*Нерекурсивный кодировщик {{---}} сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного кодировщика Skip-Thought<ref>[https://github.com/ryankiros/skip-thoughts Skip-Thought encoder]</ref>.
*Рекурсивный кодировщик {{---}} генерирует Skip-Thought векторы (англ. ''Skip-Thought Vectors'')<ref>[https://arxiv.org/abs/1506.06726 Skip-Thought Vectors]</ref> для каждого сообщения в диалоге, а затем кодирует их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]].
Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. ''Conditioning Augmentation, CA''). Модуль CA нужен для получения скрытых условных переменных, которые передаются на вход генератору.
Архитектура блоков (рис. 15) upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN
Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception score<ref name="inception"/>, в отличии от модели [[#StackGAN|StackGAN]]. Кроме того, рекурсивная версия ChatPainter получилась лучше, чем нерекурсивная версия. Вероятно, это связано с тем, что в нерекурсивной версии кодировщик не обучается на длинных предложениях сворачивая весь диалог в одну строку.
{| class="wikitable"
|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''
|-
! Модель !! Inception Score <ref name="inception"/>
|-
| 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>'''
|-
| style = "text-align: right" | '''ChatPainter (recurrent)'''|| style = "text-align: center" | '''<tex>9.74 \pm 0.02</tex>'''
|-
| style = "text-align: right" | [[#AttnGAN|AttnGAN]] || style = "text-align: center" | <tex>25.89 \pm 0.47</tex>
|}
=== StackGAN++ ===
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGAN++-1.png|thumb|alt=Архитектура StackGAN++|x350px|center|Рисунок 7.<ref name="StackGAN++"/> Архитектура StackGAN++.]]</div>
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров | гиперпараметров]]. В нескольких статьях утверждалось, что нестабильность частично связана с несвязными носителями распределения данных и подразумеваемого модельного распределения. Эта проблема становится более серьезной при При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), потому что вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является свертывание режима[[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|схлопывание мод распределения]] (англ. ''mode collapse''), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры.
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, предлагается термин регуляризации используется '''регуляризация согласованности цвета''' (англ. ''color-consistency regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.
{| class="wikitable"
<gallery mode="slideshow" caption="Рисунок 8. Пример результата работы StackGAN++.">
Файл:StackGAN++-2.png|Сравнение StackGAN++<ref name="StackGAN++"/>.Примеры результата работы для тестовых наборов [[Известные наборы данных#102 Category Flower|alt=Сгенерированные изображения цветовФайл:StackGAN++Oxford-3102]] (крайние левые четыре столбца) и [[Известные наборы данных#COCO|COCO]] (крайние правые четыре столбца).png|Сравнение StackGAN++<ref name="StackGAN++"/>.|alt=Сгенерированные изображения интерьерацветовФайл:StackGAN++-4.png|Сравнение StackGAN++Примеры результата работы для тестового набора [[Известные наборы данных#ImageNet|ImageNet]].<ref name="StackGAN++"/>.|alt=Сгенерированные изображения собак и кошек
</gallery>
|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''
|-
! Модель !! Inception Score<ref name="inception"/>
|-
| style = "text-align: right" | [[#StackGAN|StackGAN]] || style = "text-align: center" | <tex>8.45 \pm 0.03</tex>
<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.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div>
[[Вариационный автокодировщик| VAE]] имеет более стабильный выход чем GAN без [[Generative Adversarial Nets Generative_Adversarial_Nets_(GAN)#Улучшение обучения GANMode_Collapse|схлопывания мод распределения]] (англ. ''mode collapse''), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):
*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.
Полученные результаты проверки (рис.14) на 2 наборах данных ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] и [[Известные наборы данных#102 Category Flower|Oxford-102]]) эмпирически подтверждают эффективность предложенного метода.
<gallery mode="slideshow" caption="Рисунок 14. Сравнение CVAE&GAN, StackGan и GAN-INT-CLS.">
Файл:CVAE&GAN_example_flowers.png|Сравнение CVAE&GAN, [[#StackGAN|StackGAN]] и [[#GAN-INT-CLS|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|GAN-INT-CLS<ref name="scott"/>]]. <ref name="CVAE&GAN"/>|alt=Пример результата работы CVAE&GAN (birds)
</gallery>
=== MMVR ===
|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]] '''
|-
! Модель !! Inception Score<ref name="inception"/>
|-
| style = "text-align: right" | Plug and Play Generative Networks (PPGN)<ref name="PPGN" /> || style = "text-align: center" | <tex>6.71 \pm 0.45</tex>
|}MMVR (<tex>N_{c}</tex>) {{---}} модификация MMVR с несколькими текстовыми описаниями на изображение, где <tex>N_{c}</tex> {{---}} количество описаний.
=== FusedGAN MirrorGAN ===Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели разделяют процесс генерации на несколько этапов. Например, в модели [[#Attribute2Image|Attribute2Image]] раздельная генерации фона и переднего плана позволила получить контролируемую выборку (фиксируя фон и меняя основную сцену, и наоборот). В свою очередь модель FusedGAN<ref name="FusedGAN">[https://arxiv.org/abs/1801.05551 Navaneeth B., Gang H. {{---}} Semi-supervised FusedGAN for ConditionalImage Generation, 2018]</ref> может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В данной модели в отличие от [[#StackGAN|StackGAN]], где несколько этапов [[Generative Adversarial Nets (GAN)| GAN]] обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенным StackGAN.
|-
|-
| style = "text-align: right" | GAN-INT-CLS PPGN<ref name="scottPPGN"/> || style = "text-align: center"| <tex>-</tex> || style = "text-align: center" | <tex>29.88 58 \pm 0.0421</tex>
|-
| style = "text-align: right" | [[#StackGAN++AttnGAN |StackGAN-IAttnGAN]] || style = "text-align: center" | <tex>24.36 \pm 0.03</tex> || style = "text-align: center" | <tex>25.95 89 \pm 0.0247</tex>
|-
| style = "text-align: right" | FusedGAN MirrorGAN || style = "text-align: center" | <tex>34.00 56 \pm 0.0305</tex> || style = "text-align: center" | <tex>26.47 \pm 0.41</tex>
|}
Генерация изображения из заданного текстового описания преследует две главные цели: реалистичность и семантическое постоянство. Несмотря на то, что существует значительный прогресс в создании визуально реалистичных изображений высокого качества посредством [[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>. Данный фреймворк, который из текстового описания генерирует изображение, использует идею обучения с помощью переописания (англ. ''redescription'') и состоит из трёх модулей:
* Модуль встраивания семантического текста (англ. ''semantic text embedding module, <b>STEM</b>'').
# Состязательная потеря в реалистичности: <tex>\mathcal{L}_{G_i}^{VR} = -\frac{1}{2} \mathbb{E}_{I_i \sim p_{I_i}} [\log(D_i(I_i))]</tex>.
# Состязательная потеря в семантическом постоянстве: <tex>\mathcal{L}_{G_i}^{SC} = -\frac{1}{2} \mathbb{E}_{I_i \sim p_{I_i}} [\log(D_i(I_i, s))]</tex>.
Где <tex>I_i</tex> {{-- -}} сгенерированное на этапе <tex>i</tex> изображение, взятое из распределения <tex>p_{I_i}</tex>. Вдобавок, для эффективного использования двойного регулирования T2I и I2T, применим текстово-семантическую реконструированную функцию потерь, основанную на перекрёстной энтропии: <tex>\mathcal{L}_{stream} = -\displaystyle\sum_{t = 0}^{L - 1} \log(p_t(T_t))</tex>.
<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. Чтобы сконструировать многоэтапный каскадный генератор, все три сети генерации изображений (<b>STEM</b>, <b>GLAM</b> и <b>STREAM</b>) необходимо объединить. В качестве архитектуры STREAM будем использовать довольно распространенный фреймворк захвата создания текстового описания изображения(англ. ''image captioning framework''), базирующийся на кодировании и декодировании. Кодировщик изображений есть {{---}} это [[Сверточные нейронные сети | свёрточная нейронная сеть]], предварительно обученная на ImageNet<ref name="ImageNet">[http://www.image-net.org/ ImageNet image database ]</ref>, а декодировщик есть {{---}} это [[Рекуррентные нейронные сети | рекуррентная нейронная сеть]]. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместная оптимизация довольно нестабильна и с точки зрения занимаемого , занимает много места и времени очень дорогадолго работает. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.
Обучая <tex>G_i</tex>, градиенты из <tex>L_\mathcal{L}_{stream}</tex> [[Обратное распространение ошибки | обратно распространяются (англ. ''backpropagated'') ]] через STREAM в <tex>G_i</tex>, веса сетей которых остаются фиксированными. Финальная целевая функция генератора выглядит так:
<tex>\mathcal{L}_G = \displaystyle\sum_{i = 0}^{m - 1}{\mathcal{L}_{G_i}^{VR} + \mathcal{L}_{G_i}^{SC} + \lambda \mathcal{L}_{stream}}</tex>,
где <tex>\lambda</tex> {{---}} вес потери для обработки важности участия состязательной потери (англ. ''adversarial loss'') и потери текстово-семантической реконструкции (англ. ''text-semantic reconstruction loss''). Для наилучшего качества генерации можно поставить коэффициент <tex>\lambda = 20</tex>.
Показатель Inception Score<ref name="inception"/> был использован для измерения как объективности, так и разнообразия сгенерированных изображений. [https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#R-Precision 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'') позволяет создавать изображения по описанию с учётом объектной компоновки. Объектно-управляемый генератор изображений, создаёт изображения на основе двухэтапной генерации. Сначала создаётся макет по наиболее значимым словам в текстовом описании, после этого генерируется изображение с полученной компоновкой объектов. А для сопоставления синтезируемых объектов с текстовым описанием и сгенерированным макетом, предлагается<ref name="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|COCO]], увеличивая показатель Inception score<ref name="inception"/> на 11% и уменьшая показатель FID (Fréchet inception distance)<refname="FID">[https://en.wikipedia.org/wiki/Fréchet_inception_distance Fréchet inception distance, FID]</ref> на 27%.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Obj-GAN.png|thumb|alt=Архитектура Obj-GAN|x300px|thumb|center|Рисунок 23.<ref name="Obj-GAN"/> Архитектура Obj-GAN.]]</div>
|+ '''Inception score в тестовом наборе [[Известные наборы данных#COCO|COCO]]'''
|-
! Модель !! Inception Score <ref name="inception"/> !! FID <ref name="FID"/>
|-
| style = "text-align: right" | Obj-GAN (pred box & pred shp) || style = "text-align: center" | <tex>27.32 \pm 0.40</tex> || style = "text-align: center" | <tex>24.70</tex>
|}
Основная цель Obj-GAN {{---}} генерация качественных изображений с семантически значимым макетом и реалистическими реалистичными объектами. Obj-GAN состоит из пары генератора изображений с вниманием, управляемый объектами, и пообъектного дискриминатора (англ. ''object-wise discriminator''). Генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет (англ. ''semantic layout''), по которым создаёт изображение с помощью многоэтапного процесса coarse-to-fine, заключающегося в поэтапном улучшении качества результирующего изображения. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. ''bounding box''), фокусируясь на наиболее релевантных объекту словах.
Говоря более конкретно, он, с использованием управляемого объектами слоя внимания, оперирует метками класса, запрашивая слова в предложениях, чтобы сформировать вектор контекстов, и впоследствии синтезирует фрагмент изображения при условиях метки и вектора контекстов. Пообъектный дискриминатор проверяет каждую ограничивающую рамку, чтобы удостовериться в том, что сгенерированный объект действительно может быть сопоставлен с заранее сгенерированным макетом. Чтобы вычислить все потери при распознавании для всех заданных ограничивающих рамок одновременно и эффективно, дискриминатор базирован быстрой региональной представляет из себя быструю [[Сверточные нейронные сети|свёрточной нейронной сетьюсвёрточную нейронную сеть]] на основе регионов (англ. ''Fast Region-based Convolutional Neural Network, Fast R-CNN'') с двоичной [[Функция потерь и эмпирический риск | функцией потерь]] перекрёстной энтропии для каждой рамки.
Рассмотрим архитектуру Obj-GAN. Первым этапом, генеративная состязательная сеть принимает текстовое предложение и генерирует <b>семантический макет</b> {{---}} последовательность объектов специфицированных соответствующими ограничивающими рамками (наряду с метками классов) и фигурами. <b>Генератор рамок</b> (англ. ''box generator'') и <b>генератор фигур</b> (англ. ''shape generator'') работают соответствующим образом, сначала создавая последовательность ограничивающих рамок, а затем {{---}} фигуру для каждой. Поскольку большинству рамок сопоставлены слова из данного текстового предложения, модель [[Механизм_внимания#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D1.8F_.D0.B0.D1.80.D1.85.D0.B8.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.B0_Seq2seq | seq2seq ]] с вниманием охватывает это соответствие. Далее конструируется <tex>G_{shape}</tex>, базированный на двунаправленной [[Сверточные нейронные сети | свёрточной]] [[Долгая краткосрочная память|долгой краткосрочной памяти ]] (англ. ''bidirectional convolutional long short-term memory, [[Долгая краткосрочная память | LSTM]]''). Обучение <tex>G_{shape}</tex> основывается на фреймворке генеративной состязательной сети, в которой потеря восприятия используется для ограничения генерируемых фигур и стабилизирования обучения.
<gallery mode=packed heights=450px caption="Рисунок 24. Сравнение результатов Obj-GAN с другими генеративными состязательными сетями.">
=== LayoutVAE ===
Модели, используемые для генерации создания макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом.
'''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder (, LayoutVAE)'') {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генерации стохастических макетов сцен (англ. ''stochastic scene layouts'') {{---}} есть разносторонняя это программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с заданным набором меток, либо макеты меток для существующего изображения с новой заданной новой меткой. Вдобавок, она также способна обнаруживать необычные макеты, потенциально открывая пути к решению проблемы генерации макетов.
Касательно описанных проблем вышеописанной задачи предлагаются следующие решения:
* Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами.
* Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен.
<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>
В статье<ref name="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>.
Имея набор меток <tex>L</tex> и количество объектов в категории <tex>\left\{ n_m : m \in L \right\}</tex>, BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; <b>сначала все ограничивающие рамки предсказываются для заданной метки, а уже потом происходит переход к следующей метке.</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>
=== MCA-GAN ===
Преобразование изображений перекрестным видом (англ. ''cross-view image translation'') проблематично, поскольку оно оперирует изображениями со значительно отличающимися перспективами ракурсами и тяжёлыми деформациями. В статье<ref name="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'') рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с произвольных перпсективахракурсах, основывающийся на семантическом отображении (англ. ''semantic mapping''). Работа сети происходит в два этапа:# Изображение и целевое семантическое отображение (англ. ''target semantic map'') подаются на вход циклической семантически-управляемой генерационной генеративной сети (англ. ''cycled semantic-guided generation network'') для получения начальных результатов.
# Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. ''multi-channel attention selection mechanism'').
Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://www.crcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)]</ref> показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAD.png|thumb|leftcenter|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]</div> На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из каскадной семантически-управляемой генерацинной подсети, использующая изображения с одном представлении и условные семантические отображения в другом представлении в качестве входных данных и реконструирующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и глубокие характеристики объединяются и передаются в модуль мультиканального выделения внимания, направленный на получение более детализированного синтеза (англ. ''fine-grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для управления множественными потерями оптимизации (англ. ''optimization losses'').
На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из <b>каскадной семантически-управляемой генерацинной подсети</b>, использующая изображения в одном представлении и условные семантические отображения в другом представлении в качестве входных данных и преобразующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и отображения глубоких характеристик объединяются и подаются на вход в <b>модуль мультиканального выделения внимания</b>, направленный на получение более детализированного синтеза (англ. ''fine-grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для управления множественными потерями оптимизации (англ. ''optimization losses''). Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (англ. ''multichannel attention selection component'').
Поскольку между изначальной перспективой изначальным ракурсом и результирующей результирующим существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. ''single-scale feature'') вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга (англ. ''global average pooling'') на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. ''receptive fields'') для восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (англ. ''spatial and temporal selection''), чтобы синтезировать конечный детализированный результат.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</div>