Изменения

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

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

34 904 байта добавлено, 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''<div classref name="ooStackGAN>[https://arxiv.org/abs/1612.03242 Han Z., Tao X. {{-ui-panelLayout-scrollable" style="display: block; vertical}} Text to Photo-align:middle; height: auto; width: auto;"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''). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение [[Файл:Attribute2Image-1.png|thumb|alt=Архитектура Attribute2Image|x350px|centerGenerative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|Архитектура Attribute2ImageCGAN]]</div>, вводится техника условно-когнитивной регуляции (англ. ''Conditioning Augmentation''), которая способствует плавности в обусловливающем многообразии.
<div class=== Составные генеративные состязательные сети ==='''Составные генеративные состязательные сети''' (англ. ''Stacked Generative Adversarial Networks, StackGAN'') {{"oo-ui-panelLayout-}} служат для генерации фотореалистичный изображений размера 256x256, заданных текстовыми описаниями, где трудная задача разлагается на более решаемые подзадачи с помощью процесса эскизscrollable" style="display: block; vertical-уточнения (англ. ''sketchalign:middle; height: auto; width: auto;">[[Файл:StackGAN-refinement process'')1. Таким образом, Stage-I GAN рисует примитивную форму и цвета объекта на основе данного текстового описания, получая изображения Stage-I с низким разрешениемpng|thumb|alt=Архитектура StackGAN|x350px|center|Рисунок 5. Stage-II GAN принимает результаты Stage-I и текстовые описания в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Он способен исправлять дефекты в результатах этапа I и добавлять привлекательные детали в процессе уточнения (англ. ''refinement process''). Чтобы улучшить разнообразие синтезированных изображений и стабилизировать обучение CGAN вводится техника условно-когнитивной регуляции (англ. ''Conditioning Augmentation''), которая способствует плавности в обусловливающем многообразии<ref name="StackGAN/> Архитектура StackGAN.]]</div>
Вклад предлагаемого метода состоит из трех частейв следующем:* Мы предлагаем новую составную генеративную состязательную Предлагается новая составная генеративная состязательная сеть для синтеза фотореалистичных изображений из текстовых описаний. Он разбивает сложную задачу генерации изображений с высоким разрешением на более решаемые мелкие подзадачи и значительно улучшает состояние дел. StackGAN впервые генерирует изображения с разрешением 256х256 пикселей с фотореалистичными деталями из текстовых описаний.* Предлагается техника Condition Augmentation для стабилизации обучения [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|CGAN]], а также для улучшения разнообразия генерируемых выборок.
* Обширные качественные и количественные эксперименты демонстрируют эффективность дизайна модели в целом, а также влияние отдельных компонентов, которые предоставляют полезную информацию для разработки будущих условных моделей GAN.
<div class="ooГенератор Stage-uiII проектируется как сеть кодировщик-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:StackGANдекодировщик с остаточными блоками. Что касается дискриминатора, его структура аналогична структуре дискриминатора Stage-1I только с дополнительными блоками понижающей дискретизации, поскольку на этом этапе размер изображения больше.png|thumb|alt=Архитектура StackGAN|x350px|center|Архитектура StackGAN]]</div>
Генератор Stage{| class="wikitable"|+ '''Inception scores для сгенерированных изображений в тестовых наборах [[Известные наборы данных#Caltech-II мы проектируем как сеть кодер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. Что касается дискриминатора, его структура аналогична структуре дискриминатора Stage01</tex> |-| style = "text-align: right" | [[Известные наборы данных#COCO|COCO]]|| style = "text-I только с дополнительными блоками понижающей дискретизации, поскольку на этом этапе размер изображения большеalign: center" | <tex>8.45 \pm 0.03</tex>|}
Для проверки метода были проведены обширные количественные и качественные оценки. Сравниваются два современных метода Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение, {{---}} [[#GAN-INT-CLS<ref name="scott">[http://proceedings.mlr.press/v48/reed16.pdf Scott R. {{|GAN-INT--}} Generative Adversarial Text to Image SynthesisCLS]]</ref> и [[#GAN-INT-CLS|GAWWN<ref name="scott"/>]] (рис. 6).
<gallery mode="slideshow" packed heights=350px caption="Рисунок 6. Пример результата работы StackGAN.">Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птицФайл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов
</gallery>
=== Реалистичный синтез изображений с помощью составных генеративных состязательных сетей ===
Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. В данном разделе предлагаются составные генеративные состязательные сети, предназначенные для создания фотореалистичных изображений с высоким разрешением. Во-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-v1 для синтеза текста в изображение. Stage-I по-прежнему рисует примитивную форму и цвета сцены на основе заданного текстового описания, что дает изображения с низким разрешением. Stage-II все также принимает результаты этапа I и текстовое описание в качестве входных данных и генерирует изображения высокого разрешения с фотореалистичными деталями. Во-вторых, усовершенствованная многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 предлагается как для условных, так и для безусловных генеративных задач. StackGAN-v2 состоит из нескольких генераторов и нескольких дискриминаторов, организованных в древовидную структуру; изображения в нескольких масштабах, соответствующие одной и той же сцене, генерируются из разных ветвей дерева. StackGAN-v2 демонстрирует более стабильное поведение при обучении, чем StackGAN-v1, за счет совместной аппроксимации нескольких распределений.
Несмотря === FusedGAN ===Для улучшения генерации изображений по описанию и получения контролируемой выборки, некоторые модели разделяют процесс генерации на успехнесколько этапов. Например, в модели [[#Attribute2Image|Attribute2Image]] раздельная генерации фона и переднего плана позволила получить контролируемую выборку (фиксируя фон и меняя основную сцену, и наоборот). В свою очередь модель FusedGAN<ref name="FusedGAN">[https://arxiv.org/abs/1801.05551 Navaneeth B., Gang H. {{---}} Semi-supervised FusedGAN for ConditionalImage Generation, 2018]</ref> может выполнять контролируемую выборку различных изображений с очень высокой точностью, что так же достигается путём разбиения процесса генерации изображений на этапы. В данной модели в отличие от [[#StackGAN|StackGAN]], где несколько этапов [[Generative Adversarial Nets (GAN)| GAN]] обучаются отдельно с полным контролем помеченных промежуточных изображений, FusedGAN имеет одноступенчатый конвейер со встроенным StackGAN. <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:FusedGAN.png|thumb|alt=Архитектура FusedGAN|x350px|center|Рисунок 19.<ref name="FusedGAN"/> Архитектура FusedGAN]]</div>Контролируемая выборка относится к процессу выборки изображений путем изменения таких факторов как известностиль, фон и другие детали. Например, можно генерировать разные изображения, оставляя постоянным фон, или генерировать изображения в различных стилях, сложно обучитьсохраняя остальной контекст неизменным. Тренировочный процесс обычно нестабилен и чувствителен к выбору гиперпараметровОсновное преимущество данной модели состоит в том, что для обучения она может использовать полу-размеченные данные. В нескольких статьях утверждалосьЭто означает, что нестабильность частично связана помимо размеченных данных (изображение и его описание) для генерации изображений, модель может использовать изображения без текстового описания.Модель состоит из двух взаимосвязанных этапов (рис. 19): * На первом этапе с несвязными носителями распределения помощью [[Generative Adversarial Nets (GAN)| GAN]] выполняется генерация изображений из случайного вектора, а также создаются признаки для стиля, в котором будет оформлено сгенерированное изображение на втором шаге.* На втором этапе [[Generative Adversarial Nets (GAN)#CGAN (Conditional Generative Adversarial Nets)|CGAN]] генерирует окончательное изображение (то есть изображение, соответствующее описанию и стилю заданному на первом шаге), используя в качестве входных данных текстовое описание и подразумеваемого модельного распределенияданные полученные с первого шага. <tex>М_{s}</tex> выступает в роли шаблона подавая дополнительные признаки на второй шаг генерации. Эта проблема становится более серьезной при обучении GAN генерировать Вследствие чего изображения сгенерированных птиц не только соответствуют описанию, но также сохраняют информацию о стиле. Поэтому вместо того, чтобы учиться с высоким разрешением (напримернуля, <tex>G_{c}</tex> строится поверх <tex>М_{s}</tex>, 256x256)добавляя к нему стили с помощью текстового описания.Следует отметить, потому что вероятность очень мала в модели отсутствует явная иерархия, поэтому оба этапа могут обучаться одновременно, используя альтернативный метод оптимизации.<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[ Файл:FusedGAN_ example.png|thumb| alt=Пример работы FusedGAN|x350px|center|Рисунок 20.<ref name="FusedGAN"/> Сравнение FusedGAN с другими моделями]]</div>Для оценки качества генерируемых изображений с помощью FusedGAN, были отобраны 30 тысяч изображений и посчитано inception scores, используя предварительно обученную модель на тестовом наборе [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]. Данные сравнения приведены в таблице.{| class="wikitable"|-! Модель !! Inception Score <ref name="inception"/>|-| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>2.88 \pm 0.04</tex>|-| style = "text-align: right" | [[#StackGAN++|StackGAN-I]] || style = "text-align: center" | <tex>2.95 \pm 0.02</tex> |-| style = "text-align: right" | FusedGAN || style = "text-align: center" | <tex>3.00 \pm 0.03</tex>|} === ChatPainter ===В предыдущих и последующих моделях для распределения создания изображенийиспользуются текстовые описания. Однако они могут быть недостаточно информативными, а распределение чтобы охватить все представленные изображения, и модели будет недостаточно данных для совместного использования поддерживает того чтобы сопоставить объекты на изображениях со словами в описании. Поэтому в качестве дополнительных данных в модели ChatPainter предлагается<ref name="ChatPainter">[https://arxiv.org/abs/1802.08216 Shikhar S., Dendi S. {{---}} ChatPainter: Improving Text to Image Generation using Dialogue, 2018]</ref> использовать диалоги, которые дополнительно описывают сцены (пример рис. 16). Это приводит к значительному улучшению Inception score<ref name="inception"/> и качества генерируемых изображений в многомерном пространственаборе данных [[Известные наборы данных#COCO|MS COCO (Microsoft COCO dataset)]]. Более тогоДля создания нового набора данных с диалогами, обычным явлением сбоя при обучении GAN является свертывание режимабыли объединены описания представленные в наборе данных [[Известные наборы данных#COCO|MS COCO]], когда многие с данными из сгенерированных выборок содержат одинаковый цвет или узор текстурыVisual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: ChatPainter.png|thumb| alt=Архитектура ChatPainter|x350px|center|Рисунок 15. Чтобы стабилизировать процесс обучения GAN <ref name="ChatPainter"/> Архитектура ChatPainter: <ol style="list-style-type:lower-alpha"> <li>Этап 1: модель генерирует изображение 64×64, по описанию и улучшить разнообразие выборокдиалогу. </li> <li>Этап 2: модель генерирует изображение размером 256×256, несколько методов пытались решить проблемына основе изображения сгенерированного на 1 этапе, предлагая новые сетевые архитектурыа также описанию и диалогу </li></ol>]]</div> [[Файл:SurfBoard-questions.png|alt=Изображение, вводя эвристические приемы или изменяя цели обучениясгенерированное моделью ChatPainter для данного описания и диалога|thumb|x200px|right|Рисунок 16.<ref name="ChatPainter"/> Пример работы ChatPainter.]]
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая Данная архитектура (рис. 15) опирается на модель [[#StackGAN|StackGAN-v2 как для условных, так и для безусловных генеративных задач]]. StackGAN-v2 имеет несколько генераторов, которые разделяют большинство своих параметров генерирует изображение в древовидной структуре. входные данные сети можно рассматривать как корень деревадва этапа: на первом этапе генерируется грубое изображение 64×64, а многомасштабные изображения генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви - создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, предлагается термин регуляризации согласованности цвета, чтобы генераторы могли генерировать более согласованные образцы для разных масштабоввтором генерируется уже улучшенное изображение 256×256.
Формирование вектора текстовых описаний <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;"tex>\phi_{t}</tex> происходит путем кодирования подписей с помощью предварительно обученного кодировщика<ref>[[Файлhttps:StackGAN++//github.com/reedscot/icml2016 Pre-1trained encoder for ICML 2016 paper]</ref>.png|thumb|alt=Архитектура StackGAN++|x350px|center|Архитектура StackGAN++]]Для генерации диалоговых вложений <tex>\zeta_{d}</divtex>используется два метода:
На основе этих генеративных моделей также изучалась условная генерация изображений. В большинстве методов используются простые условные переменные, такие как атрибуты или метки классов. Существуют также работы *Нерекурсивный кодировщик {{---}} сжимает весь диалог в одну строку и кодирует его с изображениями для создания изображений, включая редактирование фотографий, перенос домена и сверхвысокое разрешениепомощью предварительно обученного кодировщика Skip-Thought<ref>[https://github. Однако методы сверхвысокого разрешения могут добавлять только ограниченное количество деталей к изображениям с низким разрешением и не могут исправить большие дефектыcom/ryankiros/skip-thoughts Skip-Thought encoder]</ref>.
Введен термин регуляризации согласованности цвета*Рекурсивный кодировщик {{---}} генерирует Skip-Thought векторы (англ. ''Skip-Thought Vectors'')<ref>[https://arxiv.org/abs/1506.06726 Skip-Thought Vectors]</ref> для каждого сообщения в диалоге, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображенийа затем кодирует их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]].
<gallery mode="slideshow" caption="Пример результата работы DCGAN">Файл:StackGAN++-2Затем выходы описаний и диалогов объединяются и передаются в качестве входных данных в модуль аугментации данных (англ. ''Conditioning Augmentation, CA'').png||alt=Сгенерированные изображения цветовФайл:StackGAN++-3Модуль CA нужен для получения скрытых условных переменных, которые передаются на вход генератору.png||alt=Сгенерированные изображения интерьераФайл:StackGAN++-4Архитектура блоков (рис.png||alt=Сгенерированные изображения собак 15) upsample, downsample и кошек</gallery> residual blocks сохраняется такой же, как и у исходного StackGAN
=== Вывод семантического макета для иерархического преобразования текста Результаты тестирования и сравнение модели ChatPainter с другими приведены в изображение ===В данном разделе предлагается новый иерархический подход к синтезу текста в изображение путем определения семантического макетатаблице. Вместо тогоИз неё видно, что модель ChatPainter, чтобы изучать прямое отображение текста в изображениекоторая получает дополнительную диалоговую информацию, алгоритм разбивает процесс генерации на несколько шаговимеет более высокий Inception score<ref name="inception"/>, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображенийотличии от модели [[#StackGAN|StackGAN]]. Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точномуКроме того, генерируя ограничивающие прямоугольники объекта и уточняя каждый прямоугольникрекурсивная версия ChatPainter получилась лучше, оценивая формы объектов внутри негочем нерекурсивная версия. Генератор изображений синтезирует изображениеВероятно, обусловленное предполагаемым семантическим макетомэто связано с тем, что обеспечивает полезную семантическую структуру изображения, совпадающего с текстовым описаниемв нерекурсивной версии кодировщик не обучается на длинных предложениях сворачивая весь диалог в одну строку.
{| class="wikitable"|+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''|-! Модель не только генерирует семантически более значимые изображения, но также позволяет автоматически аннотировать генерируемые изображения!! Inception Score <ref name="inception"/>|-| style = "text-align: right" | [[#StackGAN|StackGAN]] || style = "text-align: center" | <tex>8. Созданные изображения и процесс генерации под управлением пользователя путем изменения сгенерированного макета сцены45 \pm 0.03</tex>|-| style = "text-align: right" | ChatPainter (non-recurrent)|| style = "text-align: center" | '''<tex>9.43 \pm 0.04</tex>''' |-| style = "text-align: right" | '''ChatPainter (recurrent)'''|| style = "text-align: center" | '''<tex>9.74 \pm 0.02</tex>'''|-| style = "text-align: right" | [[#AttnGAN|AttnGAN]] || style = "text-align: center" | <tex>25.89 \pm 0.47</tex>|}
Возможности предложенной модели были продемонстрированы на сложном наборе данных MS=== StackGAN++ ===Хотя генерирующие состязательные сети (GAN) показали замечательный успех в различных задачах, они все еще сталкиваются с проблемами при создании изображений высокого качества. Поэтому в данном разделе, во-первых, предлагается двухэтапная генеративная состязательная сетевая архитектура StackGAN-COCO datasetv1<ref name="COCOStackGAN++">[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''), формукогда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры.
<div class="ooПредлагается продвинутая многоэтапная генеративно-uiсостязательная сетевая архитектура StackGAN-panelLayoutv2 как для условных, так и для безусловных генеративных задач. StackGAN-scrollable" style="display: block; verticalv2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{-align:middle; height: auto; width: auto;">[[Файл:Semantic-1-}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется '''регуляризация согласованности цвета''' (англ. ''color-consistency regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов.png|thumb|alt=Архитектура|x350px|center|Архитектура]]</div>
* {| class="wikitable"|+ '''Box GeneratorInception scores для сгенерированных изображений в тестовых наборах [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]], [[Известные наборы данных#102 Category Flower|Oxford-102]] и [[Известные наборы данных#COCO|MS COCO]]''' принимает в качестве входных |-! Набор данных !! StackGAN-v1 !! StackGAN-v2|-| style = "text-align: right" | [[Известные наборы данных вложения текста и генерирует грубую компоновку, составляя экземпляры объектов в изображении. Выходные данные генератора прямоугольников представляют собой набор ограничивающих прямоугольников #Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] || style = "text-align: center" | <tex>B_1: T = 3.70 \{B_1, ..pm 0., B_T\}04</tex>, где каждый ограничивающий прямоугольник || <tex>B_t4.04 \pm 0.05</tex> определяет местоположение, размер и метку категории |-| style = "text-align: right" | [[Известные наборы данных#102 Category Flower|Oxford-102]] || style = "text-align: center" | <tex>t3.20 \pm 0.01</tex>-го объекта.* '''Shape Generator''' берет набор ограничивающих рамок, созданных из генератора прямоугольников, и предсказывает формы объектов внутри прямоугольников. Результатом является набор двоичных масок || <tex>M_1: T = 3.26 \{M_1, ..pm 0., M_T\}01</tex>, где каждая маска |-| style = "text-align: right" | [[Известные наборы данных#COCO|MS COCO]]|| style = "text-align: center" | <tex>M_t8.45 \pm 0.03</tex> определяет форму переднего плана || <tex>t8.30 \pm 0.10</tex>-го объекта.* '''Image generator''' принимает карту семантической метки, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.|}
На основе этих генеративных моделей также изучалась условная генерация изображений. В большинстве методов используются простые условные переменные, такие как атрибуты или метки классов. Существуют также работы с изображениями для создания изображений, включая редактирование фотографий, перенос области и сверхвысокое разрешение. Однако методы сверхвысокого разрешения могут добавлять только ограниченное количество деталей к изображениям с низким разрешением и не могут исправить большие дефекты. Введен термин регуляризации согласованности цвета, чтобы образцы, сгенерированные с одного и того же входа на разных генераторах, были более согласованными по цвету и, таким образом, улучшили качество сгенерированных изображений (рис. 8). <gallery mode="slideshow" caption="Рисунок 8. Пример результата работыStackGAN++.">Файл:SemanticStackGAN++-2.png|Примеры результата работы для тестовых наборов [[Известные наборы данных#102 Category Flower|Oxford-102]] (крайние левые четыре столбца) и [[Известные наборы данных#COCO|COCO]] (крайние правые четыре столбца).<ref name="StackGAN++"/>.|alt=Сгенерированные изображения, 1цветовФайл:SemanticStackGAN++-34.png|Примеры результата работы для тестового набора [[Известные наборы данных#ImageNet|ImageNet]].<ref name="StackGAN++"/>.|alt=Сгенерированные изображения, 2собак и кошек
</gallery>
=== AttnGAN HTIS ===Последние разработки исследователей в области автоматического создания изображений по текстовому описанию, основаны на [[Generative Adversarial Nets (GAN)|генеративных состязательных сетях (GANs)]].Общепринятый В данном разделе предлагается новый '''иерархический подход заключается в кодировании всего текстового описания в глобальное векторное пространство предложений к синтезу текста''' (англ. ''global sentence vectorHierarchical Text-to-Image Synthesis, HTIS''). Такой подход демонстрирует ряд впечатляющих результатов, но у него есть главные недостатки: отсутствие чёткой детализации на уровне слов и невозможность генерации изображений высокого разрешения. Эта проблема становится еще более серьезной при генерации сложных кадров, таких как в наборе данных COCO<ref name="COCOHTIS">[https://cocodatasetarxiv.org COCO dataset (Common Objects in Context)/abs/1801.05091 Seunghoon H., Dingdong Y. {{---}} Inferring Semantic Layout for Hierarchical Text-to-Image Synthesis, 2018]</ref>) в изображение путем определения семантического макета. Вместо того, чтобы изучать прямое отображение текста в изображение, алгоритм разбивает процесс генерации на несколько шагов, на которых он сначала создает семантический макет из текста с помощью генератора макета и преобразует макет в изображение с помощью генератора изображений (рис. 9). Предлагаемый генератор компоновки постепенно создает семантическую компоновку от грубого к точному, генерируя '''ограничивающие рамки''' (англ. ''bounding box'') объекта и уточняя каждую рамку, оценивая формы объектов внутри нее. Генератор изображений синтезирует изображение, обусловленное предполагаемым семантическим макетом, что обеспечивает полезную семантическую структуру изображения, совпадающего с текстовым описанием.
В качестве решения данной проблемы была предложена<refdiv class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[https[Файл://openaccessSemantic-1.thecvfpng|thumb|alt=Архитектура|x350px|center|Рисунок 9.com<ref name="HTIS"/content_cvpr_2018/papers/Xu_AttnGAN_Fine-Grained_Text_CVPR_2018_paper> Архитектура HTIS.pdf Tao X., Pengchuan Z. {{---}} AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, 2018]] </refdiv> новая [[Generative Adversarial Nets (GAN)|генеративно-состязательная нейросеть]] с вниманием (англ. ''Attentional Generative Adversarial Network, AttnGAN''), которая относится к вниманию как к фактору обучения, что позволяет выделять слова для генерации фрагментов изображения.
* '''Генератор рамок''' (англ. ''Box Generator'') принимает в качестве входных данных вложения текста и генерирует грубую компоновку, комбинируя экземпляры объектов в изображении. Выходные данные генератора представляют собой набор ограничивающих рамок <div classtex>B_1: T ="oo\{B_1, ..., B_T\}</tex>, где каждая ограничивающая рамка <tex>B_t</tex> определяет местоположение, размер и метку категории <tex>t</tex>-ui-panelLayout-scrollable" styleго объекта.* '''Генератор фигур''' (англ. ''Shape Generator'') берет набор ограничивающих рамок, созданных на предыдущем шаге, и предсказывает формы объектов внутри рамок. Результатом является набор двоичных масок <tex>M_1: T ="display: block; vertical\{M_1, ..., M_T\}</tex>, где каждая маска <tex>M_t</tex> определяет форму переднего плана <tex>t</tex>-align:middle; height: auto; width: auto;"го объекта.* '''Генератор изображений''' (англ. ''Image Generator'') принимает карту семантических меток <tex>[[Файл:AttnGanNetwork.png|thumb|alt=Архитектура AttnGAN|x350px|center|Архитектура AttnGAN]]M</divtex>, полученную путем агрегирования масок по экземплярам, и текстовое описание в качестве входных данных, и генерирует изображение, переводя семантический макет в пиксели, соответствующие текстовому описанию.
Модель состоит из нескольких взаимодействующих нейросетей:*Энкодер текста (англ. ''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 score<ref>[https://arxiv.org/abs/1801.01973 A Note on the Inception Score]</ref> для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) Возможности предложенной модели были продемонстрированы на сложном наборе данных Caltech-UCSD<ref name="caltech"/> и улучшен на целых 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<ref name="|MS COCO" />]]. Оказывается, модель может существенно улучшить качество изображения, интерпретируемость вывода и семантическое выравнивание вводимого текста по сравнению с существующими подходами.
<gallery mode{| class="slideshowwikitable" captionstyle="Пример результата работы AttnGANfloat:right; margin-right: 10px;">Файл:Attngan_bird.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}+ '''Inception scores для сгенерированных изображений в тестовом наборе [[Известные наборы данных#COCO|MS COCO]]'''|-! Модель !! Inception Score <ref name="inception"/math> и <math>F_{2}^{attn}</math> соответственно|-|altstyle =Сгенерированная красная птичкаФайл"text-align:Attngan_coco.pngright" | [[#StackGAN|StackGAN]] |Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{attn}</math> и <math>F_{2}^{attn}</math> соответственно|altstyle =Сгенерированная едаФайл"text-align:Attngan_fruit.pngcenter" |Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <mathtex>F_{1}^{attn}8.45 \pm 0.03</mathtex> и <math>F_{2}^{attn}</math> соответственно|alt=Сгенерированные фрукты</gallery> -| style ="text-align: right" | Рассматриваемая модель || style == Stacking VAE and GAN ===Большинство существующих методов генерации изображения по тексту нацелены на создание целостных изображений, которые не разделяют передний и задний план изображений, в результате чего объекты искажаются фоном. Более того, они обычно игнорируют взаимодополняемость различных видов генеративных моделей. Данное решение"text-align: center" | <reftex>[https://ieeexplore11.ieee46 \pm 0.org/document/8499439 Chenrui Z., Yuxin P. {{---}} Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018]09</reftex> предлагает контекстно-зависимый подход к генерации изображения, который разделяет фон и передний план. Для этого используется взаимодополняющая связка [[Вариационный автокодировщик | вариационного автокодировщика (англ. ''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|Архитектура Stacking VAE and GAN]]</div>
[[Вариационный автокодировщик| VAE]] считается более устойчивым чем GANПоэтому вместо того, это можно использовать для достоверной подборки распределения чтобы изучать прямое отображение текста в изображение, был предложен альтернативный подход, который строит семантический макет как промежуточное представление между текстом и выявления разнообразия исходного изображенияизображением. Однако он не подходит для генерации изображений высокого качестваСемантический макет определяет структуру сцены на основе экземпляров объектов и предоставляет детальную информацию о сцене, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента:*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]]такую ​​как количество объектов, категорию объекта, CVAE'') используется для захвата основной компоновки и цветарасположение, разделяя фон и передний план изображения.*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обученияразмер, которое восстанавливает потерянные детали форму и исправляет дефекты для создания реалистичного изображения. Полученные результаты проверки на 2 наборах данных выдает довольно неплохой результат (Caltech-UCSD<ref name="caltech"/> и Oxford-102<ref name="oxford"/>) эмпирически подтверждают эффективность предложенного метода.<gallery mode="slideshow" caption="Сравнение CVAE&GAN, StackGan и GAN-INT-CLS ">Файл:CVAE&GAN_example_flowersрис.png||alt=Пример результата работы CVAE&GAN (flowers10)Файл:CVAE&GAN_example_bird.png|Сверху вниз начиная со второй строки: CVAE&GAN, StackGAN, GAN-INT-CLS|alt=Пример результата работы CVAE&GAN (birds)</gallery>
<gallery mode="slideshow" caption="Рисунок 10. Пример результата работы.">
Файл:Semantic-2.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 1
Файл:Semantic-3.png|Сравнение HTIS<ref name="HTIS"/>.|alt=Сгенерированные изображения, 2
</gallery>
=== ChatPainter AttnGAN ===В предыдущих и последующих моделях для создания изображений используются текстовые Общепринятый подход заключается в кодировании всего текстового описанияв глобальное векторное пространство предложений (англ. ''global sentence vector''). Однако они могут быть недостаточно информативнымиТакой подход демонстрирует ряд впечатляющих результатов, чтобы охватить все представленные изображения, и модели будет недостаточно данных для того чтобы сопоставить объекты но у него есть главные недостатки: отсутствие чёткой детализации на изображениях со словами в описании. Поэтому в качестве дополнительных данных предлагается использовать диалоги, которые дополнительно описывают сцены. Это приводит к значительному улучшению inception score уровне слов и качества генерируемых невозможность генерации изображений в наборе данных MS COCO (Microsoft COCO dataset)<ref name="MSCOCO">[https://www.microsoft.com/en-us/research/wp-content/uploads/2014/09/LinECCV14coco.pdf Microsoft COCO]</ref>высокого разрешения. Для создания нового набора данных с диалогамиЭта проблема становится еще более серьезной при генерации сложных кадров, были объединены описания представленные таких как в наборе данных MS COCO<ref name="MSCOCO" />, с данными из Visual Dialog dataset (VisDial)<ref>[https://arxiv.org/abs/1611.08669 Visual Dialog]</ref>.<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: ChatPainter.pngИзвестные наборы данных#COCO|thumb| alt=Архитектура ChatPainter|x350px|center| Архитектура ChatPainter: <ol style="list-style-type:lower-alpha"> <li>Этап 1: модель генерирует изображение 64×64, по описанию и диалогу. </li> <li>Этап 2: модель генерирует изображение размером 256×256, на основе изображения сгенерированного на 1 этапе, а также описанию и диалогу </li></ol>COCO]]</div>.
В качестве решения данной проблемы была предложена<ref name="AttnGan">[[Файлhttps:SurfBoard//openaccess.thecvf.com/content_cvpr_2018/papers/Xu_AttnGAN_Fine-questionsGrained_Text_CVPR_2018_paper.pdf Tao X., Pengchuan Z.png|alt=Изображение{{---}} AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks, сгенерированное моделью ChatPainter для данного описания и диалога2018] </ref> новая '''[[Generative Adversarial Nets (GAN)|thumbгенеративно-состязательная нейросеть]] с [[Механизм внимания|x200px|right|Пример работы ChatPainterвниманием]]''' (англ. ''Attentional Generative Adversarial Network, AttnGAN''), которая относится к вниманию как к фактору обучения, что позволяет выделять слова для генерации фрагментов изображения.
Данная архитектура (см. рис) опирается на модель StackGAN. StackGAN генерирует изображение в два этапа<div class="oo-ui-panelLayout-scrollable" style="display: Stageblock; vertical-I генерирует грубое изображение 64×64, а Stagealign:middle; height: auto; max-II генерирует улучшенное изображение 256×256width: 854; 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}<tex/math>\phi_{t{---}} создает сжатое представление об общей сцене на изображении, исходя из всего текстового описания. Значение <tex>C</tex> на выходе конкатенируется с вектором из нормального распределения <tex>Z</tex> происходит путем кодирования подписей , который задает вариативность сцены. Эта информация является основой для работы генератора.*Attentional Generative Network {{---}} самая большая сеть, состоящая из трех уровней. Каждый уровень порождает изображения все большего разрешения, от 64x64 до 256x256 пикселей, и результат работы на каждом уровне корректируется с помощью предварительно обученного энкодерасетей внимания <math>F^{attn}</math>, которые несут в себе информацию о правильном расположении отдельных объектов сцены. Кроме того, результаты на каждом уровне проверяются тремя отдельно работающими дискриминаторами, которые оценивают реалистичность изображения и соответствие его общему представлению о сцене. Благодаря модификациям нейросеть AttnGAN показывает значительно лучшие результаты, чем традиционные системы GAN. В частности, максимальный из известных показателей Inception Score<refname="inception">[https://githubarxiv.comorg/reedscotabs/icml2016 Pre-trained encoder for ICML 2016 paper1801.01973 A Note on the Inception Score]</ref>. Для генерации диалоговых вложений для существующих нейросетей улучшен на 14,14% (с 3,82 до 4,36) на наборе данных [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] и улучшен на целых 170,25% (с 9,58 до 25,89)<texref>\zeta_[https://paperswithcode.com/sota/text-to-image-generation-on-coco Test results {{d---}}Text-to-Image Generation on COCO]</texref> используется два метода:на более сложном наборе данных [[Известные наборы данных#COCO|COCO]].
*Не рекурсивный энкодер {{---}} сжимает весь диалог в одну строку и кодирует его с помощью предварительно обученного энкодера Skip-Thought<ref>[https://github.com/ryankiros/skip-thoughts Skip-Thought encoder]</ref>.
*Рекурсивный энкодер <gallery mode=packed heights=300px caption="Рисунок 12. Пример результата работы AttnGAN.">Файл:Attngan_bird.png||alt=Сгенерированная красная птичкаФайл:Attngan_coco.png|Во второй и третьей строке приведены по 5 наиболее используемых слов сетями внимания <math>F_{1}^{---attn}</math> и <math>F_{2} генерирует Skip-Thought векторы (англ. ''Skip-Thought Vectors'')^{attn}</math> соответственно<refname="AttnGan"/>[https.|alt=Сгенерированная едаФайл://arxivAttngan_fruit.org/abs/1506.06726 Skip-Thought Vectors]png||alt=Сгенерированные фрукты</refgallery> для каждого сообщения в диалоге, а затем кодирует их двунаправленной [[Рекуррентные нейронные сети| рекуррентной нейронной сетью]] c [[Долгая краткосрочная память|LSTM]]
Затем выходы описаний === CVAE&GAN ===Большинство существующих методов генерации изображения по тексту нацелены на создание целостных изображений, которые не разделяют передний и диалогов объединяются и передаются задний план изображений, в качестве входных данных в модуль аугментации данных (англрезультате чего объекты искажаются фоном. ''Conditioning AugmentationБолее того, CA'')они обычно игнорируют взаимодополняемость различных видов генеративных моделей. Данное решение<ref name="CVAE&GAN">[https://ieeexplore.ieee.org/document/8499439 Chenrui Z. Модуль CA нужен для получения скрытых скрытые условных переменных, которые передаются на вход генераторуYuxin P.Архитектура блоков upsample{{---}} Stacking VAE and GAN for Context-awareText-to-Image Generation, 2018]</ref> предлагает контекстно-зависимый подход к генерации изображения, downsample который разделяет фон и residual blocks сохраняется такой же, как передний план. Для этого используется взаимодополняющая связка [[Вариационный автокодировщик| вариационного автокодировщика]] и у исходного StackGAN[[Generative Adversarial Nets (GAN)|генеративно-состязательной нейросети]].
Результаты тестирования и сравнение модели ChatPainter с другими приведены в таблице<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN. Из неё видно, что модель ChatPainter, которая получает дополнительную диалоговую информацию, имеет более высокий Inception Score, в отличии от модели StackGANpng|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13. Кроме того, рекурсивнаяверсия ChatPainter получилась лучше, чем не рекурсивная версия. Вероятно, это связано с тем, что в не рекурсивной версии энкодер не обучается на длинных предложениях сворачивая весь диалог в одну строку<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div>
{[[Вариационный автокодировщик| class="wikitable"VAE]] имеет более стабильный выход чем GAN без [[Generative_Adversarial_Nets_(GAN)#Mode_Collapse|+ схлопывания мод распределения]] (англ. ''mode collapse'Inception scores '), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для сгенерированных генерации изображений в тестовом наборе MS COCO<ref name="MSCOCO" />высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13):*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения.*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения. Полученные результаты проверки (рис.14) на 2 наборах данных ([[Известные наборы данных#Caltech-! Модель !! Inception ScoreUCSD Birds 200 (CUB)|Caltech-UCSD]] и [[Известные наборы данных#102 Category Flower|Oxford-102]]) эмпирически подтверждают эффективность предложенного метода.| style <gallery mode= "text-align: rightslideshow" | StackGAN || style caption= "textРисунок 14. Сравнение CVAE&GAN, StackGan и GAN-INT-align: centerCLS." | <tex>8Файл:CVAE&GAN_example_flowers.45 \pm 0.03</tex>png|Сравнение CVAE&GAN, [[#StackGAN|StackGAN]] и [[#GAN-INT-CLS| style = "textGAN-align: right" | ChatPainter (nonINT-recurrent)|| style CLS]].<ref name= "text-align: centerCVAE&GAN" | <tex>9.43 \pm 0.04</tex> |-| style alt= "text-align: right" | ChatPainter Пример результата работы CVAE&GAN (recurrentflowers)Файл:CVAE&GAN_example_bird.png|Сверху вниз начиная со второй строки: CVAE&GAN, [[#StackGAN| style = "textStackGAN]] и [[#GAN-INT-align: center" CLS| <tex>9GAN-INT-CLS]].74 \pm 0.02</tex>|-| style ref name= "text-align: rightCVAE&GAN" />| AttnGAN || style alt= "text-align: center" | <tex>25.89 \pm 0.47Пример результата работы CVAE&GAN (birds)</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 ===
Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм и семантическое постоянство. Несмотря на то, что существует колоссальный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных велей все еще является категорически сложной задачей. Для осуществления попытки их реализации рассмотрим глобально-локальный сохраняющий семантику text-to-image-to-text фреймворк с вниманием под названием MirrorGAN. Данный фреймворк эксплуатирует идею обучения text-to-image генерации с помощью переописания и состоит из трёх модулей:
* модуль встраивания семантического текста (англ. ''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 стремится к регенерации текстового описания исходя из созданного изображения, которое семантически выравнивается с данным описанием.
{| class="wikitable" style="float:right; margin-left: 10px;"|+ '''Inception scores для сгенерированных изображений в тестовых наборах [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] и [[Известные наборы данных#COCO|COCO]]'''|-! Модель !! Inception Score ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]) !! Inception Score ([[Известные наборы данных#COCO|COCO]])|-| style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] || style = "text-align: center" | <tex>2.88 \pm 0.04</tex> || style = "text-align: center" | <tex>7.88 \pm 0.07</tex>|-| style = "text-align: right" | [[#GAN-INT-CLS|GAWWN]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex> || style = "text-align: center" | <tex>-</tex>|-| style = "text-align: right" | [[#StackGAN | StackGAN]] || style = "text-align: center" | <tex>3.62 \pm 0.07</tex> || style = "text-align: center" | <tex>8.45 \pm 0.03</tex>|-| 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" | PPGN<ref name="PPGN"/> || style = "text-align: center" | <tex>-</tex> || style = "text-align: center" | <tex>9.58 \pm 0.21</tex>|-| style = "text-align: right" | [[#AttnGAN | AttnGAN]] || style = "text-align: center" | <tex>4.36 \pm 0.03</tex> || style = "text-align: center" | <tex>25.89 \pm 0.47</tex>|-| style = "text-align: right" | MirrorGAN || style = "text-align: center" | <tex>4.56 \pm 0.05</tex> || style = "text-align: center" | <tex>26.47 \pm 0.41</tex>|} Генерация изображения из заданного текстового описания преследует две главные цели: реалистичность и семантическое постоянство. Несмотря на то, что существует значительный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных целей все еще является довольно сложной задачей. Для осуществления попытки их реализации рассмотрим text-to-image-to-text фреймворк с вниманием, сохраняющий семантику, под названием <b>MirrorGAN</b><ref name="MirrorGAN">[https://arxiv.org/abs/1903.05854 Tingting Q., Jing Z. {{---}} MirrorGAN: Learning Text-to-image Generation by Redescription, 2019]</ref>. Данный фреймворк, который из текстового описания генерирует изображение, использует идею обучения с помощью переописания (англ. ''redescription'') и состоит из трёх модулей:* Модуль встраивания семантического текста (англ. ''semantic text embedding module, <b>STEM</b>'').* Глобально-локальный совместный модуль с вниманием для создания каскадных изображений (англ. ''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"/> был использован для измерения как объективности, так и разнообразия сгенерированных изображений. [https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#R-Precision R-precision] был использован для вычисления визуально-семантической схожести между сгенерированными изображениями и их соответствующими текстовыми описаниями.
Чтобы обучать модель сквозным методом, будем использовать две состязательные потери<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл: в визуальном реализме и в семантическом постоянствеMirrorGAN&Co.jpg|thumb|center|x500px|Рисунок 22. В добавок<ref name="MirrorGAN"/> Сравнение MirrorGAN, для максимального использования двойного регулирования 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 ===
Управляемая объектами '''Объектно-управляемая [[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.70</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-align: right" | Obj-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''), фокусируясь на наиболее релевантных объекту словах. Говоря более конкретно, он, с использованием управляемого объектами слоя внимания, оперирует метками класса, запрашивая слова в предложениях, чтобы сформировать вектор контекстов, и впоследствии синтезирует фрагмент изображения при условиях метки и вектора контекстов. Пообъектный дискриминатор проверяет каждую ограничивающую рамку, чтобы удостовериться в том, что сгенерированный объект действительно может быть сопоставлен с заранее сгенерированным макетом. Чтобы вычислить все потери при распознавании для всех заданных ограничивающих рамок одновременно и эффективно, дискриминатор базирован быстрой региональной сверточной нейронной сетью представляет из себя быструю [[Сверточные нейронные сети|свёрточную нейронную сеть]] на основе регионов (англ. ''Fast Region-based Convolutional Neural Network, Fast R-CNN'') с двоичной [[Функция потерь и эмпирический риск | функцией потерь]] перекрёстной энтропии для каждой рамки.
[[Файл:Obj-GAN.png|thumb|alt=Архитектура Obj-GAN|x300px|thumb|right|Архитектура Obj-GAN]]
Рассмотрим архитектуру 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 ckassmode="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" />, в которой содержатся сложные макеты сцен реального мира.
В статье<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>PNPмоделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами.* Синтетический набор данных, MNIST-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>.
[[Файл:LayoutVAE.png|thumb|center|x500px|Архитектура LayoutVAE]][[Файл:LayoutVAEGeneration.png|thumb|center|x500px|Генерация по множеству Имея набор меток <tex>L</tex> и количество объектов в категории <tex>\left\{person, sea, surfboardn_m : m \in L \right\}</tex>]], BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; <b>сначала все ограничивающие рамки предсказываются для заданной метки, а уже потом происходит переход к следующей метке.</b>
<div class=== TextKD"oo-ui-panelLayout-GAN scrollable" style===Генерация текста представляет особый интерес во многих приложениях [https"display://en.wikipedia.org/wiki/Neuroblock; vertical-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как align:middle; height: auto; width: auto;">[[httpsФайл://enLayoutVAEGeneration.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) png|thumb|center| Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение x350px| компьютерном зрении]], и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текстаРисунок 26. В данной статье<refname="LayoutVAE"/>[https://arxiv.org/pdf/1905.01976.pdf Генерация по множеству меток <tex>\{{---}person, sea, surfboard\} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks]</reftex> вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автоэнкодеры]] (англ. ''autoencoders, AEs'') могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову.</div>
TextKD=== MCA-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста ===Преобразование изображений перекрестным видом (англ. ''cross-view image translation'') проблематично, поскольку оно оперирует изображениями со значительно отличающимися ракурсами и тяжёлыми деформациями. В статье<ref name="MCA-GAN">[https://arxiv.org/pdf/1904.06807.pdf Multi-Channel Attention Selection GAN with Cascaded Semantic Guidancefor Cross-View Image Translation]</ref> о выборочной [[Generative Adversarial Nets (GAN) | генеративной состязательной сети]] с мультиканальным вниманием (англ. ''Multi-Channel Attention Selection GAN, MCA-GAN'') рассматривается подход, позволяющий делать возможным генерацию изображения, максимально приближенной к реальной, с дистилляцией знаний: методпроизвольных ракурсах, переносящий знания смягченного вывода модели преподавателя основывающийся на семантическом отображении (англ. ''semantic mapping''). Работа сети происходит в модель студентадва этапа:# Изображение и целевое семантическое отображение (англ. Решение основано ''target semantic map'') подаются на AE вход циклической семантически-управляемой генеративной сети (учителеангл. ''cycled semantic-guided generation network'')для получения начальных результатов.# Начальные результаты уточняются, чтобы получить гладкое представление реального текстаиспользуя механизм мультиканального выделения внимания (англ. Это гладкое представление подается в дискриминатор TextKD''multi-GAN вместо обычного однократного представленияchannel attention selection mechanism'').Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky. Генератор edu/datasets/cvusa/ Crossview USA (студентCVUSA) пытается изучить многообразие смягченного гладкого представления AE]</ref> и Ego2Top<ref>[https://www. TextKDcrcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-GANview Videos (ECCV 2016)]</ref> показывают, в конечном итоге, будет превосходить обычный генератор текста на основе GANчто данная модель способна генерировать значительно более качественные результаты, который не нуждается в предварительной подготовкечем другие современные методы.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKDMCA-GAN_ModelGAD.png|thumb|rightcenter|x400pxx300px|Модель TextKDРисунок 29.<ref name="MCA-GAN для генерации текста"/> Архитектура MCA-GAD.]]</div>
В общепринятом текстовом подходе к дискриминации реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://enНа рисунке 29 проиллюстрирована структура сети.wikipedia.org/wiki/OneПервый этап, как было описано выше, состоит из <b>каскадной семантически-hot one-hot] & [https:управляемой генерацинной подсети<//enb>, использующая изображения в одном представлении и условные семантические отображения в другом представлении в качестве входных данных и преобразующая эти изображения в другом представлении.wikipedia.org/wiki/Softmax_function softmax])Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, и он может обыкновенно отличить их друг от другаформируя цикл генерации. Один из способов избежать этой проблемы состоит Второй этап заключается в том, чтобы получить непрерывное гладкое представление слов, а не их one-hot представление, и обучить дискриминатор различать непрерывные представлениячто грубый синтез (англ. Здесь используется общепринятый автоэнкодер (учитель''coarse synthesis'')и отображения глубоких характеристик объединяются и подаются на вход в <b>модуль мультиканального выделения внимания</b>, чтобы заменить one-hot представление softmax-реконструированным выходом, который является гладким представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена направленный на рисунке справаполучение более детализированного синтеза (англ. Как видно, вместо one''fine-hot представления реальных слов смягченный реконструированный выход автоэнкодера подается на вход дискриминаторуgrained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. Эта техника значительно усложняет различение ''uncertainty maps'') для самого дискриминаторауправления множественными потерями оптимизации (англ. ''optimization losses''). Генератор GAN Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (студентангл. ''multichannel attention selection component'') с softmax выходом пытается имитировать распределение выходного сигнала автоэнкодера вместо общепринятого one-hot представления.
Обучение модели происходит следующим образом: мы обучаем AE Поскольку между изначальным ракурсом и TextKDрезультирующим существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. ''single-GAN одновременноscale feature'') вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена:# реконструирующий член Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для автоэнкодера: <tex>\min\limits_{выполнения глобального среднего пулинга (\varphi, \psiангл. ''global average pooling'')} L_{AE}(\varphiна одних и тех же входных характеристиках, \psi) = \min\limits_{тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (\varphi, \psi)} \| x - \mathrm{softmax}(\mathrm{dec}_\psi(\mathrm{enc}_\varphi(x)англ. ''receptive fields'')) \| ^ 2</tex># функция потерь для дискриминатора с градиентным штрафом: <tex>\min\limits_{w \in W} L_{discriminator}восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (wангл. ''spatial and temporal selection'') = \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># состязательная стоимость генератора: <tex>\min\limits_\theta L_{Gen}(\theta) = -\min\limits_\theta E_{z \sim P_z} [f_w(G(z))]</tex>, чтобы синтезировать конечный детализированный результат.
Эти функции потерь обучаются поочередно, чтобы оптимизировать различные части модели<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30. В члене штрафа градиента необходимо посчитать норму градиента случайных выборок <texref name="MCA-GAN"/>\hat{x} \sim P_{\hat{x}}Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</texdiv>.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKDMCA-GAN&CoGAN_CrossviewImageTranslation.png|thumb|center|x600pxx500px|Дивергенция Дженсена-Шеннона (англРисунок 31. ''Jensen<ref name="MCA-Shannon divergence, JSD'') между сгенерированным и обучающимся предложениями (n-граммами) полученных из эксперимента SNLI (Stanford Natural Language Inference, Стэнфордский Вывод Естественного Языка)GAN"/> Преобразование изображения перекрестным видом.]]</div>
=== MCA-GAN ===
=== LeicaGAN ===
== Области применения ==
*Создание контента и данных :**Картинки картинки для интернет-магазина;**Аватары аватары для игр;**Видеоклипывидеоклипы, сгенерированные автоматически, исходя из музыкального бита произведения;**Виртуальные виртуальные ведущие<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
правки

Навигация