ANALYSIS AND APPLICATION OF GENERATIVE-ADEVERSARIAL NETWORKS FOR PRODUCING HIGH QUALITY IMAGES
Abstract and keywords
Abstract (English):
The article discusses generative adversarial networks for obtaining high quality images. Models, architecture and comparison of network operation are presented. The features of building deep learning models in the process of performing the super-resolution task, as well as methods associated with improving performance, are considered.

Keywords:
neuralnetwork, highresolution, generation, deeplearning, images
Text
Publication text (PDF): Read Download

Генеративные состязательные нейронные сети (generative adversarial network, GAN) – это модель порождения данных, фактически построенная на основе двух моделей, состя-зающихся между собой в своеобразной игре. Этими двумя «игроками» является генератор и дискриминатор (Ч. Аггарвал [1], С. Нико-ленко, А. Кадурин, Е. Арханнгельская [3], G. Box, G. Jenkins [6], A.Tsantekidisи др.[10]).
Как правило генеративно-состязательные сети используют для генерирования объектов изображения с различными типами контекста. В настоящее время наиболее распространен-ной сферой применения GAN является обра-ботка изображений. Сеть-генератор предна-значенную для работы в этих условиях, назы-вают сетью обращения свертки, или деконво-люционной сетью (deconvolution network). Наиболее популярные способы создания де-конволюционных сетей для GAN обсуждают-
ся в целом ряде работ [4, 5, 8, 11, 12 и др.].
Спектр использования GANдостаточно широк[1, 4, 7, 8, 9, и др.] в данной статье рас-смотрены модели GAN глубокого обучения направленные на получение изображений с высоким качеством разрешения изображений.
Чтобы понять GAN, необходимо знать, как работают генеративные алгоритмы, и для это-го полезно сравнивать их с дискримина-ционными алгоритмами. Дискриминационные алгоритмы пытаются классифицировать вход-ные данные, то есть, учитывая особенности экземпляра данных, они предсказывают метку или категорию, к которой относятся эти данные.
Например, учитывая все слова в электрон-ном письме (экземпляр данных), дискрими-национный алгоритм может предсказать, яв-ляется ли сообщение спамом или не спамом. Cпам - это одна из меток, а пакет слов, соб-ранных из электронного письма, - это функ-ции, которые составляют входные данные. Когда эта проблема выражена математически, метка называется y, а функции - x. Формули-ровка p (y | x) используется для обозначения «вероятности y при заданном x», что в этом случае будет означать «вероятность того, что электронное письмо является спамом с учетом содержащихся в нем слов».
Таким образом, дискриминационные алго-ритмы отображают характеристики на метки. Они касаются исключительно этой взаимо-связи. Один из способов понять генеративные алгоритмы состоит в том, что они делают про-тивоположное. Вместо того, чтобы предска-зывать метку на основе определенных функ-ций, они пытаются предсказать особенности на основе определенной метки [2].
Вопрос, на который пытается сгенериро-вать генеративный алгоритм, заключается в следующем: если предположить, что это пись-мо является спамом, насколько вероятны эти функции? В то время как дискриминационные модели заботятся о связи между y и x, генеративные модели заботятся о том, «как получается x». Они позволяют захватить p (x | y), вероятность x, заданную y, или вероятность признаков, заданных меткой или категория. (Тем не менее, генеративные алгоритмы также могут использоваться в качестве классификаторов. Просто так получается, что они могут делать больше, чем классифицировать входные данные.)
Следует отличать дискриминационные мо-дели от генеративных:
- Дискриминационные модели учат границу между классами.
- Генеративные модели моделируют рас-пределение отдельных классов.
Одна нейронная сеть, называемая генерато-ром, генерирует новые экземпляры данных, а другая, дискриминатор, оценивает их на под-линность; то есть дискриминатор решает, при-надлежит ли каждый экземпляр данных, которые он просматривает, к фактическому набору данных или нет.
Например сгенерировать рукописные циф-ры, подобные тем, которые находятся в набо-ре данных MNIST, взятом из реального мира. Цель дискриминатора, когда показан экземп-ляр из истинного набора данных MNIST - рас-познать подлинные.
Тем временем генератор создает новые синтетические изображения, которые он пере-дает дискриминатору. Это делается в надежде, что они тоже будут считаться подлинными, даже если они являются поддельными. Цель генератора - генерировать проходимые рукописные цифры: лгать, не быть пойманным. Цель дискриминатора состоит в том, чтобы идентифицировать изображения, поступающие от генератора, как поддельные. [1]
Шаги предпринимаемые GAN:
Генератор принимает случайные числа и возвращает изображение.
Это сгенерированное изображение подается в дискриминатор вместе с потоком изобра-жений, взятых из фактического набора данных с истинным основанием.
Дискриминатор принимает как реальные, так и поддельные изображения и возвращает вероятности, числа от 0 до 1, где 1 представля-ет прогноз подлинности, а 0 - поддельный.
Итак, есть двойной цикл обратной связи:
Дискриминатор находится в петле обрат-ной связи с основополагающей правдой изо-бражений, которые мы знаем.
Генератор находится в контуре обратной связи с дискриминатором.
На рисунке 1 представлена принципиальная схема GAN.
Можно представить GAN как противо-действие фальшивомонетчику и полицейско-му в игре в кошки-мышки, где фальшивомо-нетчик учится передавать фальшивые заметки, а полицейский учится их обнаруживать. Оба являются динамическими; то есть, полицейский тоже обучается (для продолжения аналогии, может быть, центральный банк отмечает пропущенные векселя), и каждая сторона постоянно изучает методы другой.
Для MNIST сеть дискриминатора представ-ляет собой стандартную сверточную сеть, ко-торая может классифицировать поступающие в нее изображения, а биномиальный класси-фикатор маркирует изображения как реальные или поддельные. Генератор представляет собой инверсную сверточную сеть, в некотором смысле: в то время как стандартный сверточный классификатор берет изображение и уменьшает частоту его дискретизации для получения вероятности, генератор берет вектор случайного шума и увеличивает частоту дискретизации его до изображения. Первый отбрасывает данные с помощью методов понижающей дискретизации, таких как max-poo-ling, а второй генерирует новые данные [7].
Max-pooling слоев - это «уменьшение». Оно позволяют более поздним сверточным слоям
работать на больших участках данных, потому что небольшие патчи после слоя объединения соответствует гораздо большему патчу перед ним. Они также делают нас инвариантными к некоторым очень небольшим преобразованиям данных.
 

 

