Найти тему
iPavlov.ai

Генеративно-состязательные сети (GAN)

Давайте представим ринг, где состязаются два равных бойца в финале чемпионата мира по боксу… Так, стоп. Какой ринг? Какой бокс? Причем тут соревнования? Вы же вроде про искусственный интеллект рассказывали?! Предвещаем такой список вопросов от читателя и дадим ответы на них, НО чуть позже 😉

Ipavlov.ai
Ipavlov.ai

Сейчас хотим обратить внимание на довольно известный алгоритм машинного обучения, которым мы пользуемся. Это так называемая Generative adversarial network (GAN) или генеративно-состязательная сеть. Простыми словами GAN это ничто иное, как нейронные сети, которые могут брать визуальный мир и воспроизводить его в своих собственных внутренних абстракциях. Они могут генерировать бесконечное множество реалистичных и абстрактных изображений на основе переданных им примеров.

Почему сети состязательные?

Дело в том, что сама система состоит из генератора (G) и дискриминатора (D).

Генератор - это нейронная сеть, которая на вход получает латентные переменные или как их называют “случайный шум”, а на выходе получаются изображения.

Дискриминационные алгоритмы, в свою очередь, пытаются входные данные классифицировать, то есть относят их к категории, к которой эти данные могут принадлежать, учитывая все их особенности. По факту, дискриминатор является бинарным классификатором, который на выходе выдает “0”, если данные поддельные и “1”, если данные реальные. Наглядным примером задачи, решаемой дискриминационными нейронными сетями, является определение среди всех писем на вашей почте тех, что относятся к категории “СПАМ”.

machinelearningmastery.ru
machinelearningmastery.ru

Итого:

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

Таким образом, работа дискриминационной модели направлена против работы генеративной модели. Аналогично бойцам в ринге, вышедшим показать свою силу 😉

Обучение GAN:

  • На входе получаем изображения
  • Далее генерируем шум, благодаря которому генератор создает нам новые изображения
  • Сгенерированные данные передаются в дискриминатор вместе с первоначальными
  • Дискриминатор возвращает нам вероятности. Как было сказано ранее “0” - изображение фальшивое, “1” - изображение реальное

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

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

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

-3

ExemplarGAN by Facebook AI Research

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

-4
-5

На изображениях вы видите сравнение между реальным фото и результатами работы метода, описанного выше.

Какие интересные методы и исследования на основе GAN знаете вы ?