Сети GAN были представлены в статье Яна Гудфеллоу и других исследователей из Монреальского университета в 2014 году.

Что такое GAN?

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

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

Янн ЛеКун, директор Facebook по исследованиям в области искусственного интеллекта, назвал обучение соперничеству «самой интересной идеей в области машинного обучения за последние 10 лет».

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

Генеративные и дискриминационные алгоритмы

Чтобы понять GAN, нам нужно знать, как работают генеративные алгоритмы, а также насколько дискриминирующие алгоритмы сентенционны, поэтому работа дискриминантных алгоритмов пытается классифицировать данные.
Стандартным примером этого сценария является электронная почта: учитывая все слова в электронном письме, дискриминатор предсказывает, является ли сообщение спамом или нет. В этом примере спам - это одна из меток электронного письма, а слова - это функции, из которых состоят входные данные. Если мы выразили эту проблему математически, то метка называется y, а функция - x. Формулировка p (y | x) используется для обозначения «вероятности y при заданном x».

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

  • Дискриминационные модели изучают диапазон между классами
  • Генеративные модели моделируют распределение отдельных классов

Как работают GAN

Как мы знаем, эти алгоритмы относятся к области обучения без учителя.
Генеративные состязательные сети состоят из двух моделей:

Первая модель называется генератором и ее цель - генерировать новые данные, аналогичные реальным. Генератор может создавать данные, а дискриминатор проверяет, являются ли данные настоящими или поддельными.

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

Когда начинается обучение, генератор выдает поддельные данные, а дискриминатор быстро учится определять, что это поддельные.

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

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

Как эти модели взаимодействуют?

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

Фундаментальный шаг к обучению GAN

I. Сделайте выборку данных набора шума и набора реальных данных. Каждый размером m.

II. Обучите Дискриминатор на этих данных.

III. Сделайте выборку из другого подмножества шума размером m.

IV. Обучите генератор на этих данных.

V. Повторите с шага 1.

Вот шаги, которые предпринимает GAN:

  • Таким образом, генератор принимает случайное число и перенастраивает изображение.
  • Созданное изображение сравнивается с фактическим набором данных и передается в дискриминатор.
  • Затем дискриминатор принимает как реальные, так и поддельные изображения и возвращает вероятности и числа от 0 до 1, как логистическая регрессия. 1 означает настоящее, а 0 - подделку.

Итак, у нас есть две петли обратной связи:

  • Дискриминатор находится в контуре обратной связи с истинностью изображений.
  • Генератор находится в цепи обратной связи с дискриминатором.

Вот картина всей системы:

Как мы видим, оба они динамичны. Сеть дискриминатора - это стандартная сверточная сеть, которая может категоризировать подаваемое изображение, а генератор - это обратная сверточная сеть.

Целевая функция

GAN определяется как минимаксная игра со следующей целевой функцией.

Проблемы с GAN

Многие модели GAN страдают от огромной проблемы:

I. Иногда модель не может сочетать неконвергенцию.
II. Генератор рушится, поэтому выдает ограниченные значения выборки данных III. Дисбаланс между дискриминатором и генератором, вызывающий переоснащение данных IV. Высокая чувствительность к выбору гиперпараметров.

Приложения GAN

Пример ниже демонстрирует четыре случая перевода изображений:

  • Перевод с фотографии в стиль художественной росписи.
  • Перевод лошади в зебру.
  • Перевод фотографии с лета на зиму.
  • Перевод спутниковых снимков в просмотр Google Maps.

Резюме

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

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

Спасибо за прочтение!

Не стесняйтесь написать мне.

Twitter: aamirjarda
LinkedIn: aamirjarda
Instagram: aamirjarda

Спасибо Сарфаразу Джарде, который помогал редактировать статью!

У вас есть вопросы?
Задайте свои вопросы в комментариях ниже, и я постараюсь ответить.