ArtiClarity | MetaGAN: использование состязательного подхода для платформы обучения с несколькими выстрелами

Я пишу эту статью как первую в серии обзоров статей «ArtiClarity», в которой я планирую поделиться своими чтениями по различным научным темам (в основном, моей собственной области, электронному здравоохранению и искусственному интеллекту), чтобы еще больше расширить свое понимание. как поделиться тем, что я узнал со своими сверстниками.

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

Что такое МетаГАН?

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

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

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

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

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

  • Совместное обучение инициализации
  • Общая схема оптимизации
  • Совместное обучение метрике
  • Общие сети вывода

При добавлении к этим схемам контекста «обучения за несколько выстрелов» эти алгоритмы также должны заботиться о проблеме наличия лишь нескольких выборок для каждого класса данных.

Обратите внимание, что большинство контролируемых или полуконтролируемых моделей обучения с несколькими выстрелами могут быть легко интегрированы и оснащены мощью MetaGAN.

Во-первых, давайте формально определим проблему обучения за несколько выстрелов и введем некоторые обозначения:

Теперь обратите внимание, что цель модели по-прежнему очень ясна: иметь четко определенную метрику потерь, установить поддержку в качестве входных данных, минимизировать вычисленные потери в наборе запросов, оцениваемом с учетом прогнозов.

Состязательная тренировка для обучения за несколько выстрелов

В последнее время появились работы по использованию состязательного обучения для обучения за несколько выстрелов. Например, в [1] класс условных генеративно-состязательных сетей используется (DAGAN) для помощи в обучении с увеличением данных. Теперь, когда дело доходит до использования GAN для увеличения данных, эти два различия следует четко понимать по сравнению с простым увеличением данных на основе GAN и метаобучением. Во-первых, в обычной схеме использования GAN для увеличения данных у нас есть GAN, который отдельно обучен для предоставления данных, соответствующих характеристикам распределения. Однако в MetaGAN у нас есть классификация и задачи, которые также играют важную роль, поэтому по своей природе это напоминает сквозные и модульные схемы обучения.

Второе отличие состоит в том, что в MetaGAN, в отличие от старых подходов, сгенерированные примеры будут использоваться для уточнения усвоенных границ решений, как и ожидалось, однако они не будут такими эффективными, как обычные примеры. , что имеет смысл, поскольку они не являются наблюдениями за реальными объектами, а представляют собой просто реалистичные симуляции возможных наблюдений. Если с ними обращаться так же, как с реальными данными, возникнут две проблемы: во-первых, эти данные напоминают атрибуты, которые делают наблюдение, вероятно, каким-то образом реальным (например, мышь с крыльями), что не обязательно означает высококачественные и реалистичные наблюдения, такие как как те, что у нас уже есть. Во-вторых, проблема коллапса режима возникает часто, но в MetaGAN условия для генератора смягчены (это означает, что мы ожидаем меньшего, нам не нужен идеальный генератор, он должен быть достаточно совершенным, чтобы приносить пользу всей системе, не обязательно создание реалистичных изображений).

Теперь в MetaGAN у нас также есть генератор с условием задачи, который пытается сгенерировать данные для конкретной задачи:

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

Глядя на приведенные выше уравнения (и имея в виду известную игру минимум-максимум для обучения GAN, в которой дискриминатор стремится максимизировать целевое значение), мы можем интерпретировать это следующим образом: сначала возьмите примеры и метки из контролируемого подмножества наш набор поддержки. Мы знаем, что они реальны, поэтому понимание дискриминатора должно явно пытаться приписать ввод правильной метке, тем самым приближая эту часть целевой функции к нулю, а не к большому отрицательному значению в результате почти нулевой вероятности. Для неконтролируемого случая есть такие примеры, для которых у нас нет ярлыка, но мы должны знать, что они настоящие, и есть фальшивые примеры, которые мы используем для уточнения границ принятия решений, что опять же мы должны знать, что они поддельные (и в этом абзаце под «мы» я в основном подразумеваю дискриминатор, работа которого заключается в определении этого результата).

