Этот контент был опубликован с разрешения Leuven.AI.

Машинное обучение (ML) - это тип искусственного интеллекта (AI), при котором машины могут учиться на огромных объемах данных, таких как изображения или текст, содержащих очень сложные шаблоны. Раньше эти шаблоны нужно было обнаруживать на основе созданных вручную практических правил, тогда как сегодня сила алгоритмов машинного обучения заключается в автоматическом обнаружении этих шаблонов. Многие современные успехи в основном связаны с возрождением особого алгоритма машинного обучения, называемого искусственными нейронными сетями. Эти нейронные сети отлично справляются с широким кругом соответствующих задач, от обнаружения пешеходов и автомобилей на видео до создания убедительных статей и даже в значительной степени облегчения поиска лекарств путем прогнозирования белковых структур.

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

Преодоление катастрофы

Рассмотрим систему обнаружения объектов для беспилотного автомобиля. Для безопасной эксплуатации мы даем нашему автомобилю задачу обнаруживать пешеходов и велосипедистов. Обучая нашу нейронную сеть на большом количестве образцов, она делает замечательную работу. Однако повсюду появляются новые категории объектов, такие как ховерборды и электрические ступеньки. Если бы мы сейчас обновили нашу систему обнаружения множеством соответствующих изображений для этой новой задачи, она опять же отлично справилась бы с обнаружением ховербордов и электрических ступеней. Но есть загвоздка: наша система полностью забывала о пешеходах и велосипедистах в старой задаче, оставляя их незамеченными! Это явление известно как катастрофическое забывание в нейронных сетях.

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

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

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

Представляя мир

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

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

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

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

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

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

Развивающиеся прототипы

Недавняя работа в лаборатории профессора Тинне Туйтелаарса направлена ​​на решение проблемы ухудшения качества прототипов с помощью Continual Prototype Evolution, называемого CoPE. Основная цель этого подхода непрерывного обучения - постоянно обновлять прототипы всех концепций. Поскольку знания о наших предыдущих концепциях хранятся в наших адаптивных прототипах, нам не нужно хранить все данные для переподготовки, как при стандартных подходах к машинному обучению. Следовательно, если мы решим добавить изображения новых концепций, таких как крендели, в нашу коллекцию изображений для выпечки, нам не нужно начинать заново обучать нейронную сеть, но мы можем научиться от них так же, как и мы, люди, без катастрофического забвения.

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

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

1. Обновить прототип

2. Обновить представление с помощью прототипов

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

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

Использование псевдопрототипов в функции ошибок PPP:

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

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

Этот блог перепечатан с разрешения Leuven.AI, Института искусственного интеллекта KU Leuven. Вы можете найти исходную статью здесь.