![stylegan](https://neurohive.io/wp-content/uploads/2018/12/stylegan-1-e1544810659820.jpg)
NVIDIA опубликовала код предобученной модели StyleGAN для генерации лиц, которые никогда не существовали. StyleGAN является state-of-the-art моделью с лучшими свойствами интерполяции и распутывания, способностью находить скрытые факторы вариации (определять положение лица и идентичность).
Мы писали об анонсе StyleGAN 18 декабря прошлого года, но тогда NVIDIA не показала готовую реализацию этой сети. Теперь код находится в открытом доступе и лежит в репозитории на GitHub и мы можем более подробно проанализировать метод и его результаты.
UPD: актуальная версия (StyleGAN3) опубликована в репозитории на Github.
Идея
Улучшения GAN чаще всего измеряются разрешением и качеством сгенерированных изображений. Несмотря на прогресс в достижении этой цели, генеративные сети всё еще остаются черными ящиками. Не считая единичных попыток понять внутреннюю структуру генеративно-состязательных сетей, большинство исследователей всё еще занимаются оптимизацией для получения изображений более высокого качества, используя GAN. Но скрытые свойства и представления таких сетей до сих пор плохо изучены.
Недавно была опубликована работа, в которой авторы попытались вскрыть генеративно-состязательные сети и выяснить их внутренние представления.
В новом методе, предложенном NVIDIA, архитектура генератора переделывается так, что открываются новые способы контролировать процесс генерации изображения. Фактически генератор StyleGAN начинает с изученного постоянного входа, а дальше регулирует “стиль” изображения на каждом сверточном слое. Таким образом генератор способен напрямую контролировать значимость признака изображения в различных масштабах. Цель этой архитектуры — определить скрытые факторы вариации и тем самым увеличить уровень контроля.
Архитектура StyleGAN
Говоря простым языком, архитектура StyleGAN пытается отделить высокоуровневые атрибуты изображения (положения лица, личность человека) от случайных вариационных факторов, таких как прическа, веснушки и тому подобное. Отмечу, что когда я говорил об архитектура генератора, я имел ввиду сеть генератора (как одну из частей GAN). Это различие очень важно понимать, так как исследователи из NVIDIA модифицировали только процесс синтеза изображения (генератор), а не дискриминатор.
![stylegan architecture](https://neurohive.io/wp-content/uploads/2019/02/stylegan-architecture-e1551803320132.png)
В основе архитектуры лежит идея о встраивании входного скрытого кода в промежуточное скрытое представление, которое, предположительно, имеет сильное влияние на то, как в сети представлены факторы вариации. Исследователи утверждают, что промежуточное скрытое пространство свободно от таких ограничений, следовательно, может быть распутано.
Эта операция выполняется с использованием изученного нелинейного преобразования, которое производит модифицированный скрытый вектор. Модифицированный вектор далее адаптируется к различным стилям при помощи аффинных преобразований. Cтили представляют из себя модификации вложения скрытого вектора, которые в каждом сверточном слое будет использоваться для контроля операции нормализации.
Нормализация входов на сверточных слоях
Каждый вход сверточного слоя нормализуется с помощью операции AdaIN (adaptive instance normalization) с использованием вложений “стиля” скрытого вектора. Наконец, в сеть встраивается дополнительный шум для генерации случайных элементов на изображениях. Этот шум — просто одноканальное изображение, состоящее из некоррелированного гауссова шума. Шум подается перед каждой операцией AdaIN на каждый сверточный слой. Более того, существует фактор масштаба для шума, который обучается для каждого признака.
![Эффект от шума на разных слоях. (a) Шум применен ко всем слоям. (b) Шума нет. (c) Шум только в тонких слоях. (d) Шум только крупных слоях.](https://neurohive.io/wp-content/uploads/2019/02/noise.jpg)
Результаты
Так как основная задача метода — возможность распутывания (disentanglement) и интерполяции генеративной модели, возникает вопрос: “Что происходит с качеством и разрешением изображения?”.
Исследователи показали, что радикальная перестройка архитектуры генератора не ухудшает качество сгенерированного изображения, а наоборот существенно его улучшает. Поэтому не нужно было искать компромисс между качеством и интерполяционными возможностями.
![Набор избражений, сгенерированных StyleGAN сетью на датасете FFHQ](https://neurohive.io/wp-content/uploads/2019/02/news-generated-faces-stylegan.jpg)
Помимо архитектуры исследователи показали два новых автоматических метода для количественной оценки качества интерполяции и распутывания, а также представили новый датасет с человеческими лицами. Эксперименты проводились сразу на CelebA-HQ и новом датасете FFHQ. Было показано, что StyleGAN превосходит традиционные генеративно-состязательные сети и достигает state-of-the-art результата в традиционных метриках. В таблице представлено сравнение StyleGAN с традиционной GAN в качестве бэйзлайна.
![FID для различных конструкций генератора (чем меньше, тем лучше). FID считается по 50000 изображениям, выбранным случайно из тренировочного сета.](https://neurohive.io/wp-content/uploads/2019/02/FID-570x229.png)
![Результаты теста длины Perceptual path и разделимости (чем меньше, тем лучше). Результаты получены на традиционной Z и новой StyleGAN W сетях.](https://neurohive.io/wp-content/uploads/2019/02/path-570x182.png)
![ffhq](https://neurohive.io/wp-content/uploads/2019/02/ffhq.jpg)
- Эксперименты по генерации других несуществующих объектов показали неплохие рельзультаты:
Новые объекты, сгенерированные StyleGAN
Код StyleGAN
На текущий момент StyleGAN является наиболее мощной моделью генеративно-состязательной нейронной сети, которая показывает впечатляющие видимые результаты. Исследователи из NVIDIA смогли достигнуть этого при помощи нескольких простых модификаций архитектуры. Они улучшили качество распутывания и интерполяции, сохранив при этом качество и разрешение изображения. Представленный компанией код сети StyleGAN можно найти здесь вместе с предварительно обученной моделью. Новый датасет FFHQ также находится открытом доступе.