заглушки Что такое генеративно-состязательная сеть (GAN)? - Unite.ИИ
Свяжитесь с нами:
Мастер-класс по ИИ:

AI 101

Что такое генеративно-состязательная сеть (GAN)?

mm
обновленный on

Генеративные состязательные сети (GAN) являются типами архитектур нейронных сетей способный генерировать новые данные который соответствует выученным образцам. Сети GAN можно использовать для создания изображений человеческих лиц или других объектов, для преобразования текста в изображение, для преобразования одного типа изображения в другой и для повышения разрешения изображений (суперразрешение) среди других приложений. Поскольку GAN могут генерировать совершенно новые данные, они стоят во главе многих передовых систем искусственного интеллекта, приложений и исследований. Но как именно работают GAN? Давайте рассмотрим, как работают GAN, и рассмотрим некоторые из их основных применений.

Определение генеративных моделей и GAN

GAN является примером генеративной модели. Большинство моделей ИИ можно разделить на две категории: контролируемые и неконтролируемые модели. Модели контролируемого обучения обычно используются для различения различных категорий входных данных для их классификации. Напротив, неконтролируемые модели обычно используются для обобщения распределения данных, часто обучая Гауссово распределение данных. Поскольку они изучают распределение набора данных, они могут извлекать образцы из этого изученного распределения и генерировать новые данные.

Различные генеративные модели имеют разные методы генерации данных и расчета распределения вероятностей. Например, Наивная байесовская модель работает путем вычисления распределения вероятностей для различных входных признаков и генеративного класса. Когда наивная байесовская модель выдает прогноз, она вычисляет наиболее вероятный класс, взяв вероятности различных переменных и объединив их вместе. Другие генеративные модели без глубокого обучения включают модели гауссовой смеси и скрытое распределение Дирихле (LDA). Генеративные модели, основанные на глубоком подходе включают Ограниченные машины Больцмана (RBM), Вариационные автоэнкодеры (VAE), и, конечно же, ГАН.

Генеративно-состязательные сети были впервые предложен Яном Гудфеллоу в 2014 г., и они были улучшены Алеком Редфордом и другими исследователями в 2015 году, что привело к стандартизированной архитектуре для GAN. GAN на самом деле представляют собой две разные сети, объединенные вместе. GAN являются состоит из двух половинок: модель генерации и модель дискриминации, также называемые генератором и дискриминатором.

Архитектура ГАН

Генеративно-состязательные сети построенный из модели генератора и модели дискриминатора, вместе взятых. Задача модели-генератора состоит в том, чтобы создавать новые примеры данных на основе шаблонов, которые модель усвоила из обучающих данных. Задача модели дискриминатора состоит в том, чтобы анализировать изображения (при условии, что она обучена на изображениях) и определять, являются ли изображения сгенерированными/фальшивыми или подлинными.

Две модели соревнуются друг с другом, обученные теоретико-игровой манере. Цель модели генератора — создавать изображения, обманывающие противника — модель дискриминатора. Между тем, работа модели дискриминатора состоит в том, чтобы преодолеть своего противника, модель генератора, и поймать поддельные изображения, которые производит генератор. Тот факт, что модели противопоставляются друг другу, приводит к гонке вооружений, в которой улучшаются обе модели. Дискриминатор получает обратную связь о том, какие изображения были подлинными, а какие изображения были созданы генератором, в то время как генератор получает информацию о том, какие из его изображений были помечены дискриминатором как ложные. Обе модели улучшаются во время обучения с целью обучения модели генерации, которая может создавать поддельные данные, которые в основном неотличимы от реальных, подлинных данных.

После создания гауссовского распределения данных во время обучения можно использовать генеративную модель. В модель генератора изначально подается случайный вектор, который он преобразует на основе распределения Гаусса. Другими словами, вектор порождает поколение. Когда модель обучена, векторное пространство будет сжатой версией или представлением гауссовского распределения данных. Сжатая версия распределения данных называется скрытым пространством или скрытыми переменными. Позже модель GAN может взять представление скрытого пространства и извлечь из него точки, которые можно передать модели генерации и использовать для генерации новых данных, очень похожих на обучающие данные.

