Изменения

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

Генерация изображения по тексту

26 414 байт добавлено, 19:22, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{В разработке}}Автоматический синтез Автоматическое создание реалистичных высококачественных изображений из текстовых описаний был было бы интересен интересно и довольно полезенполезно, так как имеет множество практических применений., но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные '''генеративные состязательные сети''' (англ. [[Generative Adversarial Nets (GAN)|генеративные состязательные сети]] (англ. ''Generative Adversarial Nets, GANs]]'') начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. Мы рассмотрим глубокую архитектуру В данной статье рассмотрены формулировка и формулировку глубокая архитектура GAN, объединим а также объединены достижения в моделировании генерации изображений по тексту. == Обзор генеративных моделей ==Сообщество глубокого обучения быстро совершенствует генеративные модели. Среди них можно выделить три перспективных типа: [[PixelRNN и PixelCNN|авторегрессионные модели]] (англ. ''Autoregressive model, AR-model''), [[Вариационный автокодировщик|вариационные автокодировщики]] (англ. ''Variational Autoencoder, VAE'') и [[Generative Adversarial Nets (GAN)|генеративные состязательные сети]].На данный момент самые качественные изображения генерируют сети GAN (фотореалистичные и разнообразные, с убедительными деталями в высоком разрешении). Поэтому в данной статье мы сосредоточимся на моделях GAN. {| class="wikitable"|+ '''Сравнение моделей'''|-! rowspan=2 | Модель !! colspan=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= GAN "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<ref name="caltech">[http://www.vision.caltech.edu/visipedia/Birds 200 (CUB-200.html )|Caltech-UCSD Birds 200 dataset]</ref>], а для цветов {{---}} Oxford-102<ref name="oxford">[https://www.robots.ox.ac.uk/~vgg/data/flowers/[Известные наборы данных#102/ Category Flower|Oxford Flowers -102 dataset]</ref>]. Наряду с этим было собрано по пять текстовых описаний на изображение, которые были использованы в качестве параметров оценки.
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>
Как только модель научилась генерировать правдоподобные изображения(рис. 2), она должна также научиться согласовывать их с текстовым описанием , и было бы неплохо , если бы она научилась оценивать, соответствуют ли изображения
заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения.
<gallery mode="slideshow" packed heights=400px caption="Рисунок 2. Пример результата работы DCGANGAN-CLS, GAN-INT и GAN-INT-CLS.">Файл:DCGAN-2.png|Сгенерированные изображения птиц<ref name="DCGAN"/>.|alt=Сгенерированные изображения птицФайл:DCGAN-3.png|Сгенерированные изображения цветов<ref name="DCGAN"/>.|alt=Сгенерированные изображения цветов
</gallery>
=== Условная генерация изображений из визуальных атрибутов ===
[[Файл: Attribute2Image-2.png|400px|thumb|right|Пример результата работы Attribute2Image]]'''Условная генерация изображений из визуальных атрибутов''' (англ. ''Conditional Image Generation from Visual Attributes, Attribute2Image'') {{---}} это еще один способ создания изображений из визуальных атрибутов. Attribute2Image моделирует изображение как смесь переднего и заднего планов и разрабатывает многоуровневую генеративную модель с выделенными скрытыми переменными, которые можно изучать от начала до конца с помощью вариационного автокодировщика. Экспериментируя с естественными изображениями лиц и птиц Attribute2|Image демонстрирует, что способен генерировать реалистичные и разнообразные изображения с распутанными скрытыми представлениями. Модель использует общий алгоритм минимизации энергии для апостериорного вывода скрытых переменных с учетом новых изображений. Таким образом, изученные генеративные модели показывают отличные количественные и визуальные результаты в задачах реконструкции и завершения изображения, обусловленного атрибутами.
=== 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 с низким разрешением (рис. 5). Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять более мелкие детали в процессе уточнения (англ. ''refinement process''). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|CGAN]], вводится техника условно-когнитивной регуляции (англ. ''Conditioning Augmentation''), которая способствует плавности в обусловливающем многообразии. <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Attribute2ImageStackGAN-1.png|thumb|alt=Архитектура Attribute2ImageStackGAN|x350px|center|Рисунок 5.<ref name="StackGAN/> Архитектура Attribute2ImageStackGAN.]]</div> Вклад предлагаемого метода состоит в следующем:* Предлагается новая составная генеративная состязательная сеть для синтеза фотореалистичных изображений из текстовых описаний. Он разбивает сложную задачу генерации изображений с высоким разрешением на более мелкие подзадачи и значительно улучшает состояние дел. StackGAN впервые генерирует изображения с разрешением 256х256 пикселей с фотореалистичными деталями из текстовых описаний.* Предлагается техника Condition Augmentation для стабилизации обучения [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|CGAN]], а также для улучшения разнообразия генерируемых выборок.* Обширные качественные и количественные эксперименты демонстрируют эффективность дизайна модели в целом, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GAN. Генератор Stage-II проектируется как сеть кодировщик-декодировщик с остаточными блоками. Что касается дискриминатора, его структура аналогична структуре дискриминатора Stage-I только с дополнительными блоками понижающей дискретизации, поскольку на этом этапе размер изображения больше. {| class="wikitable"|+ '''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>|-| style = "text-align: right" | [[Известные наборы данных#102 Category Flower|Oxford-102]] || style = "text-align: center" | <tex>3.20 \pm 0.01</tex> |-| style = "text-align: right" | [[Известные наборы данных#COCO|COCO]]|| style = "text-align: center" | <tex>8.45 \pm 0.03</tex>|} Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS|GAN-INT-CLS]] и [[#GAN-INT-CLS|GAWWN]] (рис. 6). <gallery mode=packed heights=350px caption="Рисунок 6. Пример результата работы StackGAN.">Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птицФайл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов</gallery>
=== Составные генеративные состязательные сети FusedGAN ==='''Составные генеративные состязательные сети''' (англ. ''Stacked Generative Adversarial Networks, StackGAN'') {{---}} служат для Для улучшения генерации фотореалистичный изображений размера 256x256по описанию и получения контролируемой выборки, заданных текстовыми описаниями. В данной некоторые модели трудная задача разделяют процесс генерации изображения разлагается на более решаемые подзадачи с помощью процесса эскиз-уточнения (англнесколько этапов. ''sketch-refinement process''). Таким образомНапример, Stage-I GAN рисует примитивную форму в модели [[#Attribute2Image|Attribute2Image]] раздельная генерации фона и переднего плана позволила получить контролируемую выборку (фиксируя фон и цвета объекта на основе данного текстового описанияменяя основную сцену, получая изображения Stage-I с низким разрешением. Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять привлекательные детали в процессе уточнения (англ. ''refinement process''наоборот). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение CGANВ свою очередь модель FusedGAN<ref name="CGANFusedGAN">[https://arxiv.org/abs/14111801.1784 Mirza M05551 Navaneeth B. and Osindero S, Gang H. {{---}} Conditional Generative Adversarial Nets (CGAN) 2014Semi-supervised FusedGAN for ConditionalImage Generation, 2018]</ref> вводится техника условно-когнитивной регуляции может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В данной модели в отличие от [[#StackGAN|StackGAN]], где несколько этапов [[Generative Adversarial Nets (англ. ''Conditioning Augmentation''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 scores для сгенерированных изображений в тестовых наборах Caltech-UCSD<ref name="caltech"/>, Oxford-102<ref name="Oxford"/> и COCO<ref name="COCO" />'''
|-
! Набор данных Модель !! Inception Score<ref name="inception"/>
|-
| style = "text-align: right" | Caltech[[#GAN-UCSD INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>32.70 88 \pm 0.04</tex>
|-
| style = "text-align: right" | Oxford[[#StackGAN++|StackGAN-102 I]] || style = "text-align: center" | <tex>32.20 95 \pm 0.0102</tex>
|-
| style = "text-align: right" | COCO FusedGAN || style = "text-align: center" | <tex>83.45 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)]]. StackGAN впервые генерирует изображения Для создания нового набора данных с разрешением 256х256 пикселей диалогами, были объединены описания представленные в наборе данных [[Известные наборы данных#COCO|MS COCO]], с фотореалистичными деталями данными из текстовых описанийVisual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.* Предлагается техника Condition Augmentation для стабилизации обучения CGAN<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="CGANChatPainter"/>Архитектура 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, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GANна втором генерируется уже улучшенное изображение 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>.
<div class="oo*Рекурсивный кодировщик {{--ui-panelLayout}} генерирует Skip-scrollable" style="displayThought векторы (англ. ''Skip-Thought Vectors'')<ref>[https: block; vertical//arxiv.org/abs/1506.06726 Skip-align:middle; height: auto; width: auto;"Thought Vectors]</ref>для каждого сообщения в диалоге, а затем кодирует их двунаправленной [[Файл:StackGAN-1.pngРекуррентные нейронные сети|thumb|alt=Архитектура StackGAN|x350px|centerрекуррентной нейронной сетью]] c [[Долгая краткосрочная память|Архитектура StackGANLSTM]]</div>.
Генератор Stage-II проектируется как сеть кодировщик-декодировщик с остаточными блокамиЗатем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. Что касается дискриминатора''Conditioning Augmentation, его структура аналогична структуре дискриминатора Stage-I только с дополнительными блоками понижающей дискретизацииCA''). Модуль CA нужен для получения скрытых условных переменных, поскольку которые передаются на этом этапе размер изображения большевход генератору.Архитектура блоков (рис.15) upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN
Для проверки метода были проведены обширные количественные Результаты тестирования и качественные оценкисравнение модели ChatPainter с другими приведены в таблице. Сравниваются два современных метода синтеза текста в изображениеИз неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, GAN-INT-CLSимеет более высокий Inception score<ref name="scottinception"/>, в отличии от модели [[http://proceedings#StackGAN|StackGAN]].mlrКроме того, рекурсивная версия ChatPainter получилась лучше, чем нерекурсивная версия.press/v48/reed16.pdf Scott R. {{---}} Generative Adversarial Text to Image Synthesis]</ref> и GAWWN<ref name="scott"/>Вероятно, это связано с тем, что в нерекурсивной версии кодировщик не обучается на длинных предложениях сворачивая весь диалог в одну строку.
{| class="wikitable"|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''|-! Модель !! Inception Score <gallery moderef name="slideshowinception" caption/>|-| style ="Пример результата работы text-align: right" | [[#StackGAN|StackGAN]] || style = "text-align: center" | <tex>8.45 \pm 0.03</tex>Файл|-| style = "text-align:StackGANright" | ChatPainter (non-recurrent)|| style = "text-2align: center" | '''<tex>9.png43 \pm 0.04</tex>''' |-|altstyle =Сгенерированные изображения птицФайл"text-align:StackGANright" | '''ChatPainter (recurrent)'''|| style = "text-3align: center" | '''<tex>9.74 \pm 0.png02</tex>'''|-|altstyle =Сгенерированные изображения цветов"text-align: right" | [[#AttnGAN|AttnGAN]] || style = "text-align: center" | <tex>25.89 \pm 0.47</gallerytex>|} === Синтез реалистичных изображений с помощью составных генеративных состязательных сетей StackGAN++ ===Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. В Поэтому в данном разделе предлагаются составные генеративные состязательные сети, предназначенные для создания фотореалистичных изображений с высоким разрешением. Вово-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-v1 <ref name="StackGAN++">[https://arxiv.org/abs/1710.10916 Han Z., Tao X. {{---}} Realistic Image Synthesis with Stacked Generative Adversarial Networks, 2018]</ref> для синтеза текста в изображение. Stage-I по-прежнему рисует примитивную форму и цвета сцены на основе заданного текстового описания, что дает изображения с низким разрешением. Stage-II все также принимает результаты этапа I и текстовое описание в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Во-вторых, усовершенствованная многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 предлагается как для условных, так и для безусловных генеративных задач. StackGAN-v2 состоит из нескольких генераторов и нескольких дискриминаторов, организованных в древовидную структуру(рис. 7); изображения в нескольких масштабах, соответствующие одной и той же сцене, генерируются из разных ветвей дерева. 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|Рисунок 7.<ref name="StackGAN++"/> Архитектура StackGAN++.]]</div>
Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров| гиперпараметров]]. В нескольких статьях утверждалось, что нестабильность частично связана с несвязными носителями распределения данных и подразумеваемого модельного распределения. Эта проблема становится более серьезной при При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), потому что вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является свертывание режима[[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|схлопывание мод распределения]] (англ. ''mode collapse''), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры. Чтобы стабилизировать процесс обучения GAN и улучшить разнообразие выборок, несколько методов пытались решить проблемы, предлагая новые сетевые архитектуры, вводя эвристические приемы или изменяя цели обучения.
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, предлагается термин регуляризации используется '''регуляризация согласованности цвета''' (англ. ''color-consistency regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.
{| class="wikitable"
|+ '''Inception scores для сгенерированных изображений в тестовых наборах [[Известные наборы данных#Caltech-UCSD<ref name="caltech"/>Birds 200 (CUB)|Caltech-UCSD]], [[Известные наборы данных#102 Category Flower|Oxford-102<ref name="Oxford"/> ]] и [[Известные наборы данных#COCO<ref name="|MS COCO" />]]'''
|-
! Набор данных !! StackGAN-v1 !! StackGAN-v2
|-
| style = "text-align: right" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex> || <tex>4.04 \pm 0.05</tex>
|-
| style = "text-align: right" | [[Известные наборы данных#102 Category Flower| Oxford-102 ]] || style = "text-align: center" | <tex>3.20 \pm 0.01</tex> || <tex>3.26 \pm 0.01</tex>
|-
| style = "text-align: right" | [[Известные наборы данных#COCO |MS COCO]]|| style = "text-align: center" | <tex>8.45 \pm 0.03</tex> || <tex>8.30 \pm 0.10</tex>
|}
На основе этих генеративных моделей также изучалась условная генерация изображений. В большинстве методов используются простые условные переменные, такие как атрибуты или метки классов. Существуют также работы с изображениями для создания изображений, включая редактирование фотографий, перенос области и сверхвысокое разрешение. Однако методы сверхвысокого разрешения могут добавлять только ограниченное количество деталей к изображениям с низким разрешением и не могут исправить большие дефекты.
Введен термин регуляризации согласованности цвета, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображений(рис. 8).
<gallery mode="slideshow" caption="Рисунок 8. Пример результата работы StackGAN++.">Файл:StackGAN++-2.png|Примеры результата работы для тестовых наборов [[Известные наборы данных#102 Category Flower|Oxford-102]] (крайние левые четыре столбца) и [[Известные наборы данных#COCO|COCO]] (крайние правые четыре столбца).<ref name="StackGAN++"/>.|alt=Сгенерированные изображения цветовФайл:StackGAN++-34.png|Примеры результата работы для тестового набора [[Известные наборы данных#ImageNet|altImageNet]].<ref name=Сгенерированные изображения интерьераФайл:"StackGAN++-4"/>.png||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>) в изображение путем определения семантического макета. Вместо того, чтобы изучать прямое отображение текста в изображение, алгоритм разбивает процесс генерации на несколько шагов, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображений(рис. 9). Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точному, генерируя '''ограничивающие прямоугольники рамки''' (англ. ''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>-го объекта.* '''Генератор фигур''' (англ. ''Shape Generator'') берет набор ограничивающих рамок, созданных на предыдущем шаге, и предсказывает формы объектов внутри рамок. Результатом является набор двоичных масок <tex>M_1: T = \{M_1, ..., M_T\}</tex>, где каждая маска <tex>M_t</tex> определяет форму переднего плана <tex>t</tex>-го объекта.* '''Генератор изображений''' (англ. ''Image Generator'') принимает карту семантических меток <tex>M</tex>, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.
Модель не только генерирует семантически более значимые изображения, но также позволяет автоматически аннотировать генерируемые изображения. Созданные изображения и процесс генерации под управлением пользователя путем изменения сгенерированного макета сцены.
Возможности предложенной модели были продемонстрированы на сложном наборе данных [[Известные наборы данных#COCO|MS-COCO dataset<ref name="MSCOCO"/>]]. Оказывается, модель может существенно улучшить качество изображения, интерпретируемость вывода и семантическое выравнивание вводимого текста по сравнению с существующими подходами.
{| class="wikitable" style="float:right; margin-right: 10px;"|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS-COCO<ref name="MSCOCO" />]]'''
|-
! Модель !! 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" | Рассматриваемая модель || style = "text-align: center" | <tex>11.46 \pm 0.09</tex>
Создание изображения из общего предложения «люди, едущие на слонах, идущих по реке» требует множества рассуждений о различных визуальных концепциях, таких как категория объекта (люди и слоны), пространственные конфигурации объектов (верховая езда), контекст сцены (прогулка по реке) и т. д., что намного сложнее, чем создание одного большого объекта, как в более простых наборах данных. Существующие подходы не привели к успеху в создании разумных изображений для таких сложных текстовых описаний из-за сложности обучения прямому преобразованию текста в пиксель из обычных изображений.
Поэтому вместо того, чтобы изучать прямое отображение текста в изображение, был предложен альтернативный подход, который строит семантический макет как промежуточное представление между текстом и изображением. Семантический макет определяет структуру сцены на основе экземпляров объектов и предоставляет детальную информацию о сцене, такую ​​как количество объектов, категорию объекта, расположение, размер, форму. <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Semantic-1.png|thumb|alt=Архитектура|x350px|center|Архитектура]]</div> * '''Box Generator''' принимает в качестве входных данных вложения текста и генерирует грубую компоновку, композируя экземпляры объектов в изображении. Выходные данные генератора представляют собой набор ограничивающих прямоугольников <tex>B_1: T = \{B_1, ..., B_T\}</tex>, где каждый ограничивающий прямоугольник <tex>B_t</tex> определяет местоположение, размер и метку категории <tex>t</tex>-го объектавыдает довольно неплохой результат (рис.* '''Shape Generator''' берет набор ограничивающих прямоугольников, созданных на предыдущем шаге, и предсказывает формы объектов внутри прямоугольников. Результатом является набор двоичных масок <tex>M_1: T = \{M_1, ..., M_T\}</tex>, где каждая маска <tex>M_t</tex> определяет форму переднего плана <tex>t</tex>-го объекта.* '''Image Generator''' принимает карту семантических меток <tex>M</tex>, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию10).
<gallery mode="slideshow" caption="Рисунок 10. Пример результата работы.">Файл:Semantic-2.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 1Файл:Semantic-3.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 2
</gallery>
=== AttnGAN ===
Последние разработки исследователей в области автоматического создания изображений по текстовому описанию, основаны на [[Generative Adversarial Nets (GAN)|генеративных состязательных сетях (GANs)]].Общепринятый подход заключается в кодировании всего текстового описания в глобальное векторное пространство предложений (англ. ''global sentence vector''). Такой подход демонстрирует ряд впечатляющих результатов, но у него есть главные недостатки: отсутствие чёткой детализации на уровне слов и невозможность генерации изображений высокого разрешения. Эта проблема становится еще более серьезной при генерации сложных кадров, таких как в наборе данных [[Известные наборы данных#COCO<ref name="|COCO">[https://cocodataset.org COCO dataset (Common Objects in Context)]</ref>].
В качестве решения данной проблемы была предложена<refname="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; max-width: auto854;float: center">[[Файл:AttnGanNetwork.png|thumb|alt=Архитектура AttnGAN|x350px|center|Рисунок 11.<ref name="AttnGan"/> Архитектура AttnGAN.]]</div>
Модель состоит из нескольких взаимодействующих нейросетей(рис. 11):*Энкодер Кодировщики текста (англ. ''Text Encoder'') и изображения (англ. ''Image Encoder'') векторизуют исходное текстовое описания и реальные изображения. В данном случае текст рассматривается в виде последовательности отдельных слов, представление которых обрабатывается совместно с представлением изображения, что позволяет сопоставить отдельные слова отдельным частям изображения. Таким образом реализуется механизм внимания (англ. ''Deep Attentional Multimodal Similarity Model, DAMSM'').
*<math>F^{ca}</math> {{---}} создает сжатое представление об общей сцене на изображении, исходя из всего текстового описания. Значение <tex>C</tex> на выходе конкатенируется с вектором из нормального распределения <tex>Z</tex>, который задает вариативность сцены. Эта информация является основой для работы генератора.
*Attentional Generative Network {{---}} самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью сетей внимания <math>F^{attn}</math>, которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене.
Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей inception scoreInception Score<refname="inception">[https://arxiv.org/abs/1801.01973 A Note on the Inception Score]</ref> для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных [[Известные наборы данных#Caltech-UCSD<ref name="caltech"/> Birds 200 (CUB)|Caltech-UCSD]] и улучшен на целых 170,25% (с 9,58 до 25,89)<ref>[https://paperswithcode.com/sota/text-to-image-generation-on-coco Test results {{---}} Text-to-Image Generation on COCO]</ref> на более сложном наборе данных [[Известные наборы данных#COCO|COCO]].  <gallery mode=packed heights=300px caption="Рисунок 12. Пример результата работы AttnGAN.">Файл:Attngan_bird.png||alt=Сгенерированная красная птичкаФайл:Attngan_coco.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}</math> и <math>F_{2}^{attn}</math> соответственно<ref name="COCOAttnGan" />.|alt=Сгенерированная едаФайл:Attngan_fruit.png||alt=Сгенерированные фрукты</gallery>
<gallery mode="slideshow" caption="Пример результата работы AttnGAN">Файл:Attngan_bird.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}</math> и <math>F_{2}^{attn}</math> соответственно|alt=Сгенерированная красная птичкаФайл:Attngan_coco.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}</math> и <math>F_{2}^{attn}</math> соответственно|alt=Сгенерированная едаФайл:Attngan_fruit.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}</math> и <math>F_{2}^{attn}</math> соответственно|alt=Сгенерированные фрукты</gallery> === Stacking VAE and CVAE&GAN ===Большинство существующих методов генерации изображения по тексту нацелены на создание целостных изображений, которые не разделяют передний и задний план изображений, в результате чего объекты искажаются фоном. Более того, они обычно игнорируют взаимодополняемость различных видов генеративных моделей. Данное решение<refname="CVAE&GAN">[https://ieeexplore.ieee.org/document/8499439 Chenrui Z., Yuxin P. {{---}} Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018]</ref> предлагает контекстно-зависимый подход к генерации изображения, который разделяет фон и передний план. Для этого используется взаимодополняющая связка [[Вариационный автокодировщик| вариационного автокодировщика (англ. ''Variational Autoencoder, VAE'')]] и [[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.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div>
[[Вариационный автокодировщик| VAE]] считается имеет более устойчивым стабильный выход чем GANбез [[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|схлопывания мод распределения]] (англ. ''mode collapse''), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента(рис. 13):
*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.
*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения.
Полученные результаты проверки (рис.14) на 2 наборах данных ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD<ref name="caltech"/> ]] и [[Известные наборы данных#102 Category Flower|Oxford-102<ref name="oxford"/>]]) эмпирически подтверждают эффективность предложенного метода.<gallery mode="slideshow" caption="Рисунок 14. Сравнение CVAE&GAN, StackGan и GAN-INT-CLS .">Файл:CVAE&GAN_example_flowers.png||alt=Пример результата работы Сравнение CVAE&GAN (flowers)Файл:CVAE&GAN_example_bird.png, [[#StackGAN|Сверху вниз начиная со второй строки: CVAE&GAN, StackGAN, ]] и [[#GAN-INT-CLS|alt=Пример результата работы CVAE&GAN (birds)</gallery>   === ChatPainter ===В предыдущих и последующих моделях для создания изображений используются текстовые описания. Однако они могут быть недостаточно информативными, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных предлагается использовать диалоги, которые дополнительно описывают сцены. Это приводит к значительному улучшению inception score и качества генерируемых изображений в наборе данных MS COCO (Microsoft COCO dataset)<ref name="MSCOCO">[https://www.microsoft.com/en-us/research/wpINT-content/uploads/2014/09/LinECCV14coco.pdf Microsoft COCOCLS]]</ref>. Для создания нового набора данных с диалогами, были объединены описания представленные в наборе данных MS COCO<ref name="MSCOCOCVAE&GAN" />, с данными из Visual Dialog dataset |alt=Пример результата работы CVAE&GAN (VisDialflowers)<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;">[[Файл: ChatPainterCVAE&GAN_example_bird.png|thumb| alt=Архитектура ChatPainter|x350px|center| Архитектура ChatPainterСверху вниз начиная со второй строки: <ol style="list-style-type:lower-alpha"> <li>Этап 1: модель генерирует изображение 64×64CVAE&GAN, по описанию и диалогу. </li> <li>Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу </li></ol>]]</div> [[Файл:SurfBoard-questions.png#StackGAN|alt=Изображение, сгенерированное моделью ChatPainter для данного описания и диалога|thumb|x200px|right|Пример работы ChatPainterStackGAN]] Данная архитектура (см. рис) опирается на модель StackGAN. StackGAN генерирует изображение в два этапа: Stage-I генерирует грубое изображение 64×64, а Stage-II генерирует улучшенное изображение 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#GAN-thoughts SkipINT-Thought encoder]</ref>. *Рекурсивный энкодер {{CLS|GAN-INT--}} генерирует Skip-Thought векторы (англ. ''Skip-Thought Vectors'')<ref>[https://arxiv.org/abs/1506.06726 Skip-Thought VectorsCLS]</ref> для каждого сообщения в диалоге, а затем кодирует их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]] Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. ''Conditioning Augmentation, CA''). Модуль CA нужен для получения скрытых скрытые условных переменных, которые передаются на вход генератору.Архитектура блоков upsample, downsample и residual blocks сохраняется такой же, как и у исходного StackGAN Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception Score, в отличии от модели StackGAN. Кроме того, рекурсивнаяверсия ChatPainter получилась лучше, чем не рекурсивная версия. Вероятно, это связано с тем, что в не рекурсивной версии энкодер не обучается на длинных предложениях сворачивая весь диалог в одну строку. {| class="wikitable"|+ '''Inception scores для сгенерированных изображений в тестовом наборе MS COCO<ref name="MSCOCOCVAE&GAN" />'''|-! Модель !! Inception Score|-| style alt= "text-align: right" | StackGAN || style = "text-align: center" | <tex>8.45 \pm 0.03</tex>|-| style = "text-align: right" | ChatPainter Пример результата работы CVAE&GAN (non-recurrentbirds)|| 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 || style = "text-align: center" | <tex>25.89 \pm 0.47</texgallery>|}
=== MMVR ===
[[Файл:MMVR.png|thumb|right|x360px|alt=Архитектура MMVR|Рисунок 17.<ref name="MMVR"/> Архитектура MMVR.]]'''Модель мультимодальной векторной сети ''' (англ. ''Multi-Modal Vector Representation, MMVR''), впервые предложенная в статье<refname="MMVR">[https://arxiv.org/abs/1809.10274 Shagan S., Dheeraj P. {{---}} SEMANTICALLY INVARIANT TEXT-TO-IMAGE GENERATION, 2018]</ref>, способна создавать изображения по описанию и генерировать описание исходя из предоставленного изображения. Она включает несколько модификаций для улучшения генерации изображений и описаний, а именно: вводится [[Функция потерь и эмпирический риск|функция потерь]] на основе метрики N-грамм, которая обобщает описание относительно изображения; так же для генерации вместо одного используется несколько семантически сходных предложений, что так же улучшает создаваемые изображения.
Модель может быть разделена на два взаимозависимых модуля (смрис. рис17):
*Генератор изображений на основе [[Generative Adversarial Nets (GAN)| GAN]] с DeePSiM<ref>[https://arxiv.org/abs/1602.02644 DeePSiM. Alexey D. and Thomas B. {{---}} Generating Images with Perceptual Similarity Metrics based on Deep Networks, 2016]</ref>.
*Генератор описаний изображений на основе Long-term [[Рекуррентные нейронные сети|Recurrent]] Convolutional Networks (LRCNs)<ref>[https://arxiv.org/abs/1411.4389 Jeff D., Lisa A. H. {{---}} Long-term Recurrent Convolutional Networks for Visual Recognition and Description, 2015]</ref>.
Прямое распространение (англ. ''forward pass'') инициируется путем передачи случайного скрытого вектора (англ. ''latent vector'') <tex>h_{t}</tex> в генератор изображений (<tex>G</tex>), который генерирует изображение <tex>\hat{x}</tex>. Затем по сгенерированной картинке генератор описаний создаёт подпись. Для определения ошибки между сгенерированным описанием <tex>\hat{y}</tex> и исходным описанием <tex>y</tex> используется перекрестная энтропия на уровне слов. Она используется для итеративного обновления <tex>h_{t}</tex> (заодно и <tex>\hat{x}</tex>), оставляя при этом все остальные компоненты фиксированными. С каждой итерацией <tex>\hat{y}</tex> приближается к < tex>y</tex>, и сгенерированное изображение на каждом шаге <tex>\hat{x}</tex> является временным представлением конечного изображения. Для улучшения реалистичности изображения используется энкодер шумоподавленя кодировщик шумоподавления (англ. ''Denoising Autoencoder, DAE'')<ref name="PPGN">[https://arxiv.org/abs/1612.00005 Anh N., Jeff C. {{---}} Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space,2017]</ref> {{---}} в правило обновления добавляется ошибка восстановления изображения (англ. ''reconstruction error''), вычисляемая как разница между <tex>h_{t}</tex> и <tex>\hat{h_{t}}</tex>.[[файл:MMVR_example.png|thumb|left|x190px|Рисунок 18.<ref name="MMVR"/> Сравнение PPGN<ref name="PPGN" /> и MMVR.]]
Обучение начинается с генерации случайного 4096-мерного вектора <tex>h_{t}</tex>, который передаётся в модель для последующего итеративного обновления. Процесс завершается после 200 итераций, и полученное изображение считается репрезентативным для данного описания.
{| class="wikitable"
|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO<ref name="MSCOCO" />]] '''
|-
! Модель !! 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>
|-
| style = "text-align: right" | MMVR (<tex>N_{c}=5</tex>)|| style = "text-align: center" | <tex>8.30 \pm 0.78</tex>
|}MMVR (<tex>N_{c}</tex>) {{---}} модификация MMVR с несколькими текстовыми описаниями на изображение, где <tex>N_{c}</tex> {{- --}} количество описаний.
=== FusedGAN MirrorGAN ===Для улучшения генерации {| class="wikitable" style="float:right; margin-left: 10px;"|+ '''Inception scores для сгенерированных изображений по описанию и получения контролируемой выборки, некоторые модели используют разделение процесса генерации на несколько этапов, например, в модели Attribute2image<ref>тестовых наборах [[https://arxiv.org/abs/1512.00570 Xinchen Y. {{Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech--}} Conditional Image Generation from Visual Attributes, 2015UCSD]]</ref> разделение генерации переднего и заднего плана позволило получить контролируемую выборку [[Известные наборы данных#COCO|COCO]]'''|-! Модель !! Inception Score (сохраняя один из них фиксированным и варьируя другой). В свою очередь модель FusedGAN<ref>[https://arxiv.org/abs/1801.05551 Navaneeth B., Gang H. {{[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech--}} Semi-supervised FusedGAN for ConditionalImage Generation, 2018UCSD]]</ref> может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В отличие от StackGAN, где несколько этапов ) !! Inception Score ([[Generative Adversarial Nets (GAN)Известные наборы данных#COCO| GANCOCO]] обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенной StackGAN.)|-<div class| style ="ootext-uialign: right" | [[#GAN-INT-CLS|GAN-panelLayoutINT-scrollable" CLS]] || style="display: block; verticaltext-align:middle; height: auto; width: auto;center"| <tex>[[ Файл:FusedGAN2.88 \pm 0.png04</tex> |thumb| altstyle =Архитектура FusedGAN|x350px|"text-align: center" |Архитектура FusedGAN]]</divtex>Контролируемая выборка относится к процессу выборки изображений путем контролируемого изменения таких факторов, как поза, стиль, фон и другие детали7. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сохраняя одну и ту же позу88 \pm 0.07</tex>Основное преимущество данной модели состоит в том, что для обучения она может использовать полу|-размеченные данные. Это означает, что помимо размеченных данных для генерации изображений (изображение и его описание), модель может использовать изображения без текстового описания.Модель состоит из двух совмещённых шагов| style = "text-align: * На первом этапе с помощью right" | [[Generative Adversarial Nets (#GAN)-INT-CLS| GANGAWWN]] выполняется генерация изображений из случайного вектора шума, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге.* На втором этапе CGAN<ref>[https|| style = "text-align://arxiv.org/abs/1411.1784 Mirza M. and Osindero S. {{---}} Conditional Generative Adversarial Nets (CGAN) 2014]</ref> генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и данные полученные с первого шага. center" | <tex>М_{s}</tex> выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации3. Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле70 \pm 0. Поэтому вместо того, чтобы учиться с нуля, <tex>G_{c}04</tex> строится поверх || style = "text-align: center" | <tex>М_{s}-</tex>, добавляя к нему стили с помощью текстового описания.Следует отметить, что в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя чередующуюся оптимизацию.|-<div class| style ="ootext-ui-panelLayout-scrollablealign: right" | [[#StackGAN | StackGAN]] || style="display: block; verticaltext-align:middle; height: auto; width: auto;center"| <tex>[[ Файл:FusedGAN_ example3.62 \pm 0.png07</tex> |thumb| altstyle =Пример работы FusedGAN|x350px|"text-align: center" |Сравнение FusedGAN с другими моделями]]</divtex>Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе Caltech-UCSD8.45 \pm 0.03<ref name="caltech"/tex>. Данные сравнения приведены в таблице{| class="wikitable"
|-
! Модель !! 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>
|-
| 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 | AttnGAN]] || style = "text-I align: center" | <tex>4.36 \pm 0.03</tex> || style = "text-align: center" | <tex>225.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>
|}
=== 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>. Данный фреймворк эксплуатирует , который из текстового описания генерирует изображение, использует идею обучения text-to-image генерации с помощью переописания (англ. ''redescription'') и состоит из трёх модулей:* модуль Модуль встраивания семантического текста (англ. ''semantic text embedding module, <b>STEM</b>'');.* глобальноГлобально-локальный совместный модуль с вниманием для создания каскадных изображений (англ. ''global-local collaborative attentive module for cascaded image generation, <b>GLAM</b>'');.* модуль Модуль регенерации семантического текста и выравнивания (англ. ''semantic text regener-ation and alignment module, <b>STREAM</b>'').STEM создает встраивания на уровне слов и предложений, GLAM имеет каскадных каскадную архитектуру создания результирующих изображений от грубой шкалы грубых до детализированнойдетализированных, обращая внимания и эксплуатируя используя как внимание к локальным словам, так и к глобальным предложениям, чтобы прогрессивно совершенствовать семантическое постоянство и разнообразие у сгенерированных изображений, а STREAM стремится к регенерации восстановлению текстового описания исходя из созданного изображения, которое семантически выравнивается схоже с данным заданным описанием. Если изображение, сгенерированное с помощью T2I (text-to-image), семантически соответствует заданному описанию, его текстовое описание, созданное посредством I2T (image-to-text) должно семантически совпадать с заданным. Чтобы обучать модель сквозным методом, будем использовать две состязательные [[Функция потерь и эмпирический риск | функции потерь]]: # Состязательная потеря в реалистичности: <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>\mathcal{L}_{stream}</tex> [[Обратное распространение ошибки | обратно распространяются]] через 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"/> был использован для измерения как объективности, сгенерированное с помощью T2I так и разнообразия сгенерированных изображений. [https://en.wikipedia.org/wiki/Evaluation_measures_(textinformation_retrieval)#R-to-image) семантически консистентно с заданным описанием, его описание посредством I2T (imagePrecision R-toprecision] был использован для вычисления визуально-text) должно предоставлять аналогичную семантику с заданнымсемантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниями.
Чтобы обучать модель сквозным методом, будем использовать две состязательные потери<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, для максимального использования двойного регулирования T2I [[#AttnGAN|AttnGAN]] и I2T, применим текстово-семантическую реконструированную потерю основанную на перекрёстной энтропиидругих генеративных состязательных сетей.]]</div>
=== TextKD-GAN ===Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [Файлhttps:MirrorGAN//en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста.png[[Generative Adversarial Nets (GAN) |thumbГенеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение |left|x400px|Архитектура MirrorGANкомпьютерном зрении]], и в последнее время они также вызвали большой интерес со стороны сообщества 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> вводится метод, использующий дистилляцию знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)) для эффективного оперирования настройками сети.
MirrorGan TextKD-GAN представляет собой зеркальную структуру, объдиняя T2I и I2T. Она состоит из трех генераторов. Чтобы сконструировать многоэтапный каскадный генератор, нужно совместить все три сети себя решение для основного узкого места использования генеративных состязательных сетей для генерации изображений последовательно. В качестве архитектуры STREAM будем использовать широко используемый фреймворк захвата изображениятекста с <b>дистилляцией знаний</b> {{---}} методом, базирующийся на кодировании и декодированиипереносящим знания смягченного вывода модели (учителя) в меньшую модель (ученика). Кодировщик изображений есть [[Сверточные нейронные сети | свёрточная нейронная сеть]], предварительно обученная Решение основано на ImageNetавтокодировщике (учителе), а декодировщик есть [[Рекуррентные нейронные сети | рекуррентная нейронная сеть]]чтобы получить гладкое представление настоящего текста. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимостиЭто представление затем подается в дискриминатор TextKD-GAN вместо обычного one-hot представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления автокодировщика. TextKD-GAN, в то времяконечном итоге, будет превосходить обычный генератор текста на основе генеративных состязательных сетей, как их совместная оптимизация довольно нестабильна и с точки зрения занимаемого места и времени очень дорога. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGANкоторый не нуждается в предварительном обучении.
Обучая <texdiv class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">G_i[[Файл:TextKD-GAN_Model.png|thumb|center|x400px|Рисунок 27.<ref name="TextKD-GAN"/tex>, градиенты из <tex>L_{stream}Модель TextKD-GAN для генерации текста.]]</texdiv> обратно распространяются через STREAM в <tex>G_i</tex>, чьи сети остаются фиксированными.
<tex>\mathcal{L}_G = \displaystyle\sum_{i = 0}^{m В общепринятом текстовом распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One- 1}{\mathcal{L}_{G_i} + \lambda \mathcal{L}_{stream}}<hot one-hot] и [https:/tex>/en.wikipedia.org/wiki/Softmax_function softmax]). Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. На рисунке 27 проиллюстрирована модель, в которой используется стандартный автокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Как видно, вместо one-hot представления реальных слов смягченный преобразованный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо обычного one-hot представления.
Для наилучшего качества генерацииОбучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, поставим коэффициент необходимо раздробить целевую функцию на три члена:# Реконструирующий член для автокодировщика: <tex>\lambda 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) = 20\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>
Показатель Inception был использован для измерения как объективностиЭти функции потерь обучаются поочередно, так и разнообразия сгенерированных изображенийчтобы оптимизировать различные части модели. R-precision был использован для вычисления визуально-семантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниямиВ члене штрафа градиента необходимо посчитать норму градиента случайных выборок <tex>\hat{x} \sim P_{\hat{x}}</tex>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MirrorGANTextKD-GAN&Co.jpgpng|thumb|center|x600pxx500px|Сравнение MirrorGAN Рисунок 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>
=== Obj-GAN ===
[[Файл:Obj-GAN.png|thumb|alt=Архитектура Obj'''Объектно-GAN|x300px|thumb|right|Архитектура Obj-GAN]]Управляемая объектами управляемая [[Generative Adversarial Nets (GAN)| генеративно-генеративная состязательная сеть]] с вниманием ''' (англ. ''Object-Driven Attentive Generative Adversarial Network, Obj-GAN'') позволяет производить объектно-центрированный text-to-image-синтез сложных структурсоздавать изображения по описанию с учётом объектной компоновки. Объектно-управляемый генератор изображений, оперирующий двухэтапным layout-image процессом создаёт изображения на основе двухэтапной генерации, синтезирует выступающие объекты, обращая внимание на . Сначала создаётся макет по наиболее значимые слова значимым словам в текстовом описании , после этого генерируется изображение с полученной компоновкой объектов. А для сопоставления синтезируемых объектов с текстовым описанием и в заранее сгенерированном семантическом макетесгенерированным макетом, предлагается<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 (Common Objects in Context)]], увеличивая показатель Inception score<ref name="inception"/> на 11% и уменьшая показатель FID (Fréchet inception distance) <ref name="FID">[https://en.wikipedia.org/wiki/Fréchet_inception_distance Fréchet inception distance, FID]</ref> на 27%.
Основная цель Obj<div class="oo-ui-GAN {{panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Obj-}} генерация высококачественных сложных изображений с семантически значимым макетом и реалистическими объектамиGAN. png|thumb|alt=Архитектура Obj-GAN состоит из пары генератора изображений, управляемый объектами, с вниманием и пообъектовый дискриминатор, а также новый механизм внимания|x300px|thumb|center|Рисунок 23. Как было сказано ранее, генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет и синтезирует изображения с помощью многоэтапного процесса coarse<ref name="Obj-toGAN"/> Архитектура Obj-fine. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. ''bounding box''), фокусируясь на наиболее релевантных объекту словахGAN.]]</div>
Говоря более конкретно, он, с использованием управляемого объектами слоя внимания, оперирует метками класса, запрашивая слова {| class="wikitable" style="float:right; margin-left: 10px;"|+ '''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. ''Fast Region70</tex>|-| style = "text-align: right" | Obj-GAN (gt box & pred shp) || style = "text-align: center" | <tex>28.22 \pm 0.35</tex> || style = "text-align: center" | <tex>22.67</tex>|-| style = "text-based Convolutional Neural Network, Fast Ralign: right" | Obj-CNN''GAN (gt box & gt shp) с двоичной [[Функция потерь и эмпирический риск | функцией потерь]] перекрёстной энтропии для каждой рамки| style = "text-align: center" | <tex>31.01 \pm 0.27</tex>|| style = "text-align: center" | <tex>17.03</tex>|}
Основная цель Obj-GAN {{---}} генерация качественных изображений с семантически значимым макетом и реалистичными объектами. Obj-GAN состоит из пары генератора изображений с вниманием, управляемый объектами, и пообъектного дискриминатора (англ. ''object-wise discriminator''). Генератор изображений в качестве входных данных принимает текстовое описание и предварительно сгенерированный семантический макет (англ. ''semantic layout''), по которым создаёт изображение с помощью процесса, заключающегося в поэтапном улучшении качества результирующего изображения. На каждом этапе генератор синтезирует фрагмент изображений внутри ограничивающей рамки (англ. ''bounding box''), фокусируясь на наиболее релевантных объекту словах.
Рассмотрим архитектуру Obj-GAN. Первым этапомГоворя более конкретно, он, генеративная состязательная сеть принимает текстовое предложение и генерирует <b>семантический макет</b> {{---}} последовательность объектов специфицированных соответствующими ограничивающими рамками (наряду с использованием управляемого объектами слоя внимания, оперирует метками классов) класса, запрашивая слова в предложениях, чтобы сформировать вектор контекстов, и впоследствии синтезирует фрагмент изображения при условиях метки и фигурамивектора контекстов. <b>Генератор рамок</b> и <b>генератор фигур</b> работают соответствующим образомПообъектный дискриминатор проверяет каждую ограничивающую рамку, чтобы удостовериться в том, сначала создавая последовательность что сгенерированный объект действительно может быть сопоставлен с заранее сгенерированным макетом. Чтобы вычислить все потери при распознавании для всех заданных ограничивающих рамокодновременно и эффективно, а затем {{---}} фигуру для каждой. Поскольку большинству рамок сопоставлены слова дискриминатор представляет из данного текстового предложения, модель seq2seq с вниманием охватывает это соответствие. Далее конструируется <tex>G_{shape}</tex>, базированный на двунаправленной себя быструю [[Сверточные нейронные сети | свёрточной]] [[Долгая краткосрочная память|долгой краткосрочной памяти свёрточную нейронную сеть]] на основе регионов (англ. ''bidirectional convolutional long shortFast Region-term memorybased Convolutional Neural Network, Fast R-CNN'') с двоичной [[Долгая краткосрочная памятьФункция потерь и эмпирический риск |LSTMфункцией потерь]]''). Обучение <tex>G_{shape}</tex> основывается на фреймворке генеративной состязательной сети, в которой потеря восприятия используется перекрёстной энтропии для ограничения генерируемых фигур и стабилизирования обучениякаждой рамки.
 Рассмотрим архитектуру 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 classmode="center" modepacked heights="slideshow" 450px caption="Рисунок 24. Сравнение результатов Obj-GAN с другими генеративными состязательными сетями.">Файл:Obj-GAN_ex1.png|Сравнение Obj-GAN<ref name="Obj-GAN"/>Файл:Obj-GAN_ex2.png|
</gallery>
=== LayoutVAE ===
Модели, используемые для генерации создания макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом. Layout variational autoencoder (LayoutVAE) {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генераций стохастических макетов сцен {{---}} есть разносторонняя программная платформа моделирования, позволяющая генерировать полные макеты изображений с заданным набором меток или макеты меток для существующего изображения с заданной новой меткой. Вдобавок она также способна обнаруживать необычные макеты, потенциально открывающая пути к вычислению проблемы генерации макетов.
Будем рассматривать следующую проблему: генерация '''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder, LayoutVAE'') {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генерации стохастических макетов сцен (англ. ''stochastic scene layouts'') {{---}} это программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с описанием набора меток. Набор заданным набором меток, представленный как более слабое описание, всего лишь предоставляет множество либо макеты меток, присутствующих в данном изображении без дополнительного описания взаимосвязи, заставляя модель изучать пространственные и подсчитываемые отношения на основе визуальных данныхдля существующего изображения с новой заданной меткой.
Касательно описанных проблем предлагаются следующие решения:* модель стохастических генераций макетов Рассмотрим задачу генерации сцен с заданным множеством описанием набора меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами;* синтетический . Этот набор данныхвсего лишь предоставляет множество меток, MNIST-макетыприсутствующих в данном изображении (без дополнительного описания взаимосвязи), отражающую стохастическую природу генерации макета сцен;* экстремальная валидация моделей с использованием MNIST-макетов заставляя модель изучать пространственные и наборов подсчитываемые отношения (англ. ''spatial and count relationships'') на основе визуальных данных 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|Архитектура LayoutVAE]]<div>В статье<ref>[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>PNPMNIST-Net</b> {{---}} фреймворк вариационного автокодировщика для генерации изображения абстрактной сцены из текстовой программымакеты, полностью описывающей её (помимо того, что это {{---}} стохастическая модель для отражающие стохастическую природу генерации, она была протестирована на синтетических наборах данных макета сцен.* Экспериментальная валидация моделей с малым числом классов); <b>LayoutGAN</b> {{использованием MNIST---}} модель, основанная на макетов и наборов данных [[Generative Adversarial Nets (GAN) Известные наборы данных#COCO| генеративных состязательных сетяхCOCO]], генерирующая в которой содержатся сложные макеты графических элементов (прямоугольники, треугольники, и так далее); VAE-базированный фреймворк, кодирующий объект и информацию о макете о 3D-сцен в помещении в скрытом коде; и так далее..реального мира.
Обучение генеративных моделей нужно, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок, учитывая набор меток в качестве входных данных<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>В статье<texref name="LayoutVAE">i[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]</texref>-й ограничивающей рамки категории были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <texb>kPNP-Net</texb>. LayoutVAE естественным образом декомпозируется на модель для предсказания количества для каждой заданной метки {{---}} фреймворк вариационного автокодировщика для создания изображения из текстовой программы, которая полностью её описывает (помимо того, что это стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); <b>CountVAELayoutGAN</b> {{---}} модель, основанная на [[Generative Adversarial Nets (GAN) | генеративных состязательных сетях]], создающая макеты графических элементов (прямоугольники, треугольники, и другая для предсказания местоположения так далее); фреймворк, базирующийся на вариационном автокодировщике, который кодирует объект и размера каждого объекта {{информацию о макете 3D---}} <b>BBoxVAE</b>сцен в помещении в скрытом коде; и так далее...
Имея Обучение генеративных моделей необходимо, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок (англ. ''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>.
Имея набор меток <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>
=== TextKDMCA-GAN ===Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] Преобразование изображений перекрестным видом (англ. ''neurocross-linguistic programming, NLPview image translation'')проблематично, таких как поскольку оно оперирует изображениями со значительно отличающимися ракурсами и тяжёлыми деформациями. В статье<ref name="MCA-GAN">[https://en.wikipediaarxiv.org/wikipdf/Machine_translation машинный перевод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'') для получения начальных результатов.# Начальные результаты уточняются, и в последнее время GANs также вызвали большой интерес со стороны сообщества NLPиспользуя механизм мультиканального выделения внимания (англ. Однако достижение подобного успеха в NLP было бы более сложным из''multi-за дискретности текстаchannel attention selection mechanism''). В данной статьеОбширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://arxivwww.crcv.ucf.orgedu/projects/pdfego2top/1905index.01976.pdf {{---}} TextKD-GANphp Ego2Top: Text Generation using KnowledgeDistillation Matching Viewers in Egocentric and Generative Adversarial NetworksTop-view Videos (ECCV 2016)]</ref> вводится методпоказывают, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автоэнкодеры]] (англ. ''autoencodersчто данная модель способна генерировать значительно более качественные результаты, AEs'') могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному словудругие современные методы.
TextKD<div class="oo-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знанийui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: метод, переносящий знания смягченного вывода модели преподавателя в модель студентаMCA-GAD. Решение основано на AE (учителе), чтобы получить гладкое представление реального текстаpng|thumb|center|x300px|Рисунок 29. Это гладкое представление подается в дискриминатор TextKD<ref name="MCA-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD"/> Архитектура MCA-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовкеGAD.]]</div>
[[Файл:TextKDНа рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из <b>каскадной семантически-GAN_Modelуправляемой генерацинной подсети</b>, использующая изображения в одном представлении и условные семантические отображения в другом представлении в качестве входных данных и преобразующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации.png|thumb|right|x400px|Модель TextKDВторой этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и отображения глубоких характеристик объединяются и подаются на вход в <b>модуль мультиканального выделения внимания</b>, направленный на получение более детализированного синтеза (англ. ''fine-GAN grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для генерации текстауправления множественными потерями оптимизации (англ. ''optimization losses''). Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (англ. ''multichannel attention selection component'').]]
В общепринятом текстовом подходе к дискриминации реальные Поскольку между изначальным ракурсом и сгенерированные входные данные дискриминатора будут иметь разные типы результирующим существует объемная деформация объекта и/или сцены, одномасштабная характеристика ([https://en.wikipediaангл.org/wiki/One-hot one''single-hot] & [https://en.wikipedia.org/wiki/Softmax_function softmax]scale feature''), и он может обыкновенно отличить их друг от другавряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Один из способов избежать этой проблемы состоит в том, чтобы получить непрерывное гладкое представление слов, а не их one-hot представление, Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и обучить дискриминатор различать непрерывные представленияшага для выполнения глобального среднего пулинга (англ. Здесь используется общепринятый автоэнкодер (учитель''global average pooling''), чтобы заменить one-hot представление softmax-реконструированным выходом, который является гладким представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке справа. Как видноодних и тех же входных характеристиках, вместо one-hot представления реальных слов смягченный реконструированный выход автоэнкодера подается на вход дискриминаторутем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. Эта техника значительно усложняет различение ''receptive fields'') для самого дискриминаторавосприятия различных пространственных контекстов. Генератор GAN Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (студентангл. ''spatial and temporal selection'') с softmax выходом пытается имитировать распределение выходного сигнала автоэнкодера вместо общепринятого one-hot представления, чтобы синтезировать конечный детализированный результат.
Обучение модели происходит следующим образом<div class="oo-ui-panelLayout-scrollable" style="display: AE и TextKDblock; vertical-GAN обучаются одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три членаalign:# реконструирующий член для автоэнкодераmiddle; height: <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># функция потерь для дискриминатора с градиентным штрафомauto; width: <texauto;">\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}}} [(\Файл:MCA-GAN_Module.png|thumb|center| \nabla_{\hat{x}} f_w(\hat{x}) \x400px| _2 Рисунок 30.<ref name="MCA- 1)^2]<GAN"/tex># состязательная стоимость генератора: <tex>\min\limits_\theta L_{Gen}Архитектура модуля мультиканального выделения внимания (\theta) = англ. ''multi-\min\limits_\theta E_{z \sim P_z} [f_w(G(z)channel attention selection module'').]]</texdiv>
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_CrossviewImageTranslation.png|thumb|center|x500px|Рисунок 31. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <texref name="MCA-GAN"/>\hat{x} \sim P_{\hat{x}}Преобразование изображения перекрестным видом.]]</texdiv>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN&Co.png|thumb|center|x500px|Дивергенция Дженсена-Шеннона (англ. ''Jensen-Shannon divergence, JSD'') между сгенерированным и обучающимся предложениями (n-граммами) полученных из эксперимента SNLI (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка).]]</div>
 
=== MCA-GAN ===
== Области применения ==
*Создание контента и данных :**Картинки картинки для интернет-магазина;**Аватары аватары для игр;**Видеоклипывидеоклипы, сгенерированные автоматически, исходя из музыкального бита произведения;**Виртуальные виртуальные ведущие<ref>[https://dictor.mail.ru/ Виртуальный диктор]</ref>.*Благодаря работе Обучение систем на основе синтеза данных, возникающего в результате работы генеративных моделей возникает синтез данных, на которых потом могут обучаться другие системы:**Генерации генерация реалистичного видео городской среды<ref>[https://news.developer.nvidia.com/nvidia-invents-ai-interactive-graphics/ NVIDIA Interactive Graphics]</ref>.
== См. также ==
*[[Generative Adversarial Nets (GAN)|Порождающие состязательные сети (GAN)]]
*[https://arxiv.org/abs/1907.10719 Akash A.J., Thibaut D. {{---}} LayoutVAE: Stochastic Scene Layout Generation From a Label Set, 2019]
*[https://arxiv.org/abs/1905.01976 Md. Akmal H. and Mehdi R. {{---}} TextKD-GAN: Text Generation using Knowledge Distillation and Generative Adversarial Networks, 2019]
*[https://arxiv.org/abs/1909.07083 Bowen L., Xiaojuan Q. {{---}} MCA-GANControlGAN: Controllable Text-to-Image Generation Adversarial NetworkBased on , 2019]*[https://arxiv.org/abs/1909.07083 Has T., Dan X. {{---}} MCA-GAN: Multi-Channel AttentionSelection GAN with Cascaded Semantic Guidance for Cross-View Image Translation, 2019]
*[http://papers.nips.cc/paper/8375-learn-imagine-and-create-text-to-image-generation-from-prior-knowledge.pdf Tingting Q., Jing Z. {{---}} Learn, Imagine and Create: Text-to-Image Generation from Prior Knowledge, 2019]
*[https://habr.com/ru/post/409747/ Анатолий А. {{---}} Генерация изображений из текста с помощью AttnGAN, 2018]
[[Категория: Машинное обучение]]
[[Категория: Порождающие модели]]
1632
правки

Навигация