Рис.1. Принципиальная схема генеративно-состязательной сети

 
Обе сети пытаются оптимизировать другую и противоположную целевую функцию или функцию потерь в игре с нулевым размахом. По сути, это модель актер-критик. Как дис-криминатор меняет свое поведение, так и ге-нератор, и наоборот. Их потери давят друг на друга.
Когда обучается дискриминатор, значения генератора держатся постоянными и когда тренируется генератор, постоянным держится дискриминатор. Каждый должен тренировать-ся против статического противника. Напри-мер, это дает генератору лучшее представле-ние о градиенте, которому он должен нау-читься.
Аналогичным образом, предварительная подготовка дискриминатора к MNIST перед началом обучения генератора установит более четкий градиент.
Каждая сторона GAN может одолеть дру-гую. Если дискриминатор слишком хорош, он будет возвращать значения настолько близкие к 0 или 1, что генератор будет пытаться про-читать градиент. Если генератор слишком хо-рош, он будет постоянно использовать слабо-сти в дискриминаторе, которые приводят к ложным негативам. Это может быть смягчено соответствующими темпами обучения сетей. Две нейронные сети должны иметь одинако-вый «уровень квалификации» [8].
Генеративно-состязательные сети занимают много времени на обучение. На одном графическом процессоре GAN может занять несколько часов, а на одном процессоре - более суток. Несмотря на сложность настройки и следовательно, использования, GAN стимулировали множество интересных исследований и написания.

Область применения генеративно-состязательных нейросетей