Модель дискриминатора получает примеры из всей области обучения, состоящей как из реальных, так и из сгенерированных примеров данных. Настоящие примеры содержатся в обучающем наборе данных, а поддельные данные создаются генеративной моделью. Процесс обучения модели дискриминатора точно такой же, как и базовое обучение модели бинарной классификации.

Учебный процесс ГАН

Давайте посмотрим на весь обучение процесс для гипотетической задачи генерации изображения.

Начнем с того, что GAN обучается с использованием подлинных, реальных изображений как части набора обучающих данных. Это настраивает модель дискриминатора, чтобы различать сгенерированные изображения и реальные изображения. Он также создает распределение данных, которое генератор будет использовать для создания новых данных.

Генератор берет вектор случайных числовых данных и преобразует их на основе распределения Гаусса, возвращая изображение. Эти сгенерированные изображения вместе с некоторыми подлинными изображениями из набора обучающих данных передаются в модель дискриминатора. Дискриминатор выдает вероятностный прогноз о характере получаемых изображений, выводя значение от 0 до 1, где 1 обычно соответствует подлинному изображению, а 0 — поддельному изображению.

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

Генеративная и дискриминационная модели играют друг с другом в игру с нулевой суммой. Игра с нулевой суммой — это игра, в которой выигрыш одной стороны достигается за счет другой стороны (сумма обоих действий равна нулю). Когда модель дискриминатора способна успешно различать настоящие и поддельные примеры, в параметры дискриминатора не вносятся никакие изменения. Однако в параметры модели вносятся большие обновления, когда она не может отличить настоящие изображения от поддельных. Обратное верно для генеративной модели: она наказывается (и ее параметры обновляются), когда ей не удается обмануть дискриминационную модель, но в противном случае ее параметры не изменяются (или вознаграждается).

В идеале генератор может улучшить свою производительность до такой степени, что дискриминатор не сможет отличить поддельные изображения от реальных. Это означает, что дискриминатор всегда будет отображать вероятности 50% для реальных и поддельных изображений, а это означает, что сгенерированные изображения должны быть неотличимы от подлинных изображений. На практике GAN обычно не достигают этой точки. Однако генеративной модели не нужно создавать совершенно похожие изображения, чтобы по-прежнему быть полезной для многих задач, для которых используются GAN.

Приложения ГАН

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

Создание новых примеров для наборов данных

GAN можно использовать для создания новых примеров для простых наборов данных изображений. Если у вас есть только несколько обучающих примеров и вам нужно больше, GAN можно использовать для создания новых обучающих данных для классификатора изображений, создавая новые обучающие примеры с разными ориентациями и углами.

Создание уникальных человеческих лиц

Женщин на этом фото не существует. Изображение было сгенерировано StyleGAN. Фото: Owlsmcgee через Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

При достаточном обучении GAN можно использовать для создавать чрезвычайно реалистичные изображения человеческих лиц. Эти сгенерированные изображения можно использовать для обучения систем распознавания лиц.

Преобразование изображения в изображение

Gans преуспеть в переводе изображений. GAN можно использовать для раскрашивания черно-белых изображений, преобразования эскизов или рисунков в фотографические изображения или преобразования дневных изображений в ночные.

Преобразование текста в изображение

Преобразование текста в изображение возможно благодаря использованию GAN. При наличии текста, который описывает изображение и это сопровождающее изображение, GAN может обучаться созданию нового имиджа при наличии описания желаемого изображения.

Редактирование и восстановление изображений

GAN можно использовать для редактирования существующих фотографий. GAN удалить такие элементы, как дождь или снег с изображения, но их также можно использовать для восстановить старые, поврежденные изображения или поврежденные изображения. 

Супер разрешение

Суперразрешение — это процесс получения изображения с низким разрешением и вставки большего количества пикселей в изображение, улучшая разрешение этого изображения. GAN можно научить делать снимки создать версию этого изображения с более высоким разрешением. 

Блогер и программист со специализацией в Машинное обучение и Глубокое обучение темы. Дэниел надеется помочь другим использовать возможности ИИ на благо общества.