Редактирование: Генерация изображения по тексту
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | Автоматическое создание реалистичных высококачественных изображений из текстовых описаний | + | {{В разработке}} |
+ | Автоматическое создание реалистичных высококачественных изображений из текстовых описаний был бы интересен и довольно полезен, так как имеет множество практических применений, но современные системы искусственного интеллекта все еще далеки от этой цели, так как это является довольно сложной задачей в области компьютерного зрения. Однако в последние годы были разработаны универсальные и мощные рекуррентные архитектуры нейронных сетей для изучения различных представлений текстовых признаков. Между тем, глубокие сверточные [[Generative Adversarial Nets (GAN)| генеративные состязательные сети]] (англ. ''Generative Adversarial Nets, GANs'') начали генерировать весьма убедительные изображения определенных категорий, таких как лица, обложки альбомов и интерьеры комнат. Образцы, генерируемые существующими подходами "текст-изображение", могут приблизительно отражать смысл данных описаний, но они не содержат необходимых деталей и ярких частей объекта. В данной статье рассмотрены формулировка и глубокая архитектура GAN, а также объединены достижения в генерации изображений по тексту. | ||
== Обзор генеративных моделей == | == Обзор генеративных моделей == | ||
Строка 13: | Строка 14: | ||
| style = "text-align: center" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] | | style = "text-align: center" | [[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#Attribute2Image|Attribute2Image]] |
| style = "text-align: center" | <tex>14.30 \pm 0.10</tex> | | style = "text-align: center" | <tex>14.30 \pm 0.10</tex> | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 22: | Строка 23: | ||
| [[Файл: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.]] | | [[Файл: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: | + | | style = "text-align: right" | [[#GAN-INT-CLS|GAN-INT-CLS]] |
| style = "text-align: center" | <tex>7.88 \pm 0.07</tex> | | 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>2.88 \pm 0.04</tex> | ||
Строка 31: | Строка 32: | ||
| [[Файл:GAN-INT-CLS-example.png|128px|thumb|center|This flower is white and pink in color, with petals that have veins.]] | | [[Файл:GAN-INT-CLS-example.png|128px|thumb|center|This flower is white and pink in color, with petals that have veins.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#StackGAN|StackGAN]] |
| style = "text-align: center" | <tex>8.45 \pm 0.03</tex> | | 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>3.70 \pm 0.04</tex> | ||
Строка 40: | Строка 41: | ||
| [[Файл:StackGAN-example.png|128px|thumb|center|This flower has a lot of small purple petals in a dome-like configuration.]] | | [[Файл:StackGAN-example.png|128px|thumb|center|This flower has a lot of small purple petals in a dome-like configuration.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#FusedGAN|FusedGAN]] |
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
| style = "text-align: center" | <tex>3.00 \pm 0.03</tex> | | style = "text-align: center" | <tex>3.00 \pm 0.03</tex> | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
− | | style = "text-align: center" | <tex> | + | | style = "text-align: center" | <tex>256 \times 256</tex> |
| style = "text-align: center" | нет | | 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.]] | | [[Файл: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: | + | | style = "text-align: right" | [[#ChatPainter|ChatPainter]] |
| style = "text-align: center" | <tex>9.74 \pm 0.02</tex> | | style = "text-align: center" | <tex>9.74 \pm 0.02</tex> | ||
| style = "text-align: center"| {{---}} | | style = "text-align: center"| {{---}} | ||
Строка 58: | Строка 59: | ||
| [[Файл:ChatPainter_256x256_coco.png|128px|thumb|center|A person in yellow pants in on a snowboard.]] | | [[Файл:ChatPainter_256x256_coco.png|128px|thumb|center|A person in yellow pants in on a snowboard.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#StackGAN++|StackGAN++]] |
| style = "text-align: center" | <tex>8.30 \pm 0.10</tex> | | 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>3.84 \pm 0.06</tex> | ||
Строка 67: | Строка 68: | ||
| [[Файл:StackGAN++-example.png|128px|thumb|center|A picture of a very clean living room.]] | | [[Файл:StackGAN++-example.png|128px|thumb|center|A picture of a very clean living room.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#HTIS|HTIS]] |
| style = "text-align: center" | <tex>11.46 \pm 0.09</tex> | | style = "text-align: center" | <tex>11.46 \pm 0.09</tex> | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 76: | Строка 77: | ||
| [[Файл:HTIS-example.png|128px|thumb|center|A man is surfing in the ocean with a surfboard.]] | | [[Файл:HTIS-example.png|128px|thumb|center|A man is surfing in the ocean with a surfboard.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#AttnGAN | AttnGAN]] |
| style = "text-align: center" | <tex>25.89 \pm 0.47</tex> | | 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>4.36 \pm 0.03</tex> | ||
Строка 85: | Строка 86: | ||
| [[Файл:AttnGan_256x256_coco.png|128px|thumb|center|A photo a homemade swirly pasta with broccoli carrots and onions.]] | | [[Файл:AttnGan_256x256_coco.png|128px|thumb|center|A photo a homemade swirly pasta with broccoli carrots and onions.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#CVAE&GAN|CVAE&GAN]] |
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 94: | Строка 95: | ||
| [[Файл:CVAE&GAN_256x256_cub.png|128px|thumb|center|This is a yellow and gray bird with a small beak.]] | | [[Файл:CVAE&GAN_256x256_cub.png|128px|thumb|center|This is a yellow and gray bird with a small beak.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#MMVR|MMVR]] |
| style = "text-align: center" | <tex>8.30 \pm 0.78</tex> | | style = "text-align: center" | <tex>8.30 \pm 0.78</tex> | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 103: | Строка 104: | ||
| [[Файл:MMVR_256x256_coco.png|128px|thumb|center|A boat on a beach near some water.]] | | [[Файл:MMVR_256x256_coco.png|128px|thumb|center|A boat on a beach near some water.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#MirrorGAN|MirrorGAN]] |
| style = "text-align: center" | <tex>26.47 \pm 0.41</tex> | | 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" | <tex>4.56 \pm 0.05</tex> | ||
Строка 112: | Строка 113: | ||
| [[Файл:MirrorGANExample.png|128px|thumb|center|Boats at the dock with a city backdrop.]] | | [[Файл:MirrorGANExample.png|128px|thumb|center|Boats at the dock with a city backdrop.]] | ||
|- | |- | ||
− | | style = "text-align: center" | [[#Obj-GAN|Obj-GAN | + | | style = "text-align: right" | [[#TextKD-GAN|TextKD-GAN]] |
+ | | style = "text-align: center" | {{---}} | ||
+ | | style = "text-align: center" | {{---}} | ||
+ | | style = "text-align: center" | {{---}} | ||
+ | | style = "text-align: center" | text | ||
+ | | style = "text-align: center" | [https://github.com/zubairbaqai/TextKD-GAN да] | ||
+ | | Генерация текста с использованием дистилляции знаний (перенос знаний, усвоенных большой моделью (учителем), на меньшую модель (ученика)). | ||
+ | | | ||
+ | |- | ||
+ | | style = "text-align: right" | [[#Obj-GAN|Obj-GAN]] | ||
| style = "text-align: center" | <tex>31.01 \pm 0.27</tex> | | style = "text-align: center" | <tex>31.01 \pm 0.27</tex> | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 121: | Строка 131: | ||
| [[Файл:Obj-GANExample.png|128px|thumb|center|A hotel room with one bed and a blue chair.]] | | [[Файл:Obj-GANExample.png|128px|thumb|center|A hotel room with one bed and a blue chair.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#LayoutVAE|LayoutVAE]] |
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 130: | Строка 140: | ||
| [[Файл:LayoutVAEExample.png|128px|thumb|center|Person, sea, surfboard.]] | | [[Файл:LayoutVAEExample.png|128px|thumb|center|Person, sea, surfboard.]] | ||
|- | |- | ||
− | | style = "text-align: | + | | style = "text-align: right" | [[#MCA-GAN|MCA-GAN]] |
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
| style = "text-align: center" | {{---}} | | style = "text-align: center" | {{---}} | ||
Строка 136: | Строка 146: | ||
| style = "text-align: center" | <tex>256 \times 256</tex> | | style = "text-align: center" | <tex>256 \times 256</tex> | ||
| style = "text-align: center" | нет | | style = "text-align: center" | нет | ||
− | | | + | | Генерацию изображения с произвольных перспективах, основывающаяся на семантическом отображении (англ. ''semantic mapping''). |
| [[Файл:MCA-GANExample.png|128px|thumb|center]] | | [[Файл:MCA-GANExample.png|128px|thumb|center]] | ||
|} | |} | ||
Строка 158: | Строка 168: | ||
заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения. | заданному описанию или нет. Модель должна неявно разделять два источника ошибок: нереалистичные образы (для любого текста) и реалистичные образы неправильного класса, которые не соответствуют текстовым признакам. Алгоритм обучения GAN был модифицирован таким образом, чтобы разделять эти источники ошибок. В дополнение к реальным/поддельным входным данным в дискриминатор во время обучения был добавлен третий тип входных данных, состоящий из реальных изображений с несовпадающим текстовым описанием, на которых дискриминатор должен обучиться оценивать поддельные изображения. | ||
− | <gallery mode= | + | <gallery mode="slideshow" caption="Рисунок 2. Пример результата работы GAN-CLS, GAN-INT и GAN-INT-CLS."> |
Файл:DCGAN-2.png|Сгенерированные изображения птиц<ref name="DCGAN"/>.|alt=Сгенерированные изображения птиц | Файл:DCGAN-2.png|Сгенерированные изображения птиц<ref name="DCGAN"/>.|alt=Сгенерированные изображения птиц | ||
Файл:DCGAN-3.png|Сгенерированные изображения цветов<ref name="DCGAN"/>.|alt=Сгенерированные изображения цветов | Файл:DCGAN-3.png|Сгенерированные изображения цветов<ref name="DCGAN"/>.|alt=Сгенерированные изображения цветов | ||
Строка 189: | Строка 199: | ||
Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS|GAN-INT-CLS]] и [[#GAN-INT-CLS|GAWWN]] (рис. 6). | Для проверки метода были проведены обширные количественные и качественные оценки. Результаты работы модели сравниваются с двумя современными методами синтеза текста в изображение {{---}} [[#GAN-INT-CLS|GAN-INT-CLS]] и [[#GAN-INT-CLS|GAWWN]] (рис. 6). | ||
− | <gallery mode= | + | <gallery mode="slideshow" caption="Рисунок 6. Пример результата работы StackGAN."> |
Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птиц | Файл:StackGAN-2.png|Сгенерированные изображения птиц<ref name="StackGAN/>.|alt=Сгенерированные изображения птиц | ||
Файл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов | Файл:StackGAN-3.png|Сгенерированные изображения цветов<ref name="StackGAN/>.|alt=Сгенерированные изображения цветов | ||
Строка 259: | Строка 269: | ||
<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> | <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 является | + | Несмотря на успех, GAN, как известно, сложно обучить. Тренировочный процесс обычно нестабилен и чувствителен к выбору [[Настройка гиперпараметров | гиперпараметров]]. При обучении GAN генерировать изображения с высоким разрешением (например, 256x256), вероятность того, что распределение изображений и распределение моделей будет совместно использовать один и тот же носитель в многомерном пространстве, очень мала. Более того, обычным явлением сбоя при обучении GAN является '''коллапс режима''' (англ. ''mode collapse''), когда многие из сгенерированных выборок содержат одинаковый цвет или узор текстуры. |
Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется '''регуляризация согласованности цвета''' (англ. ''color-consistency regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов. | Предлагается продвинутая многоэтапная генеративно-состязательная сетевая архитектура StackGAN-v2 как для условных, так и для безусловных генеративных задач. StackGAN-v2 имеет несколько генераторов, которые разделяют между собой большинство своих параметров в древовидной структуре. Входные данные сети можно рассматривать как корень дерева, а изображения разного масштаба генерируются из разных ветвей дерева. Конечная цель генератора на самой глубокой ветви {{---}} создание фотореалистичных изображений с высоким разрешением. Генераторы в промежуточных ветвях имеют прогрессивную цель создания изображений от малых до больших для достижения конечной цели. Вся сеть совместно обучается аппроксимировать различные, но сильно взаимосвязанные распределения изображений в разных ветвях. Кроме того, используется '''регуляризация согласованности цвета''' (англ. ''color-consistency regularization''), чтобы генераторы могли генерировать более согласованные образцы для разных масштабов. | ||
Строка 342: | Строка 352: | ||
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN.png|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:Stacking_VAE&GAN.png|thumb|alt=Архитектура Stacking VAE and GAN|x350px|center|Рисунок 13.<ref name="CVAE&GAN"/> Архитектура Stacking VAE and GAN.]]</div> | ||
− | [[Вариационный автокодировщик| VAE]] имеет более стабильный выход чем GAN без [[ | + | [[Вариационный автокодировщик| VAE]] имеет более стабильный выход чем GAN без [[Generative Adversarial Nets (GAN)#Улучшение обучения GAN|схлопывания мод распределения]] (англ. ''mode collapse''), это можно использовать для достоверной подборки распределения и выявления разнообразия исходного изображения. Однако он не подходит для генерации изображений высокого качества, т. к. генерируемые VAE изображения легко размываются. Чтобы исправить данный недостаток архитектура включает два компонента (рис. 13): |
*Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения. | *Контекстно-зависимый вариационный кодировщик (англ. ''conditional [[Вариационный автокодировщик| VAE]], CVAE'') используется для захвата основной компоновки и цвета, разделяя фон и передний план изображения. | ||
*[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения. | *[[Generative Adversarial Nets (GAN)|GAN]] уточняет вывод CVAE с помощью состязательного обучения, которое восстанавливает потерянные детали и исправляет дефекты для создания реалистичного изображения. | ||
Строка 381: | Строка 391: | ||
! Модель !! Inception Score ([[Известные наборы данных#Caltech-UCSD Birds 200 (CUB)|Caltech-UCSD]]) !! Inception Score ([[Известные наборы данных#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|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" | [[#GAN-INT-CLS|GAWWN]] || style = "text-align: center" | <tex>3.70 \pm 0.04</tex> || style = "text-align: center" | <tex>-</tex> | ||
Строка 424: | Строка 434: | ||
=== TextKD-GAN === | === TextKD-GAN === | ||
− | Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время | + | Генерация текста представляет особый интерес во многих приложениях [https://en.wikipedia.org/wiki/Neuro-linguistic_programming нейролингвистического программирования] (англ. ''neuro-linguistic programming, NLP''), таких как [https://en.wikipedia.org/wiki/Machine_translation машинный перевод], моделирование языка и обобщение текста. [[Generative Adversarial Nets (GAN) | Генеративные состязательные сети]] достигли замечательного успеха в создании высококачественных изображений в [[Компьютерное зрение | компьютерном зрении]], и в последнее время GANs также вызвали большой интерес со стороны сообщества NLP. Однако достижение подобного успеха в NLP было бы более сложным из-за дискретности текста. В данной статье<ref name="TextKD-GAN">[https://arxiv.org/abs/1905.01976 Md. Akmal H. and Mehdi R.{{---}} TextKD-GAN: Text Generation using KnowledgeDistillation and Generative Adversarial Networks, 2019]</ref> вводится метод, использующий дистилляцию знаний для эффективного использования настройку GAN для генерации текста. Также показываются, как [[Автокодировщик | автокодировщики]] (англ. ''autoencoders, AEs'') могут быть использованы для обеспечения непрерывного представления предложений, которое в свою очередь представляет собой гладкое представление, присваивающее ненулевые вероятности более чем одному слову. |
− | TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с | + | TextKD-GAN представляет из себя решение для основного узкого места использования генеративных состязательных сетей для генерации текста с дистилляцией знаний: метод, переносящий знания смягченного вывода модели преподавателя в модель студента. Решение основано на AE (учителе), чтобы получить гладкое представление реального текста. Это гладкое представление подается в дискриминатор TextKD-GAN вместо обычного однократного представления. Генератор (студент) пытается изучить многообразие смягченного гладкого представления AE. TextKD-GAN, в конечном итоге, будет превосходить обычный генератор текста на основе GAN, который не нуждается в предварительной подготовке. |
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN_Model.png|thumb|center|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]</div> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:TextKD-GAN_Model.png|thumb|center|x400px|Рисунок 27.<ref name="TextKD-GAN"/> Модель TextKD-GAN для генерации текста.]]</div> | ||
− | В общепринятом текстовом распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]). Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. | + | В общепринятом текстовом подходе к распознавании, реальные и сгенерированные входные данные дискриминатора будут иметь разные типы ([https://en.wikipedia.org/wiki/One-hot one-hot] и [https://en.wikipedia.org/wiki/Softmax_function softmax]), и он может обыкновенно отличить их друг от друга. Один из способов избежать этой проблемы состоит в получении непрерывно гладкого представление слов, а не one-hot представления, и обучении дискриминатора различать их. Здесь используется общепринятый атокодировщик (учитель), чтобы заменить one-hot представление выходом, перестроенным softmax-функцией, который является представлением, дающим меньшую дисперсию градиентов. Предложенная модель изображена на рисунке 27. Как видно, вместо one-hot представления реальных слов смягченный реконструированный выход автокодировщика подается на вход дискриминатору. Эта техника значительно усложняет распознавание для самого дискриминатора. Генератор GAN с softmax выходом пытается имитировать распределение выходного сигнала автокодировщика вместо общепринятого one-hot представления. |
Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена: | Обучение автокодировщика и TextKD-GAN происходит одновременно. Чтобы добиться этого, необходимо раздробить целевую функцию на три члена: | ||
Строка 471: | Строка 481: | ||
=== LayoutVAE === | === LayoutVAE === | ||
− | Модели, используемые для | + | Модели, используемые для генерации макетов сцен из текстовых описаний по большей части игнорируют возможные визуальные вариации внутри структуры, описываемой самим текстом. |
− | '''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder | + | '''Макетный вариационный автокодировщик''' (англ. ''Layout variational autoencoder (LayoutVAE)'') {{---}} фреймворк, базирующийся на [[Вариационный автокодировщик | вариационном автокодировщике]] для генерации стохастических макетов сцен (англ. ''stochastic scene layouts'') {{---}} есть разносторонняя программная платформа моделирования, позволяющая генерировать либо полные макеты изображений с заданным набором меток, либо макеты меток для существующего изображения с заданной новой меткой. Вдобавок, она также способна обнаруживать необычные макеты, потенциально открывая пути к решению проблемы генерации макетов. |
− | + | Будем рассматривать задачу генерации сцен с описанием набора меток. Набор меток, представленный как более слабое описание, всего лишь предоставляет множество меток, присутствующих в данном изображении без дополнительного описания взаимосвязи, заставляя модель изучать пространственные и подсчитываемые отношения (англ. ''spatial and count relationships'') на основе визуальных данных. | |
− | Касательно | + | Касательно описанных проблем предлагаются следующие решения: |
* Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами. | * Модель стохастических генераций макетов сцен с заданным множеством меток, которая будет иметь две компоненты: моделирование распределений подсчитываемых отношений между объектами; моделирование распределений пространственных отношений между объектами. | ||
* Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен. | * Синтетический набор данных, MNIST-макеты, отражающие стохастическую природу генерации макета сцен. | ||
Строка 483: | Строка 493: | ||
<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> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAE.png|thumb|center|x350px|Рисунок 25.<ref name="LayoutVAE"/> Архитектура LayoutVAE.]]</div> | ||
− | В статье<ref name="LayoutVAE">[https://openaccess.thecvf.com/content_ICCV_2019/papers/Jyothi_LayoutVAE_Stochastic_Scene_Layout_Generation_From_a_Label_Set_ICCV_2019_paper.pdf LayoutVAE: Stochastic Scene Layout Generation From a Label Set]</ref> были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <b>PNP-Net</b> {{---}} фреймворк вариационного автокодировщика для | + | В статье<ref name="LayoutVAE">[https://openaccess.thecvf.com/content_ICCV_2019/papers/Jyothi_LayoutVAE_Stochastic_Scene_Layout_Generation_From_a_Label_Set_ICCV_2019_paper.pdf LayoutVAE: Stochastic Scene Layout Generation From a Label Set]</ref> были предложены фреймворки и структуры моделей, взаимодействующие с LayoutVE, такие как: <b>PNP-Net</b> {{---}} фреймворк вариационного автокодировщика для генерации изображения абстрактной сцены из текстовой программы, полностью описывающей её (помимо того, что это {{---}} стохастическая модель для генерации, она была протестирована на синтетических наборах данных с малым числом классов); <b>LayoutGAN</b> {{---}} модель, основанная на [[Generative Adversarial Nets (GAN) | генеративных состязательных сетях]], генерирующая макеты графических элементов (прямоугольники, треугольники, и так далее); VAE-базированный фреймворк, кодирующий объект и информацию о макете 3D-сцен в помещении в скрытом коде; и так далее... |
+ | |||
+ | Обучение генеративных моделей нужно, чтобы предсказать разнообразные, но правдоподобные наборы ограничивающих рамок, учитывая набор меток в качестве входных данных. Рамки в наборе представлены верхними левыми координатами, шириной и высотой <tex>i</tex>-й ограничивающей рамки категории <tex>k</tex>. LayoutVAE естественным образом декомпозируется на модель для предсказания количества для каждой заданной метки {{---}} <b>CountVAE</b> {{---}} и другая для предсказания местоположения и размера каждого объекта {{---}} <b>BBoxVAE</b>. | ||
− | + | Имея набор меток <tex>L</tex> и количество объектов в категории <tex>\left\{ n_m : m \in L \right\}</tex>, BBoxVAE предсказывает распределение координат для ограничивающих рамок авторегрессионно. Мы следуем тому же предопределенному порядку меток, что и в CountVAE, в пространстве меток, и упорядочиваем ограничивающие рамки слева направо для каждой метки; <b>все ограничивающие рамки предсказываются перед переходом к следующей метке.</b> | |
− | |||
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAEGeneration.png|thumb|center|x350px|Рисунок 26.<ref name="LayoutVAE"/> Генерация по множеству меток <tex>\{person, sea, surfboard\}</tex>.]]</div> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:LayoutVAEGeneration.png|thumb|center|x350px|Рисунок 26.<ref name="LayoutVAE"/> Генерация по множеству меток <tex>\{person, sea, surfboard\}</tex>.]]</div> | ||
=== MCA-GAN === | === MCA-GAN === | ||
− | Преобразование изображений перекрестным видом (англ. ''cross-view image translation'') проблематично, поскольку оно оперирует изображениями со значительно отличающимися | + | Преобразование изображений перекрестным видом (англ. ''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'') подаются на вход циклической семантически-управляемой | + | # Изображение и целевое семантическое отображение (англ. ''target semantic map'') подаются на вход циклической семантически-управляемой генерационной сети (англ. ''cycled semantic-guided generation network'') для получения начальных результатов. |
# Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. ''multi-channel attention selection mechanism''). | # Начальные результаты уточняются, используя механизм мультиканального выделения внимания (англ. ''multi-channel attention selection mechanism''). | ||
Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://www.crcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)]</ref> показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы. | Обширные эксперименты на наборах данных Dayton, CVUSA<ref>[http://mvrl.cs.uky.edu/datasets/cvusa/ Crossview USA (CVUSA)]</ref> и Ego2Top<ref>[https://www.crcv.ucf.edu/projects/ego2top/index.php Ego2Top: Matching Viewers in Egocentric and Top-view Videos (ECCV 2016)]</ref> показывают, что данная модель способна генерировать значительно более качественные результаты, чем другие современные методы. | ||
Строка 499: | Строка 510: | ||
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAD.png|thumb|center|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]</div> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAD.png|thumb|center|x300px|Рисунок 29.<ref name="MCA-GAN"/> Архитектура MCA-GAD.]]</div> | ||
− | На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из | + | На рисунке 29 проиллюстрирована структура сети. Первый этап, как было описано выше, состоит из каскадной семантически-управляемой генерацинной подсети, использующая изображения с одном представлении и условные семантические отображения в другом представлении в качестве входных данных и реконструирующая эти изображения в другом представлении. Результирующие изображения далее подаются на вход семантическому генератору для восстановления исходного семантического отображения, формируя цикл генерации. Второй этап заключается в том, что грубый синтез (англ. ''coarse synthesis'') и глубокие характеристики объединяются и передаются в модуль мультиканального выделения внимания, направленный на получение более детализированного синтеза (англ. ''fine-grained synthesis'') из большего пространства генерации и создание отображений неопределенности (англ. ''uncertainty maps'') для управления множественными потерями оптимизации (англ. ''optimization losses''). |
+ | |||
+ | Модуль мультиканального выделения внимания в свою очередь состоит из многомасштабного пространственного пулинга (англ. ''multiscale spatial pooling'') и компоненты мультиканального выделения внимания (англ. ''multichannel attention selection component''). | ||
− | Поскольку между | + | Поскольку между изначальной перспективой и результирующей существует объемная деформация объекта и/или сцены, одномасштабная характеристика (англ. ''single-scale feature'') вряд ли сможет захватить всю необходимую информацию о пространстве для детализированной генерации. Многомасштабный пространственный пулинг оперирует же другими значениями размера ядра и шага для выполнения глобального среднего пулинга (англ. ''global average pooling'') на одних и тех же входных характеристиках, тем самым получая многомасштабные характеристики с отличающимися рецептивными полями (англ. ''receptive fields'') для восприятия различных пространственных контекстов. Механизм мультиканального внимания позволяет осуществлять выполнение пространственного и временного отбора (англ. ''spatial and temporal selection''), чтобы синтезировать конечный детализированный результат. |
<div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</div> | <div class="oo-ui-panelLayout-scrollable" style="display: block; vertical-align:middle; height: auto; width: auto;">[[Файл:MCA-GAN_Module.png|thumb|center|x400px|Рисунок 30.<ref name="MCA-GAN"/> Архитектура модуля мультиканального выделения внимания (англ. ''multi-channel attention selection module'').]]</div> |