Искусственные нейронные сети доказали свою эффективность в решении многих задач, однако эта эффективность в большой мере зависит от умения подбирать правильную архитектуру сети под каждую конкретную задачу анализа данных. 
GAN имеет огромный потенциал приме-нения. Например, создание картинок для ин-тернет-магазина, аватаров для игр, видеокли-пов, сгенерированных автоматически, исходя из музыкального бита произведения, или даже виртуальных ведущих для ТВ-программ. Бла-годаря работе GAN и генеративных моделей возникает синтез данных, на которых потом будут обучаться другие системы. Этот подход уже используется в современных смартфонах и некоторых программах. Он позволяет ме-нять на фотографии выражение лица, количе-ство морщин и причёску, менять день на ночь, состаривать изображения и т.п.
Генерация потрясающе реалистичных изо-бражений знаменитостей (а на самом деле – несуществующих людей) с помощью PG GAN от nVidia. C помощью этой сети можно также генерировать изображения любых других ка-тегорий. Перенос стиля из одного изображе-ния на другое позволяет при помощи нейросе-тей делать такие впечатляющие вещи как “превратить лошадь в зебру”.
Изменение эмоций, возраста, выражения лица человека – всего этого можно достичь, правильно обучив и запрограммировав ней-ронные сети GAN. На практике это выглядит следующим образом: на входе модели подает-ся исходное фото и указывается эмоция, кото-рую нужно показать на выходе. 
Также нейронные сети GAN используют для генерации реалистичного видео городской среды. Например, при создании фильмов, игр, виртуальной реальности.
Основная идея – автоматизация производ-ства контента, который раньше требовал уси-лий дизайнеров.
Пространство возможных нейронных сетей (рис. 2), в котором ведется поиск, огромно. При проектировании нейронных сетей спе-циалисты пользуются определенными эври-стическими правилами и инструментами ди-агностики, однако полноценной методоло-гией такой поиск назвать сложно, это скорее творческий процесс [1].
 

 

Рис.2. Примеры архитектуры нейросетей

 
Супер-разрешение — это результат восста-новления изображения с высоким разрешени-ем (HR) из данного изображения с низким разрешением (LR). В статье приведены основ-ные подходы для решения задачи генерации супер-разрешения изображения с учителем. Изображение может иметь «более низкое раз-решение» из-за меньшего пространственного разрешения (то есть размера) или из-за ухуд-шения качества (такого как размытие). Мы можем связать изображения HR и LR с помо-щью следующего уравнения: 
LR = degradation(HR).
Очевидно, что при применении функции ухудшения качества мы получаем изображе-ние LR из изображения HR. Но можно сделать обратное. Если мы знаем точную функцию деградации, применяя ее инверсию к изобра-жению LR, мы можем восстановить изображе-
ние HR.
Но в этом и заключается проблема. Обычно мы не знаем эту функцию заранее. Непосред-ственная оценка обратной функции деграда-ции является некорректной задачей. Несмотря на это, методы глубокого обучения доказали свою эффективность для супер-разрешения. Используя изображение HR в качестве цели и изображение LR в качестве входных данных, можно рассматривать это как задачу обучения с учителем.
Одним из простых способов получения данных LR является ухудшение данных HR. Это часто делается с помощью размытия или добавления шума. Изображения с более низ-ким пространственным разрешением также можно масштабировать с помощью классиче-ского метода повышения дискретизации, такого как билинейная или бикубическая интерполяция. Особенности JPEG и аномалии квантования также могут быть использованы для ухудшения изображения.
Помимо классических 2D-сверток, в сетях можно использовать несколько интересных вариантов для улучшения результатов (рис. 3).
Развернутые (злокачественные) свертки мо-гут обеспечить более широкое поле зрения, то есть, использовать информацию, расположенную на большом расстоянии.
Такие приемы, как пропуск соединений, пространственный пирамидальный пуллинг и полносвязные блоки объединяют признаки как низкого, так и высокого уровня для повы-шения производительности.
 

 
Рис.3. Ряд стратегий проектирования сетей

 
В этой группе методов изображения с низ-ким разрешением сначала интерполируются для получения «грубых» изображений с большим разрешением. Теперь CNN исполь-зуются для обучения end-to-end отображения от интерполированных изображений с низким качеством до изображений с высоким качест-вом. Идея этой группы методов состоит в том, что может быть проще сначала увеличить раз-решение изображений, используя традицион-ные методы (такие как билинейная интерпо-ляция), а затем сделать результирующий ре-зультат, чем изучить прямое отображение из низкоразмерного пространства в многомерное пространство (рис. 4).
 

 
Рис.4. Обыкновенная Pre-Upsampling сеть

 
Пост-увеличение разрешения 
(Post-Upsampling)

В этом случае на CNN подаются ориги-
нальные изображения с низким разрешением. Повышение разрешения выполняется на по-следнем обучаемом слое (рис. 5).
Преимущество этого метода состоит в том, что извлечение признаков выполняется в про-странстве меньшего размера (перед повыше-нием разрешения), и, следовательно, вычисли-тельная сложность уменьшается. Кроме того, используя обучаемый слой upsampling, модель можно обучать end-to-end.

Прогрессивное увеличение разрешения (Progressive Upsampling)

В группе методов с пост-увеличением раз решения, хотя вычислительная сложность и была снижена, но использовалась только одна свертка с повышением размерности.
Это усложняет процесс обучения при больших коэффициентах масштабирования. Для устранения этого недостатка, в таких ра-ботах, как сеть Laplacian Pyramid SR (Lap SRN) и Progressive SR (Pro SR), была принята концепция прогрессивного увеличения разре-шения. Модели в этом случае используют кас-кад CNN для постепенного восстановления изображений с высоким разрешением при меньших коэффициентах масштабирования на каждом этапе (рис. 6).
 
 
Рис.5. Пост-увеличение разрешения (Post-Upsampling)

 

 
Рис. 6. Прогрессивное увеличение разрешения (Progressive Upsampling)

 
Раскладывая сложную задачу на более про-стые, трудность в обучении значительно сни-жается, и можно добиться лучшей производи-тельности. Кроме того, стратегии обучения, такие как обучение по учебному плану, могут быть интегрированы для дальнейшего сниже-ния сложности обучения и повышения итого-вой успеваемости.

Итеративное понижение и повышение разрешения

Другой популярной моделью архитектуры является структура песочных часов (или U-Net). В некоторых вариантах, таких как сеть Stacked Hourglass, используется несколько последовательных структур песочных часов, которые эффективно чередуются между процессами повышения и понижения размерности (рис. 7).
Модели в этой структуре могут лучше оп-ределить глубокие отношения между парами изображений LR-HR и, таким образом, обес-печить более качественные результаты рекон-струкции.
Не редкой в GAN используются ошибки текстуры. Чтобы позволить сгенерированному изображению иметь тот же стиль (текстуру, цвет, контраст и т.д.), что и у настоящего изо-бражения, используется вычисление ошибки текстуры (или ошибка реконструкции стиля). Текстура изображения, определяется как кор-реляция между различными характерными каналами. Каналы объектов обычно получают из карт признаков, извлеченных с использованием предварительно обученной сети классификации изображений (Φ).
 .
 

 

Рис. 7. Структура песочных часов или U-Net

 
Корреляция между картами признаков представлена матрицей Грама (G), которая является внутренним произведением между векторизованными картами объектов i и j на слое l. Как только матрица Грамма рассчитана для обоих изображений, вычисляется ошибка текстуры:
 

 

 
Используя эту ошибку, модель мотивирует-ся создавать реалистичные текстуры и визу-ально более удовлетворительные результаты [7].
Ошибка суммарного отклонения (TV) ис-пользуется для подавления шума в сгенериро-ванных изображениях. Он берет сумму абсо-лютных разностей между соседними пикселя-ми и измеряет, сколько шума на изображе-нии.Для сгенерированного изображения ошибки TV рассчитываются, как показано ниже:
 

 

 
Здесь i, j, k перебирает высоту, ширину и каналы соответственно.
Один большой вопрос заключается в том, как можно количественно оценить производи-тельность модели. Ряд методов оценки каче-ства изображения (IQA) (или метрики) ис-пользуются для одного и того же. Эти метри-ки можно в целом классифицировать на две категории -  субъективные метрики и объек-тивные метрики.
Субъективные метрики основаны на оценке восприятия человеком-наблюдателем, тогда как объективные метрики основаны на вычислительных моделях, которые пытаются оценить качество изображения. Субъективные метрики часто являются более «точными для восприятия», однако некоторые из этих мет-рик неудобны, трудоемки или дороги для вы-числения. Другая проблема заключается в том, что эти две категории метрик могут не соответствовать друг другу. Следовательно, исследователи часто анализируют результаты, используя метрики из обеих категорий.

PSNR

Пиковое отношение сигнал/шум (PSNR) — это обычно используемая объективная метри-ка для измерения качества восстановления преобразования с потерями. PSNR обратно пропорционально логарифму средней квадра-тичной ошибки (MSE) между настоящим и сгенерированным изображением.
 
В приведенной выше формуле L — макси-мально возможное значение пикселя (для 8-битных изображений RGB — 255). Неудиви-тельно, что, поскольку PSNR заботится только о разнице между значениями пикселей, он не так хорошо отражает воспринимаемое качест-во.

SSIM

