81
правка
Изменения
м
→MirrorGAN: added the Inception Score table + minor translation fixes
=== MirrorGAN ===
Генерация изображения из заданного текстового описания преследует две главные цели: визуальный реализм реалистичность и семантическое постоянство. Несмотря на то, что существует значительный прогресс в создании визуально реалистичных изображений высокого качества посредством [[Generative Adversarial Nets (GAN) | генеративных состязательных сетей]], обеспечение вышепоставленных целей все еще является довольно сложной задачей. Для осуществления попытки их реализации рассмотрим фреймворк text-to-image-to-textфреймворк, сохраняющий семантику с вниманием под названием <b>MirrorGAN</b><ref name="MirrorGAN">[https://arxiv.org/abs/1903.05854 Tingting Q., Jing Z. {{---}} MirrorGAN: Learning Text-to-image Generation by Redescription, 2019]</ref>. Данный фреймворк, который из текстового описания генерирует изображение, использует идею обучения с помощью переописания (англ. ''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) должно предоставлять аналогичную семантику с заданным.
Чтобы обучать модель сквозным методом, будем использовать две состязательные [[Функция потерь и эмпирический риск | функции потерь]]: состязательная потеря в визуальном реализме реалистичности и состязательная потеря в семантическом постоянстве. Вдобавок, для эффективного использования двойного регулирования T2I и I2T, применим текстово-семантическую реконструированную функцию потерь, основанную на перекрёстной энтропии.
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MirrorGAN.png|thumb|center|x350px|Рисунок 21.<ref name="MirrorGAN"/> Архитектура MirrorGAN.]]</div>
MirrorGan представляет собой зеркальную структуру, объединяя T2I и I2T. Чтобы сконструировать многоэтапный каскадный генератор, нужно совместить все три сети генерации изображений последовательно. В качестве архитектуры STREAM будем использовать довольно распространенный фреймворк захвата изображения, базирующийся на кодировании и декодировании. Кодировщик изображений есть [[Сверточные нейронные сети | свёрточная нейронная сеть]], предварительно обученная на ImageNet<ref name="ImageNet">[http://www.image-net.org/ ImageNet image database ]</ref>, а декодировщик есть [[Рекуррентные нейронные сети | рекуррентная нейронная сеть]]. Предварительное обучение STREAM помогло MirrorGAN достичь более стабильного процесса обучения и более быстрой сходимости, в то время, как их совместная оптимизация довольно нестабильна и с точки зрения занимаемого места и времени очень дорога. Структура кодировщик-декодировщик и соответствующие ей параметры фиксированы во время обучения других модулей MirrorGAN.
Обучая <tex>G_i</tex>, градиенты из <tex>L_{stream}</tex> обратно распространяются (англ. ''backpropagated'') через STREAM в <tex>G_i</tex>, веса сетей которых остаются фиксированными. Финальная целевая функция генератора выглядит так:
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MirrorGAN&Co.jpg|thumb|center|x500px|Рисунок 22.<ref name="MirrorGAN"/> Сравнение MirrorGAN, [[#AttnGAN|AttnGAN]] и других генеративных состязательных сетей.]]</div>
{| class="wikitable"
|+ '''Inception scores для сгенерированных изображений в тестовых наборах CUB<ref name="caltech"/> и COCO<ref name="COCO" />'''
|-
! Модель !! CUB<ref name="caltech"/> Inception Score !! COCO<ref name="MSCOCO"/> Inception Score
|-
| style = "text-align: right" | GAN-INT-CLS <ref name="scott"/> || 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" | GAWWN <ref name="scott"/> || 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>
|}
=== Obj-GAN ===