PGGAN — прогрессивная генеративная нейросеть от Nvidia

Генеративно-состязательные нейросети (GAN) — одна из наиболее перспективных разработок в области глубокого обучения. GAN не так давно приобрели популярность в сфере машинного обучения. Комбинируя характерные особенности входных данных, они создают принципиально новые объекты, неотличимые от реальных. За последние несколько лет генеративные нейросети привлекли внимание и нашли практическое применение.

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

GANы способны работать с многомерными данными. К примеру, они могут создавать реалистичные изображения, используя характерные особенности тренировочных датасетов. Столь мощное семейство нейронных сетей в машинном обучении возникло благодаря комбинации глубоких нейросетей и теории игр (GANs, Ian Goodfellow, 2014).

Рассмотрим структуру GANs. Они состоят из двух взаимодействующих нейросетей:

  • Генератор — генерирует образцы, используя набор переменных скрытого пространства.
  • Дискриминатор — оценивает отличие сгенерированных образцов от образцов тренировочного набора.

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

Основные характеристики GANs — это качество созданного образца (насколько он похож на тренировочные) и вариативность (отличие его особенностей от образцов тренировочного датасета). Цель заключается в максимизации обоих этих параметров. Но на пути к этой цели возникают несколько проблем, требующих детального рассмотрения. Следует сказать, что возможно добиться только компромисса между качеством и вариативностью, так как повышение качества ведёт к понижению вариативности.

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

Новый подход к генерации изображений от Nvidia

Исследователи NVIDIA и Университета Аалто разработали инновационный подход к решению этих проблем, описанный в работе “Progressive Growing of GANs”. Идея проста: во время обучения обе нейросети (Генератор и Дискриминатор) развиваются посредством добавления новых слоёв. Помимо этого, исследователи ввели и другие улучшения в процесс обучения для генерации более реалистичных изображений в высоком разрешении.

Предлагаемый метод последовательного развития GANs
Предлагаемый метод последовательного развития GANs

Развитие в процессе обучения

Идея заключается в том, чтобы позволить нейросети изучить сначала крупные структуры на изображении, а затем более мелкие. Это делает процесс обучения более стабильным, а также улучшает качество конечных изображений за счёт природы генеративных сетей, которые осуществляют сложное проецирование пространства скрытых переменных на реалистичное изображение. Поэтапное выполнение этого процесса легче, чем выполнение за один подход. В предлагаемой работе авторы используют зеркальные нейросети Генератора и Дискриминатора, начиная с очень малого разрешения (4х4 пикселя) и последовательно развивая нейросеть для работы с высоким разрешением (1024х1024).

Нормировка в генераторе и дискриминаторе

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

Инициализация весов заключается в следующем: веса инициализируются с помощью нормального распределения с нулевой средней и единичной дисперсией, и далее во время работы происходит их масштабирование. Это и есть ограничение амплитуды, о котором говорилось ранее. Такой подход улучшает процесс обучения в случае, если оптимизатор инвариантен относительно изменения масштаба весов (как RMSProp, ADAM и т.д.).

Идея попиксельной нормализации вектора особенностей заключается в приведении длины характеристического вектора к единице. Нормировка производится в Генераторе после каждого свёрточного слоя.

Предлагаемый метод прошёл испытания на датасете CELEBA, который содержит 30000 изображений лиц знаменитостей высокого разрешения (1024х1024) и поэтому хорошо подходит для проверки метода. Рассматриваемый метод показал более высокую реалистичность и гораздо большую вариативность изображений, чем существующие методы. Версия CELEBA с изображениями более высокого качества будет опубликована авторами в ближайшее время.

Постепенное улучшение результатов при внесении различных улучшений. MS-SSIM — Multi-Scale Structural Similarity score — Мультимасштабная оценка структурного сходства. Тестирование проводилось с использованием датасетов CELEBA и LSUN
Постепенное улучшение результатов при внесении различных улучшений. MS-SSIM — Multi-Scale Structural Similarity score — Мультимасштабная оценка структурного сходства. Тестирование проводилось с использованием датасетов CELEBA и LSUN
Сравнение качества генерируемых изображений на примере датасета LSUN
Сравнение качества генерируемых изображений на примере датасета LSUN

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

Оригинал — Dane Mitriev

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt