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

Вы когда-нибудь задумывались, как может выглядеть 27-я буква английского алфавита? Или каким будет твой внешний вид через двадцать лет? Или, может быть, как этот ваш супер-сварливый профессор мог бы выглядеть с широкой улыбкой на лице?

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

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

Вступление

StyleGAN изначально был проектом NVIDIA с открытым исходным кодом для создания генеративной модели, которая могла бы выводить человеческие лица с высоким разрешением. Основа модели была заложена в исследовательской статье, опубликованной Теро Каррасом, Самули Лайне и Тимо Айлой, всеми исследователями NVIDIA.

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

Более того, эта новая архитектура способна отделить высокоуровневые атрибуты (такие как личность человека) от низкоуровневых атрибутов (таких как их прическа) в изображении. Это разделение позволяет GAN изменять одни атрибуты, не затрагивая другие. Например, изменение прически на определенном изображении.

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

Резюме: Что такое GAN снова?

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

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

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

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

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

Как работает StyleGAN?

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

Целью NVIDIA StyleGAN является преодоление ограничений традиционной GAN, в которой управление отдельными характеристиками данных, такими как черты лица на фотографиях, может оказаться невозможным. Предлагаемая модель позволяет пользователю настраивать гиперпараметры для достижения такого контроля. Более того, это позволяет учитывать фактор изменчивости в сгенерированных изображениях из-за добавления стилей к изображениям на каждом уровне свертки.

Модель начинается с генерации новых изображений, начиная с очень низкого разрешения (что-то вроде 4x4) и в конечном итоге постепенно повышается до конечного разрешения 1024x1024, что на самом деле обеспечивает достаточно деталей для визуально привлекательного изображения.

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

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

На каждом уровне свертки для создания изображения могут использоваться разные стили: грубые стили с разрешением от 4x4 до 8x8, средние стили с разрешением от 16x16 до 32x32 или тонкие стили с разрешением от 64x64 до 1024x1024.

Грубые стили определяют высокоуровневые функции, такие как поза объекта на изображении или волосы объекта, форма лица и т. Д. Средние стили управляют такими аспектами, как черты лица. Наконец, тонкие стили покрывают детали изображения, такие как цвет глаз или другие микроструктуры.

Архитектура StyleGAN также добавляет шум на попиксельной основе после каждого сверточного слоя. Это сделано для того, чтобы создать «стохастическую вариацию» изображения. Исследователи отмечают, что добавление шума таким образом позволяет применить локальные изменения стиля к «стохастическим» аспектам изображения, таким как морщины, веснушки, поры кожи, щетина и т. Д.

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

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

Архитектура NVIDIA включает промежуточное «скрытое пространство», которое можно рассматривать как «съемное». Затем в это пространство можно встроить входной скрытый код. Стили или функции, присутствующие в изображениях, на самом деле являются разными формами одного и того же встраивания скрытых векторов, которое используется для нормализации входных данных каждого сверточного слоя.

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

Распутывание функций

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

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

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

Для этой цели исследователи использовали сеть из 8 слоев, вход и выход которой являются вектором с 512 измерениями. В своей статье они также объясняют, почему эти гиперпараметры работают лучше всего. Они представляют два разных подхода к измерению распутывания элементов:

  1. Перцепционная длина пути. Рассчитайте разницу между встраиваемыми изображениями VGG16 при интерполяции между двумя случайными входными данными. Резкое изменение указывает на то, что несколько функций изменились вместе и, таким образом, могут быть запутаны.
  2. Линейная разделимость - разделите все входные данные на двоичные классы, например мужской и женский. Чем лучше классификация, тем более разделимы признаки.

GAN вы попробуете?

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

StyleGAN был обучен на наборах данных CelebA-HQ и FFHQ в течение одной недели с использованием 8 графических процессоров Tesla V100. Его реализация находится в TensorFlow и может быть найдена в репозитории GitHub NVIDIA, доступном по лицензии Creative Commons BY-NC 4.0. Это означает, что вы можете использовать, распространять и адаптировать материал для некоммерческих целей, при условии, что вы укажете соответствующую ссылку, цитируя исследовательский документ и указывая любые внесенные изменения.

Исследователи обучили свою модель на наборах данных Celeba-HQ и Flickr-Faces-HQ, которые содержат изображения с разрешением 1024x1024. Они настоятельно рекомендуют тренироваться с 8 графическими процессорами, чтобы получить аналогичные результаты.

Полученные результаты

Помимо наборов данных по лицам, исследователи также использовали свой StyleGAN для трех других наборов данных: наборов данных LSUN BEDROOMS, CARS и CATS. На рисунке ниже показаны некоторые результаты, полученные при смешивании стилей из различных изображений.

Как мы видим, в наборе данных BEDROOM грубые стили управляют точкой обзора камеры, средние стили выбирают конкретную мебель, а тонкие стили имеют дело с цветами и более мелкими деталями материалов. То же самое верно и для двух других наборов данных. Эффекты стохастической вариации можно наблюдать в тканях в СПАЛЬНЕ, фоне и фарах в АВТОМОБИЛЯХ, а также в мехе, фоне и положении лап в наборе данных CATS.

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

ThisPersonDoesNotExist.com также реализует StyleGan для создания фальшивого лица в высоком разрешении при каждом обновлении страницы. На изображении ниже показаны различные символы, созданные StyleGAN, обученным на скриптах из нескольких языков.

Сопутствующие исследования

Хотя в этой статье основное внимание уделяется исследованиям, проведенным NVIDIA и скомпилированным в их статье Архитектура генераторов на основе стилей для генеративных состязательных сетей, было бы также полезно взглянуть на некоторые более свежие результаты и разработки, основанные на исследованиях NVIDIA. В этом разделе резюмируется недавняя работа, касающаяся styleGAN с подходом глубокого обучения.

Семантический синтез изображений с пространственно-адаптивной нормализацией

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

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

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

Image2StyleGAN: как встраивать изображения в скрытое пространство StyleGAN?

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

Заключение

«Мы полагаем, что невозможно синтезировать картинку из ничего; фотография должна была быть кем-то. Конечно, мошенник может присвоить чужую фотографию, но это рискованная стратегия в мире с обратным поиском Google и т. Д. Поэтому мы склонны доверять картинкам. Бизнес-профиль с изображением явно кому-то принадлежит. Партия на сайте знакомств может оказаться на 10 фунтов тяжелее или на 10 лет старше, чем когда была сделана фотография, но если фотография есть, человек явно существует.

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

- Уэст и Бергстрем

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

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

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

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

Являясь независимой редакцией, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.