[Перевод] Уменьшение зависимости от размеченных данных у генеративно-состязательных сетей

Генеративно-состязательные сети (ГСС) [Generative Adversarial Networks, GAN] — обладающий интересными возможностями класс глубоких генеративных моделей. Их основная идея — обучение двух нейросетей, генератора, который обучается синтезу данных (к примеру, изображений), и дискриминатора, обучающегося тому, как отличать реальные данных от тех, что синтезировал генератор. Этот подход успешно использовался для высококачественного синтеза изображений, улучшения сжатия изображений, и прочего.
6c1e577e2448d132cbf99ee46ffee4ff.gif
Эволюция сгенерированных образцов в процессе обучения на ImageNet. Генератор ограничивают классом изображения (к примеру, «бородатая неясыть» или «золотистый ретривер»).

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

В нашей работе «Генерация высококачественных изображений с меньшим количеством меток» мы предлагаем новый подход для уменьшения количества размеченных данных, необходимых для обучения передовых условных ГСС. Комбинируя этот подход с недавними прорывами в разработке крупномасштабных ГСС, мы выдаём сопоставимые по качеству естественные изображения, используя в 10 раз меньше меток. Мы также выпускаем большое обновление библиотеки Compare GAN на основе этого исследования, где содержатся все необходимые компоненты для обучения и оценки современных ГСС.

Улучшения посредством полунадзора и самонадзора


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

f342f866e7c1b83d60a5367d99502f27.png

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

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

db81e932fa204d28b66ec4c2e709af9d.png
Сеть генератора производит изображение на основе собственного вектора. В каждом ряду линейная интерполяция собственных кодов самой левой и самой правой картинок приводит к семантической интерполяции в пространстве изображений.

Библиотека Compare GAN для обучения и оценки ГСС


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

  • Обучение на GPU и TPU.
  • Простую настройку при помощи Gin (примеры).
  • Огромное количество наборов данных через библиотеку TensorFlow.

Заключение и планы на будущее


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

© Habrahabr.ru