Структурное сходство (SSIM) — это субъ-ективная метрика, используемая для измере-ния структурного сходства между изображе-ниями на основе трех относительно независи-мых сравнений, а именно: яркости, контраст-ности и структуры.Абстрактно, формула SSIM может быть показана как взвешенное произведение яркости, контраста и структуры, вычисленных независимо.
 

 

 
В приведенной выше формуле альфа, бета и гамма являются весами функций сравнения яркости, контраста и структуры соответствен-но. Обычно используемое представление формулы SSIM показано ниже:
 

 

 
В приведенной выше формуле μ(I) пред-ставляет среднее значение конкретного изо-бражения, σ(I) представляет стандартное от-клонение конкретного изображения, σ(I, I’) представляет ковариацию между двумя изо-бражениями и C1, C2 задают константы, что-бы избежать нестабильности. Структурное сходство может быть использовано при реше-нии инженерных, эргономических и дизайнерских творческих задач [8].

Заключение и выводы

Из-за возможного неравномерного распре-деления статистических характеристик или искажений изображения локальная оценка качества изображений надежнее, чем его оценка в глобальном масштабе. Среднее значение SSIM (MSSIM), которое разбивает изображение на несколько окон и усредняет значение SSIM, полученное в каждом окне, является одним из таких методов оценки качества на локальном уровне.
В любом случае, SSIM оценивает качество реконструкции с точки зрения зрительной системы человека, эта метрика лучше соответствует требованиям оценки восприятия.
В статье были рассмотрены некоторые вводные материалы и процедуры обучения моделей глубокого обучения для выполнения задачи супер-разрешения. Были рассмотрен-ные методики, которые могут дать лучшую производительность супер-разрешения без учителя, лучших методов нормализации и лучших репрезентативных метрик, которые могут значительно расширить область пони-мания генеративно-состязательных сетей. Перспективным направлением исследования является анализ.
 

References

1. Aggarwal, Ch. Neural networks and deep learning: course English [Text] / Ch. Aggarwal. – SPb: LLC “Dialectic”, 2020. – 752p. - ISBN 978-5-907203-01-3.

2. Zhadaev, D. S. Features neural network analysis of level of preparation of students in the process of adaptive testing of their professional competence [Text] / D. S. Zhadaev, A. A. Kuzmenko, V. V. Spasennov // Bulletin of the Bryansk state technical University. – 2019. - №2 (75). – P. 90-98.

3. Nikolenko, S. Deep learning. Immersion in the world of neural networks [Text] / S. Nikolenko, A. Kadurin, E. Arkhangelskaya. - SPb.: Publishing house "Peter", 2018. – 482 p.

4. Patent RU 2309457 Model of the neural network IPCG06N3/06 / K. N. Shevchenko, N. V. Shevchenko, B. V. Shulgin Priority 06.05.2006, published 27.10.2007, BI. no. 30.

5. Goodfellow, I. J. Generative competitive networks, in: Advances in neural information processing systems [Text] / I. J. Goodfellow, J. Pouge-Abadi, M. Mirza, B. Xu, D. Ward-Farley, S. Ozer, A. S. Courville, Y. Benjio // 27th annual conference on neural systems. - 2014. – P. 2672-2680.

6. Box, J. Analysis of time series: forecasting and control [Text] / J. Box, D. M. Jenkins // Journal of Time. - No. 31. – 1976. – C. 238-242.

7. Ding, X. Deep learning for predicting stocks based on events, in: Proceedings of the Twenty-fourth International joint conference on artificial intelligence [Text] / H. Ding, Yu. Zhang, T. Liu, J. Duan // IJCAI, 2015. – P. 2327-2333.

8. Sinyu, Zhi, Stock market forecast. High-frequency data using generative adversarial networks [Text] / Zh. Sinyu, P. Zhixun, H. Guyu, T. Siqi, Ch. Zhao // Mathematical problem. Engineering. – 2018. – P. 7-10.

9. Razer, A.M. Recurrent neural network and hybrid model for predicting stock returns [Text] / A.M. Razer, A. Agarwal, V. N. Sastri // Expert system. Appl., - №42. – 2015. - P. 3234-3241

10. Tsantekidis, A. Forecasting stock prices from the book of limit orders using convolutional neural networks [Text] / A. Tsantekidis, N. Passalis, A. Tefas, J. Kanniainen, M. Gabbudzh, A. Iosifidis // 19-e. IEEE conference on business Informatics, CBI 2017. – P. 7-12.

11. Zeiler, M. Visualising and understanding convolution networks. European Conference on Computer Vision [Electronic resource] / M. Zeiler, R. Fergus. – URL: https://arxiv.org/pdf/1311.2901.pdf (accessed 29.09.2020).

12. Zhang, H. Character-level convolutional networks for text classification [Text] / H. Zhang, J. Zhao, Y. Le Cun // NIPS Conference. – 2015. - C. 649-657.