Как машинное обучение и искусственно созданные изображения могут заменить известную нам фотографию.

Джамшед Хан, Джайдип Мишра, Падманабхан Раджендракумар

Вступление

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

Простите, ребята! Искусственный интеллект существует с нами уже много лет и в настоящее время находится в вашем смартфоне (мы любим вас, Siri / Google Assistant!), В системе GPS вашего автомобиля и даже придумываете, какую статью он порекомендует вам, когда вы закончите читать эту статью. Однако за последние несколько лет ни одна область не пострадала от этого сильнее, чем компьютерное зрение.

С появлением технологий становится все более обычным видеть привлекательные изображения со сверхвысоким разрешением. Людям больше не нужно учиться пользоваться такими инструментами, как Photoshop и CorelDRAW, для улучшения и изменения своих изображений. ИИ уже используется во всех аспектах увеличения и обработки изображений, чтобы создавать наилучшие изображения. Однако последняя идея заключается в том, чтобы использовать ИИ для генерации изображений синтетическим путем.

Почти каждое изображение, которое вы, возможно, видели, было снято фотографией или создано вручную живым, дышащим человеком. Возможно, существуют сотни инструментов для создания изображений вручную, но они требуют присутствия человека, чтобы руководить процессом. Однако представьте компьютерную программу, которая рисует с нуля все, что вы ей скажете. Microsoft’s Drawing Bot может быть одной из первых и единственных технологий, которые делают это возможным. Представьте себе время в ближайшем будущем, когда вы можете просто загрузить приложение на свой смартфон и дать ему несколько инструкций, например: «Я хочу сфотографировать меня, стоящего рядом с Эйфелевой башней. (Однако убедитесь, что вы правильно написали это слово).

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

«Сети GAN - самая интересная идея в сфере машинного обучения за последние 10 лет»

- Ян Лекун

Основа, на которой создается такое синтетическое изображение, лежит в Генеративных состязательных сетях. С момента их открытия и запуска в 2014 году Яном Гудфеллоу и его коллегами в их исследовательской статье GAN остаются одним из самых интересных и широко используемых аспектов глубокого обучения. Бесконечные применения этой технологии, которая лежит в основе так называемого состязательного обучения, охватывает области не только компьютерного зрения, но также аналитики данных, робототехники и прогнозного моделирования.

Так что же такого особенного в GAN?

Генеративные состязательные сети относятся к набору генеративных моделей. Это означает, что их задача - создавать или «генерировать» новые данные в полностью автоматизированной процедуре.

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

Простой пример

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

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

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

Каков пошаговый процесс работы GAN?

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

  1. Генератор сначала принимает некоторый случайный шум и передает его дискриминатору.
  2. Поскольку дискриминатор уже имеет доступ к набору данных реальных изображений, он сравнивает их с изображением, полученным от генератора, и оценивает его подлинность.
  3. Поскольку исходное изображение представляет собой просто случайный шум, оно будет оценено как подделка.
  4. Генератор продолжает испытывать удачу, изменяя свои параметры, чтобы создавать изображения, которые начинают становиться немного лучше.
  5. Обе сети становятся умнее по мере обучения: генератор генерирует поддельные изображения, а дискриминатор их обнаруживает.
  6. В конце концов генератору удается создать изображение, неотличимое от изображения в наборе данных реальных изображений. Дискриминатор недостаточно умен, чтобы определить, настоящее ли данное изображение или подделка.
  7. На этом обучение заканчивается, и сгенерированное изображение является нашим окончательным результатом.

Пора взглянуть на код

Вот базовая генерирующая сеть, реализованная в PyTorch.

За и против

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

Вот некоторые потенциальные преимущества использования GAN

· Группам GAN не всегда нужны размеченные примеры для обучения.

· Они быстрее генерируют выборки, чем другие генеративные модели, такие как сети убеждений, потому что им не нужно последовательно генерировать различные записи в выборке.

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

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

Точно так же есть и следующие недостатки:

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

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

Приложения GAN

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

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

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

Перенос домена

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

Он включает преобразование изображения в изображение с использованием специального типа GAN, называемого CGAN (Conditional Generative Adversarial Networks). Живопись и концептуальный дизайн еще никогда не были такими простыми. Однако, хотя GAN могут выполнять простые рисунки, такие как этот кошелек, по его эскизу, рисование более сложных вещей, таких как идеальные человеческие лица, в настоящее время не является сильной стороной GAN. На самом деле, его результаты для некоторых объектов кошмарны.

Рисование и рисование изображений

Два захватывающих применения генеративных сетей можно увидеть в Inpainting и Outpainting. Первый включает в себя заливку или шум в изображении, что можно рассматривать как восстановление изображения. Например, если у изображения есть дыры или пробелы, GAN должна иметь возможность исправлять его «приемлемым» способом. С другой стороны, перерисовка предполагает использование собственного обучения сети, чтобы представить, как изображение может выглядеть за пределами ее текущих границ.

Синтез лица

Благодаря генеративным сетям возможен синтез лица, который предполагает создание одного изображения лица под разными углами. Вот почему распознавание лиц не требует сотен образцов вашего лица, но может работать с одним. Кроме того, стало возможным создание искусственных лиц. NVIDIA недавно использовала свой GAN 2.0 для создания искусственных человеческих лиц в разрешении HD с использованием набора данных Celeba Hq, первого примера создания синтетических изображений в высоком разрешении.

GANimation

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

Перевод картины в фотографию

Другой пример использования GAN для повышения реалистичности изображений - это просто превратить (довольно хорошо) картину в фотографию. Для этого используется специальный тип GAN, называемый CycleGAN, который использует два генератора и два дискриминатора. Мы вызываем один генератор G и заставляем его преобразовывать изображения из домена X в домен Y. Другой генератор называется F и преобразует изображения из Y в X. У каждого генератора есть соответствующий дискриминатор, который пытается отличить синтезированные изображения от реальных.

Куда мы отправимся отсюда ?

Машинное обучение и GAN несомненно окажут огромное влияние на создание изображений и фотографию в ближайшем будущем. В настоящее время эта технология способна генерировать простые изображения из вводимого текста. Однако в обозримом будущем он сможет создавать не только точные изображения в высоком разрешении, но и целые видеоролики. Представьте себе фильм целиком, созданный путем простой загрузки сценария в GAN. Мало того, каждый человек мог использовать простые интерактивные приложения для создания своих собственных фильмов (возможно, даже самих себя!). Станет ли эта технология концом настоящей фотографии, режиссуры и актерского мастерства?

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

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