AutoML для GAN!

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

Генеративные состязательные сети (GAN) были горячей темой в глубоком обучении с момента их первоначального изобретения и публикации на NIPS 2014.

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

Просто чтобы назвать несколько.

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

В этой статье следуют 2 раздела: первый объясняет, как работают сети GAN и как они в настоящее время создаются вручную. Второй - это демонстрация нового исследования Deep Learning - AutoGAN, которое применяет поиск нейронной архитектуры для автоматического поиска лучших архитектур GAN.

Как работают GAN

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

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

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

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

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

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

Обратите внимание, что Генератор - это просто CNN с изображением на выходе, а Дискриминатор - это просто классификационная сеть CNN с вероятностями классов на выходе; очень простой. Из-за этой простоты большинство архитектур GAN являются копиями других современных глубоких сетей. Генераторы могут принимать форму чего-то вроде модифицированной U-Net, в то время как дискриминаторы обычно выглядят как ResNet, DenseNet или аналогичные архитектуры.

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

С другой стороны, это может немного ограничивать. Что делать, если текущие конструкции сетей не подходят оптимально для сетей GAN? Они работают достаточно хорошо сами по себе, но, возможно, улучшения сетевой структуры могли бы еще больше улучшить производительность GAN с помощью специально разработанной для них конструкции.

Использование AutoGAN для поиска лучшего GAN

Поиск нейронной архитектуры (NAS) - еще одна горячая тема глубокого обучения. NAS - это алгоритм, который ищет наилучшую архитектуру нейронной сети.

Большинство алгоритмов NAS работают следующим образом.

  1. Начните с определения набора «строительных блоков», которые можно использовать для нашей сети.
  2. Затем используйте контроллер рекуррентной нейронной сети (RNN) для выборки этих строительных блоков, соединяя их вместе, чтобы создать своего рода сквозную архитектуру.
  3. Эта недавно построенная сеть затем обучается и оценивается на конкретном наборе данных.
  4. На основе оценки строительные блоки, которые были выбраны RNN, корректируются, то есть RNN выберет новый набор, сохраняя блоки и конфигурации, которые помогли с точностью, и заменяя или удаляя те, которые не помогли.
  5. Шаги с 3 по 4 повторяются много раз, пока не будет найдена наиболее оптимальная архитектура.

Этот стиль NAS успешно применяется как для классификации изображений, так и для семантической сегментации.

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

Как отмечает автор в своей статье, обучение GAN по своей сути нестабильно просто из-за их конструкции. Тщательное построение сети имеет первостепенное значение для бесперебойной работы процесса. Имея это в виду, пространство поиска AutoGAN значительно более ограничено, чем пространство поиска NAS. Вместо того, чтобы иметь возможность выполнять выборку из блоков свертки различных типов и размеров и пропускать соединения, пространство поиска генератора AutoGAN настроено следующим образом:

  • Двоичное значение пропустить, которое указывает, принимает ли текущая ячейка добавку пропустить соединение от предыдущей ячейки.
  • Базовый блок свертки с решением, включать ли до или после активации.
  • Выбор типа нормализации: пакетная нормализация, нормализация экземпляра и без нормализации.
  • Используемый тип повышающей дискретизации: билинейная повышающая дискретизация, повышающая дискретизация ближайшего соседа или деконволюция с шагом 2.
  • Следует ли использовать внутри ячейки добавку пропустить соединение

Благодаря этому более контролируемому пространству поиска применение NAS для поиска оптимальной архитектуры генератора намного проще и стабильнее, поскольку поиск NAS намного менее широк и сложен.

Другой метод, который сделал обучение более эффективным, - это использование многоуровневого поиска архитектуры (MLAS) в отличие от обычного многоуровневого поиска архитектуры (SLAS). При обычном SLAS один контроллер RNN будет использоваться для одновременного построения всей сети NAS. Но с MLAS сеть строится постепенно.

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

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

AutoML постепенно проникает во многие области глубокого обучения и искусственного интеллекта. Нет сомнений в том, что в ближайшие несколько лет он будет в центре внимания исследований искусственного интеллекта. ИИ создает ИИ.

Любите учиться?

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