Мягкое введение в метаобучение

Учиться усваивать знания

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

Можем ли мы построить модель, использующую несколько примеров, чтобы овладеть новым навыком, как человек? Мета-обучение (также известное как обучение обучению) было рождено для решения этой проблемы. Приведя несколько примеров, модель метаобучения может быстро обучиться и адаптироваться к новой области.

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

  • Введение в мета-обучение
  • Улучшение MAML
  • Мета-обучение в классификации НЛП
  • Мета-обучение в создании диалогов
  • Неконтролируемое обучение в метаобучении

В этой истории мы рассмотрим терминологию, идею метаобучения и представим различные подходы:

  • Набор данных
  • Набор поддержки и набор запросов
  • N-way K-выстрел
  • Подходы

Терминология

Набор данных

В общей терминологии машинного обучения у нас есть только набор поездов, набор тестов и набор проверок для обучения, тестирования и проверки. В мета-обучении эти имена переименовываются в meta-training set, meta-testing set и meta-validation set. Внутри meta-training set у нас есть несколько training set и testing set, чтобы сформировать task.

Набор поддержки и набор запросов

Набор поддержки - это набор записей (входных данных и меток), при этом метки различны и различны для каждой задачи. Набор запросов - это еще один набор записей с меткой для сопоставления входных данных для выбора метки.

N-way K-выстрел

N-образный K-выстрел относится к количеству меток и k обучающих данных на метку. N обозначает номер метки, а K - количество обучающих данных. У нас есть One-Shot Learning и Few-Shot Learning, когда есть только один ярлык или несколько ярлыков (меньше общего количества ярлыков). Ключевые идеи - это преобразование данных и обмен знаниями.

Например, у нас есть 100 записей (ввод и метка), в то время как есть десять различных меток. В каждом пакете в модель будет загружено только K записей (содержащих N меток). N не требуется совпадение с общим количеством различных меток (т.е. 10 в данном случае). Метки одинаковы как для набора поддержки, так и для набора запросов одной и той же задачи, но различаются для разных задач.

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

Подходы

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

Соответствующие сети

Matching Networks (Matching Nets) предложено Vinyals et al. (2016). Идея проста, но результат многообещающий. После преобразования набора поддержки и набора запросов в вектор встраивания авторы используют косинусное расстояние, чтобы найти наиболее похожие данные .Matching Nets Framework повторяет следующие шаги в каждой задаче.

  1. Выберите 3 (т. Е. N) отдельных пар меток (вход и метка) в качестве вспомогательного набора.
  2. Выберите 5 (то есть K) количество парных данных, в то время как метка должна быть одним из результатов шага 1.
  3. Вычислите разницу (например, косинусное расстояние) между результатами, предсказанными на шаге 2, с помощью вспомогательного набора.

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

В рамках этой модельной архитектуры Виньялс и др. оценил его в области компьютерного зрения (CV) и обработки естественного языка (NLP), чтобы подтвердить, что модель может быть применена к различным проблемам предметной области. В поле CV выбраны Omniglo и ImageNet как набор данных для экспериментов.

Для области NLP набор данных Penn Treebank используется для проведения эксперимента. Если дать предложение с пропущенным словом и набором вспомогательных предложений, окончательный результат модели - это наиболее подходящая метка предложения вспомогательного набора. Пока производительность Matching Nets не выглядит многообещающей по сравнению с другой моделью.

Прототипные сети

Prototypical Networks предложено Snell et al. в 2017 году. Концепция кластеризации применяется для прогнозирования метки данных, в то время как эта модель кластеризации будет обучаться для каждого эпизода и вычислять потери в соответствии с этой моделью.

