ИИ 101
Что такое Генеративная Соперничающая Сеть (GAN)?

Генеративные Соперничающие Сети (GANs) являются типами архитектур нейронных сетей способными генерировать новые данные, которые соответствуют выученным закономерностям. GANs могут быть использованы для генерации изображений человеческих лиц или других объектов, для выполнения перевода текста в изображение, для преобразования одного типа изображения в другой и для повышения разрешения изображений (супер-разрешение) среди других применений. Поскольку GANs могут генерировать совершенно новые данные, они находятся на переднем крае многих передовых систем, приложений и исследований ИИ. Однако, как именно работают GANs? Давайте рассмотрим, как функционируют GANs и посмотрим на некоторые из их основных применений.
Определение Генеративных Моделей и GANs
GAN является примером генеративной модели. Большинство моделей ИИ можно разделить на две категории: обученные и необученные модели. Модели обучения с учителем обычно используются для различения между различными категориями входных данных, для классификации. Напротив, необученные модели обычно используются для суммирования распределения данных, часто изучая гауссово распределение данных. Поскольку они изучают распределение набора данных, они могут извлекать образцы из этого изученного распределения и генерировать новые данные.
Различные генеративные модели имеют разные методы генерации данных и расчета вероятностных распределений. Например, модель Нейв Байес работает путем расчета вероятностного распределения для различных входных признаков и генеративного класса. Когда модель Нейв Байес делает прогноз, она рассчитывает наиболее вероятный класс, принимая вероятность различных переменных и объединяя их вместе. Другие не-глубокие модели обучения включают Гауссовы Смеси Моделей и Латентную Дирхле Альлокацию (LDA). Глубокие модели обучения включают Ограниченные Болцмановские Машины (RBMs), Вариационные Автоэнкодеры (VAEs) и, конечно, GANs.
Генеративные Соперничающие Сети были предложены Иэном Гудфеллоу в 2014 году, и они были улучшены Алексом Редфордом и другими исследователями в 2015 году, что привело к стандартизированной архитектуре для GANs. GANs на самом деле состоят из двух разных сетей, соединенных вместе. GANs состоят из двух частей: генеративной модели и дискриминационной модели, также называемой генератором и дискриминатором.
Архитектура GAN
Генеративные Соперничающие Сети построены из генеративной модели и дискриминационной модели, соединенных вместе. Задача генеративной модели – создать новые примеры данных, основанные на закономерностях, которые модель выучила из обучающих данных. Задача дискриминационной модели – проанализировать изображения (предполагая, что она обучена на изображениях) и определить, являются ли изображения сгенерированными/фальшивыми или подлинными.

Две модели противопоставляются друг другу, обучаются в игровой теоретической манере. Цель генеративной модели – производить изображения, которые обманывают ее противника – дискриминационную модель. Тем временем, задача дискриминационной модели – преодолеть своего противника, генеративную модель, и поймать фальшивые изображения, которые генерирует генератор. То, что модели противопоставляются друг другу, приводит к соревнованию, где обе модели улучшаются. Дискриминатор получает обратную связь о том, какие изображения были подлинными, а какие были произведены генератором, в то время как генератор получает информацию о том, какие из его изображений были помечены как ложные дискриминатором. Обе модели улучшаются во время обучения, с целью обучения генеративной модели, которая может производить фальшивые данные, практически неотличимые от реальных, подлинных данных.
Как только гауссово распределение данных создано во время обучения, генеративная модель может быть использована. Генераторная модель сначала получает случайный вектор, который она преобразует на основе гауссового распределения. Другими словами, вектор инициирует генерацию. Когда модель обучена, векторное пространство будет сжатой версией, или представлением, гауссового распределения данных. Сжатая версия распределения данных называется латентным пространством или латентными переменными. Позже модель GAN может затем взять представление латентного пространства и извлечь точки из него, которые могут быть даны генеративной модели и использованы для генерации новых данных, очень похожих на обучающие данные.
Дискриминационная модель получает примеры из всего обучающего домена, который состоит из как реальных, так и сгенерированных данных. Реальные примеры содержатся в обучающем наборе данных, в то время как фальшивые данные производятся генеративной моделью. Процесс обучения дискриминационной модели идентичен базовому обучению бинарной классификации.
Процесс Обучения GAN
Давайте рассмотрим весь процесс обучения процесса для гипотетической задачи генерации изображений.
Для начала GAN обучается с использованием подлинных, реальных изображений в качестве части обучающего набора данных. Это задает дискриминационную модель для различения между сгенерированными и реальными изображениями. Это также производит распределение данных, которое генератор будет использовать для производства новых данных.
Генератор принимает вектор случайных числовых данных и преобразует их на основе гауссового распределения, возвращая изображение. Это сгенерированное изображение, вместе с некоторыми подлинными изображениями из обучающего набора данных, подается в дискриминационную модель. Дискриминатор производит вероятностный прогноз о природе изображений, которые он получает, выводя значение между 0 и 1, где 1 обычно является подлинным изображением, а 0 – фальшивым изображением.