Теперь для генератора интерпретация в основном вращается вокруг обмана дискриминатора, и ее относительно легко понять:

И, наконец, для общей целевой функции:

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

Какой дискриминатор выбрать?

В общем, MetaGAN в основном больше связан с дизайном того, как собрать подмодули вместе, чем с новой архитектурой, которая превосходит любой из модулей независимо. Поэтому практически нет ограничений на то, какой дискриминатор мы можем использовать. В статье предлагается использовать два дискриминатора, которые славятся малократным обучением: MAML и Relation Networks. Итак, давайте поговорим о Дискриминаторе MetaGAN и его сотрудничестве с двумя вышеупомянутыми схемами обучения с несколькими выстрелами:

MetaGAN на основе MAML

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

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

Сеть отношений на основе MetaGAN

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

Обратите внимание, что эта формулировка в основном следует концепциям реляционных сетей из [2]. Чтобы лучше понять это, простой пример — однократная схема обучения C-way. У нас есть классы C, каждого класса у нас есть один пример. Используя эту структуру, для данных запроса мы вычисляем расстояние (отношение) между этим запросом и каждой из наших выборок данных, которые должны представлять их классы (конечно, в пространстве с большим расстоянием).

Один важный момент, о котором следует упомянуть, касается 1 в знаменателе. Это связано с тем, что для класса N+1 (выборка данных является поддельной) логит (под логитом, здесь мы имеем в виду логиты, которые используются в качестве входных данных в классификации softmax) равен нулю. Следовательно, в знаменателе появится 1, и, используя это, мы можем смоделировать вероятность того, что класс будет N + 1, пока данные даны.

До сих пор мы обсуждали множество математических деталей построения платформы MetaGAN для обучения за несколько шагов. Настало время немного поговорить и о генераторе:

Генератор

Здесь (и помните о частичном контроле на уровне выборки и уровне задачи) мы используем условные генеративные модели для создания поддельных данных. Эти данные должны быть близки к многообразию реальных данных для конкретной задачи.

Вот как это происходит:

Итак, получается, что у нас есть задача и соответствующий набор данных (поддерживающий набор). Во-первых, мы используем модуль Instance-Encoder, который представляет собой нейронную сеть, для изучения представлений функций, то есть сопоставления из пространства примеров векторов в контролируемом подмножестве вспомогательного набора для конкретной задачи, которую мы выполняем. учитывая. Модуль Ffeature-Aggregation использует каждый встроенный вектор признаков (выходные данные модуля instance-encoder) для вывода вектора для всего обучающего набора. Это происходит с использованием подхода объединения (например, для MetaGAN использовалось среднее объединение этих векторов, и оно доказало свою эффективность эмпирически).

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

После этого входной шум объединяется и происходит генерация.

Настройки обучения в MetaGAN

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

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

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

Кроме того, для потерь генератора они следовали потери сопоставления признаков, которые представлены в [3] (в котором рассматривается нестабильность GAN путем указания альтернативной цели, ориентированной на совокупную статистику данных. Пожалуйста, прочитайте раздел 3.1). из [3] для получения дополнительной информации).

Теоретическая история MetaGAN

Почему эта система эффективна для быстрого обучения? Есть ли этому какое-то теоретическое обоснование? В этой части мы рассмотрим раздел 4 статьи о MetaGAN, чтобы пролить свет на теоретические аспекты этой модели с некоторыми упрощенными пояснениями.

Самая важная идея MetaGAN, которую невозможно переоценить, заключается в том, что генератор должен помогать только в уточнении границы решения, он не должен быть совершенным с точки зрения создания выборок, которые выглядят реалистично. Этому можно следовать. в примере ниже. Чтобы объяснить, я начну с примерной схемы классификации изображений.