В каждом эпизоде ​​модель будет передавать как набор поддержки, так и набор запросов для встраивания слоев. Центроид кластеризации (то есть c1, c2 и c3 на следующем рисунке) - это среднее значение соответствующих меток. В то время как набор запросов (например, x на следующем рисунке) будет классифицирован по ближайшему кластеру (например, c2 на следующем рисунке. Вместо использования косинусного расстояния Prototypical Networks использует квадрат евклидова расстояния для вычисления разницы между наборами запросов и центроидом комплекта опор.

Sneel et al. используйте одни и те же наборы данных (Omniglot и mini ImageNet), чтобы сравнить результат с Matching Nets (Vinyals et al., 2016). Эксперименты показывают, что Prototypical Networks (Snell et al., 2017) обеспечивает лучшую производительность, чем Matching Nets (Vinyals et al., 2016).

Внимательные повторяющиеся компараторы

Attentive Recurrent Comparators (ARC) предложен Shyam et al. (2017). Он вдохновлен тем, как люди сравнивают набор объектов. Например, люди всегда смотрят вперед и назад между двумя объектами во время игры в фотоохоту. Это потому, что наш мозг не может разглядеть все изображение целиком.

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

Используя механизм внимания и архитектуру долговременной краткосрочной памяти (LSTM), ARC поочередно посещал часть из двух изображений A и изображения B (пара входных данных).

Нейронная сеть преобразует h (t-1) (пустое значение на первом этапе) в omega (t). Омега (t) - это параметр проблеска, который упоминается в документе. Самый простой способ извлечь небольшую часть для обучения - это произвольно / последовательно обрезать изображения. Вместо этого простого способа Shyam et al. предлагаем использовать ядра распада Коши, потому что это более гладко, чем другой способ.

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

На основе оптимизации

Метаобучающийся на основе LSTM

LSTM-based meta-learner был предложен Рави и Ларошелем в 2016 году. Авторы отмечают, что оптимизация на основе градиента терпит неудачу на нескольких помеченных примерах из-за ограничений. Алгоритм на основе градиента не был разработан для быстрой сходимости, и веса необходимо было инициализировать каждый раз. Рави и Ларошель обучают оптимизатор метаобучения на основе LSTM для оптимизации окончательной модели нейронной сети.

Прежде всего, мы разбиваем набор данных на два вспомогательных набора данных: мета-поезд и мета-тест. После этого D (поезд) и D (тест) будут разделены на мини-серию следующим образом. Каждый набор записей (1 строка) будет загружаться в модель за раз для обучения модели.

Тренировать мета-ученика довольно просто. Объяснение будет предоставлено шаг за шагом:

  • 1: Параметры модели - случайная инициализация
  • 4. Разделить набор данных мета-поезда на D (поезд) и D (тест)
  • 5. Инициализировать параметры мета-учащегося
  • 8: Разделить D (поезд) на партию
  • 9. Тренируйте ученика и получайте убытки
  • 10. Потеря корма и вывод метаобучающемуся
  • 11: Обновите параметры учащегося в соответствии с выводом №10.
  • 15. Получите потерю от учащегося за тестовую партию.
  • 16. Обновить параметры мета-учащегося.

Метаобучение без учета моделей (MAML)

Model-Agnostic Meta-Learning (MAML) предложен Finn et al. в 2017 году. Это модель, не зависящая от модели. Независимость от модели означает, что она не зависит от модели. Finn et al. Оцените эту структуру по проблемам регрессии, классификации и обучения с подкреплением, и результат будет многообещающим.

Целью MAML является изучение модели, которая может быстро выполнять новые задачи при условии, что модель предварительно обучена. В этой структуре задействованы два обновления градиента. После того, как пакет градиентов вычислен (еще не обновлен для модели), второй градиент будет вычислен на основе вышеупомянутого пакета градиентов. Они называют это обновлением градиента через градиент.

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

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

  • Требовать распределения по задачам: создание пакетов задач из пула задач. Одна и та же запись может существовать в разных задачах, и это может быть набор поддержки, запрос, установленный в Задаче 1, Задаче 2, соответственно.
  • Требовать гиперпараметры размера шага: инициализировать параметры скорости обучения.
  • 1: инициализация веса
  • 2: цикл for, продолжающий обучение до завершения.
  • 3: получить пакет задач из пула задач.
  • 4 ~ 7: цикл for для выполнения задачи по очереди. Оценивайте задачи и вычисляйте градиентный спуск для каждой задачи. В реальном кодировании есть внутренний цикл for для многократной оценки задачи.
  • 8: обновите градиентный спуск для каждого пакета задач в соответствии с шагом 6.

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

На основе памяти

Нейронные сети с расширенной памятью

One-Shot Learning in Memory-Augmented Neural Networks (MANN) предлагается Санторо и др. (2016). Они применяют MANN к метаобучению, чтобы модель могла получить доступ к внешней памяти (или информации) к вспомогательной модели для прогнозирования результата. Перед этим мы кратко рассмотрим концепцию MANN и вернемся к MANN в области метаобучения. Это помогает запоминать редкие события.

Нейронные машины Тьюринга (NTM) были представлены Graves et al. в 2014 году. Вкратце, модель отвечает как на внутреннюю память (т. е. скрытые состояния RNN), так и на внешнюю память (т. е. банк памяти вне нейронной сети), чтобы определить результат. Для доступа к внешней памяти NTM предоставляет два способа обращения к соответствующей памяти. Первый - это адресация по содержанию, модель будет обращать внимание на аналогичную память, в то время как мера сходства - косинусное сходство. Другой - адресация местоположения, модель будет обращаться к определенному местоположению путем ротации.

Санторо и др. следуйте настройке NTM с некоторыми изменениями, которые относятся к входам и методам адресации. Входные данные включают как функцию (x_t), так и временное смещение y_ (t-1). Временное смещение y означает, что предыдущая запись y метка. Наименее недавно использованный доступ (LRUA) введен для работы с внешней памятью. Вместо использования адресации содержимого или адресации местоположения Graves et al. упомянутый LRUA подходит для задач прогнозирования на основе последовательностей, но не для конъюнктивного кодирования информации, независимого от задачи последовательности. LRUA записывает память в наименее используемую ячейку памяти или в самую последнюю используемую ячейку памяти.

Метасети (MetaNet)

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

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

Для обучения MetaNet существует три основных процедуры: получение метаинформации, генерация быстрых весов и оптимизация медленных весов. Вот псевдо:

Шаг 2 ~ 4: Обучите модель получать вложения, в то время как loss_emb предназначен для захвата цели представления.

Шаг 5: Создайте вложения.

Шаг 7 ~ 14: Обучите модель выполнению целевой задачи.

Шаг 16 ~ 20: Генерация вывода

Приложение

Забрать

Все цветы цветут, и сотни школ мысли спорят. Есть много разных подходов к решению проблемы метаобучения. По моему опыту, метаобучение в основном развивается в области компьютерного зрения (CV), в то время как некоторые исследователи также применяют его в областях процессов естественного языка (NLP). Одна из возможных причин заключается в том, что трансферное обучение (например, BERT, XLNet) является очень успешным, а разнообразие лексики слишком велико для внедрения метаобучения в НЛП.

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

Я специалист по анализу данных в районе залива. Сосредоточение внимания на последних достижениях науки о данных, особенно в области НЛП, дополнения данных и связанных с платформами. Не стесняйтесь связываться со мной в LinkedIn или Github.

Чтение расширений

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