Существует двойная обратная связь, поскольку дискриминатор получает обратную связь о подлинности изображений, в то время как генератор получает обратную связь о своей производительности от дискриминатора.
Генеративная и дискриминационная модели играют в нулевую сумму игры друг с другом. Нулевая сумма игры – это игра, в которой выигрыши одной стороны происходят за счет другой стороны (сумма равна нулю). Когда дискриминационная модель успешно различает между реальными и фальшивыми примерами, никаких изменений не вносятся в параметры дискриминатора. Однако, большие обновления делаются в параметрах модели, когда она не может различать между реальными и фальшивыми изображениями. Обратное верно для генеративной модели, она наказывается (и ее параметры обновляются), когда она не может обмануть дискриминационную модель, но в противном случае ее параметры не меняются (или она награждается).
Идеально, генератор способен улучшить свою производительность до точки, где дискриминатор не может различать между фальшивыми и реальными изображениями. Это означает, что дискриминатор будет всегда производить вероятности 50% для реальных и фальшивых изображений, что означает, что сгенерированные изображения должны быть практически неотличимы от подлинных изображений. На практике GANs обычно не достигают этой точки. Однако, генеративная модель не нуждается в создании идеально похожих изображений, чтобы быть полезной для многих задач, для которых используются GANs.
Применения GAN
GANs имеют ряд различных применений, большинство из которых связано с генерацией изображений и компонентов изображений. GANs обычно используются в задачах, где необходимые изображения отсутствуют или ограничены, как метод генерации необходимых данных. Давайте рассмотрим некоторые общие случаи использования GANs.
Генерация Новых Примеров Для Наборов Данных
GANs могут быть использованы для генерации новых примеров для простых наборов изображений. Если у вас есть только несколько обучающих примеров и вам нужно больше, GANs могут быть использованы для генерации новых обучающих данных для классификатора изображений, генерируя новые обучающие примеры в разных ориентациях и углах.
Генерация Уникальных Человеческих Лиц

Женщина на этом фото не существует. Изображение было сгенерировано StyleGAN. Фото: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Когда достаточно обучены, GANs могут быть использованы для генерации очень реалистичных изображений человеческих лиц. Эти сгенерированные изображения могут быть использованы для помощи в обучении систем распознавания лиц.
Перевод Изображения В Изображение
GANs отлично справляются с переводом изображений. GANs могут быть использованы для окраски черно-белых изображений, перевода эскизов или рисунков в фотографические изображения или преобразования изображений из дня в ночь.
Перевод Текста В Изображение
Перевод текста в изображение возможен с помощью GANs. Когда предоставлен текст, который описывает изображение, и сопровождающее изображение, GAN может быть обучен для создания нового изображения, когда предоставлено описание желаемого изображения.
Редактирование И Исправление Изображений
GANs могут быть использованы для редактирования существующих фотографий. GANs удаляют элементы, такие как дождь или снег, из изображения, но они также могут быть использованы для исправления старых, поврежденных изображений или поврежденных изображений.
Супер-Разрешение
Супер-разрешение – это процесс, который заключается в том, чтобы взять изображение с низким разрешением и вставить больше пикселей в изображение, улучшая разрешение изображения. GANs могут быть обучены для взятия изображения и генерации изображения с более высоким разрешением.






