В новом исследовании используется метод, известный как генеративные модели на основе потоков, который может стать мощной альтернативой GAN.

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



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

Генеративные модели - одна из дисциплин глубокого обучения, которая направлена ​​на решение двух проблем, упомянутых выше. Концептуально генеративные модели сосредоточены на наблюдении за исходным набором данных, например, набором изображений, и пытаются узнать, как эти данные были сгенерированы. Используя более математические термины, генеративные модели пытаются вывести все зависимости в пределах очень многомерных входных данных, обычно заданных в форме полного совместного распределения вероятностей. Целые области глубокого обучения, такие как синтез речи или полу-контролируемое обучение, основаны на генеративных моделях. В последнее время генеративные модели, такие как генеративные состязательные сети (GAN), стали чрезвычайно популярными в сообществе глубокого обучения. Недавно OpenAI экспериментировал с не очень известной техникой под названием Генеративные модели на основе потоков, чтобы улучшить существующие методы. Результатом стало создание Glow, новой генеративной модели на основе потоков, которая способна генерировать высококачественные наборы данных на основе нескольких обучающих примеров. Результаты были зафиксированы в недавней исследовательской статье, а также в выпуске с открытым исходным кодом на Github. Вы можете увидеть свечение в действии на следующей анимации:

По какой-то необъяснимой причине генеративные модели на основе потоков не были так популярны, как некоторые из их аналогов, таких как GAN. Тем не менее, этот тип методов предлагает некоторые ощутимые преимущества по сравнению с альтернативами:

  • Точный вывод скрытых переменных и оценка логарифма правдоподобия. Большинство генеративных методов могут только приблизительно определить значение скрытых переменных, соответствующих точке данных. У других, таких как GAN, вообще нет кодировщика, чтобы вывести скрытые данные. В обратимых генеративных моделях это можно делать точно без аппроксимации. Это не только приводит к точному выводу, но и позволяет оптимизировать точную логарифмическую вероятность данных вместо ее нижней границы.
  • Эффективный вывод и эффективный синтез: Генеративные модели на основе потоков, такие как Glow (и RealNVP), эффективны для распараллеливания как для вывода, так и для синтеза.
  • Значительный потенциал для экономии памяти: для вычисления градиентов в обратимых нейронных сетях требуется постоянный объем памяти, а не линейный по глубине, как во многих других генеративных моделях, таких как GAN.

Светящаяся Архитектура

Архитектура OpenAI Glow опирается на предыдущие работы, такие как NICE и RealNVP, но немного упрощает эти модели. Модель Glow состоит из серии шагов, объединенных в многомасштабную архитектуру. Каждый шаг основан на трех слоях: actnorm, за которым следует обратимая свертка 1x1, за которой следует слой связи.

При наличии входного набора данных многоуровневая архитектура Glow выполняет следующие задачи.

  1. Переставьте входы, изменив их порядок по размеру канала.
  2. Разделите входные данные на две части, A и B, по середине размера объекта.
  3. Подайте A в неглубокую сверточную нейронную сеть. Линейно преобразуйте B в соответствии с выходными данными нейронной сети.
  4. Соедините A и B.

Сияние в действии

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

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

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