В схеме классификации изображений у нас есть «объекты», такие как «кошка», «собака» или «лошадь» и т. д. Эти классы влияют на распределение данных и наборы данных (данные представляют собой «наблюдения», такие как изображения 25x25 и т. д.). .). Скажем, мы показываем класс «кошка» как «+», а «собака» как «x». У нас есть следующие точки в пространстве:

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

Теперь в Meta-GAN основное внимание уделяется не «реалистичности» результатов. Другими словами, мы не хотим хвастаться тем, что знаем, как генерировать реально выглядящие примеры, скорее, мы хотим продемонстрировать, что мы можем использовать атрибуты наших данных, чтобы увидеть, «как отойти от реальных данных». но быть достаточно близко, чтобы сформировать четкие границы принятия решений. Опять же, лучше понять, какие точки также являются поддельными данными. Следовательно, этот подход приводит к более четким границам решений следующим образом:

Математически говоря, они предполагают, что для конкретной задачи T, имеющей пространство признаков, у нас есть генератор, который генерирует «разделяющее дополнение». Следовательно, генератор, обусловленный задачей, должен иметь распределение генератора с областью высокой плотности, не пересекающейся с многообразием данных всех классов, и может использоваться для разделения многообразий разных классов. Тогда теорема в статье может быть доказана:

Этот абзац статьи ясно развивает эту теорему:

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

Эксперименты

Как нам найти хорошие данные для этих условий обучения? Итак, они использовали набор данных Omniglot для рукописных символов 50 языков: 1623 класса, по 20 примеров в каждом классе: 1200 классов для обучения, 432 класса для тестирования. Они также использовали набор данных Mini-imagenet для 100 классов (64 класса для обучения, 16 для тестирования и 20 для проверки), и у них было 600 случайных выборок в каждом классе. Обратите внимание, что сплиты происходили случайным образом.

Эксперименты: обучение с несколькими выстрелами под наблюдением

Омниглот:

Для версии MAML размер метапакета (т. е. количество задач в каждом пакете) был установлен на 16 для 5-факторной классификации и 8 для 20-факторной классификации. Эти цифры были выбраны для максимального использования графического процессора, и никакой другой причины нет. Ф

или RN-MetaGAN извлекается по 15 изображений-запросов для каждого класса как для 1-кадровых 5-и, так и для 5-и 5-и, а также по 5 изображений-запросов для каждого класса для 1-кадровых 20-и и 5-кадровых 20-и. классификация путей. Размер метапакета для RN ​​равен 1 во всех экспериментах.

Мини-имиджнет:

MetaGAN с моделью MAML с использованием аппроксимации первого порядка и 1 шага градиента (вычислительные затраты были ограниченными).

Для обеих моделей для разработки условного генератора использовалась ResNet-подобная архитектура.

Результаты приведены ниже:

Эксперименты: частично контролируемое обучение на уровне выборки

В этой части для Omniglot они удалили метки 90% данных и использовали их как немаркированный набор. Для Mini-Imagenet они отобрали 40% от количества образцов каждого класса в качестве помеченного набора, а остальные использовали в качестве немаркированного набора. Они отмечают, что, в отличие от других систем, их тестирование «независимо» от неразмеченных данных, поэтому оно свободно от этих требований.

Результаты приведены ниже:

Теперь давайте перейдем к последней части: полусупервизия на уровне задач.

Эксперименты: частично контролируемое обучение на уровне задач

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

Вывод

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

использованная литература

[1] Антониу, Антреас, Амос Сторки и Харрисон Эдвардс. «Генерационные состязательные сети с увеличением данных». препринт arXiv arXiv:1711.04340 (2017 г.).

[2] Сун, Флад и др. «Учимся сравнивать: реляционная сеть для быстрого обучения». Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2018.

[3] Салиманс, Тим и др. «Улучшенные методы тренировки ганов». Достижения в области нейронных систем обработки информации. 2016.

[4] Чжан, Руйсян и др. «Метаган: состязательный подход к обучению за несколько выстрелов». Достижения в области нейронных систем обработки информации. 2018.