Обзор пошагового обучения

Что такое Пошаговое обучение?

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

Алгоритмы пошагового обучения гибки, эффективны, и адаптивны. Следующие характеристики отличают пошаговое обучение от традиционного машинного обучения.

  • Инкрементная модель является подходящей к данным быстро и эффективно, что означает, что это может адаптироваться, в режиме реального времени, к изменениям или drifts в распределении данных.

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

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

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

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

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

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

  2. Обнаружьте Дрейф: Проверяйте на структурные пропуски или дрейф распределения, например, определите, изменилось ли распределение какого-либо переменного предиктора достаточно.

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

  4. Сгенерируйте Предсказания: Предскажите метки из последней модели.

Процедура является особым случаем пошагового обучения, в котором обработаны все входящие фрагменты, когда тест (протягивает) наборы. Процедура называется interleaved test-then-train или prequential evaluation [1].

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

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

Пошаговое обучение с MATLAB

Объекты модели пошагового обучения

Функциональности Statistics and Machine Learning Toolbox™ позволяют вам реализовать пошаговое обучение для бинарной классификации или регрессию с помощью линейной модели. Объектом модели точки входа для бинарной классификации является incrementalClassificationLinear, и для регрессии, объектом модели точки входа является incrementalRegressionLinear.

Свойства объекта модели пошагового обучения задают:

  • Характеристики данных, такие как количество переменных предикторов NumPredictors и их первые и вторые моменты Mu и Sigma

  • Линейные характеристики модели, такие как тип ученика Learner, линейные коэффициенты Beta, и прервите Bias

  • Опции обучения, такие как объективный решатель Solver и специфичные для решателя гиперпараметры, такие как гребенчатый штраф Lambda для стандартного и среднего стохастического градиентного спуска (SGD и ASGD)

  • Характеристики оценки производительности модели и опции, такой как, является ли моделью теплый IsWarm, какие показатели производительности отследить Metrics, и последние значения показателей производительности.

В отличие от других объектов модели машинного обучения, можно создать любую модель путем прямого вызова объекта и определения значений свойств синтаксиса аргумента пары "имя-значение" использования опций — вы не должны подбирать модель к данным, чтобы создать тот. Эта функция удобна, когда у вас есть минимальная информация о данных или модели перед обучением она. В зависимости от ваших технических требований программное обеспечение может осуществить оценку, и метрики нагревают периоды, в которые инкрементные подходящие функции выводят характеристики данных, и затем обучает модель оценке результатов деятельности. Кроме того, по умолчанию программное обеспечение решает целевую функцию с помощью адаптивного инвариантного к масштабу решателя, который не требует настройки и нечувствителен к шкалам переменного предиктора [2].

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

Функции пошагового обучения

Объект модели пошагового обучения задает все аспекты алгоритма пошагового обучения от учебной и подготовки к оценке модели до учебной и оценки модели. Чтобы реализовать пошаговое обучение, вы передаете сконфигурированную модель пошагового обучения инкрементному подбору кривой или функции оценки модели. Функции пошагового обучения Statistics and Machine Learning Toolbox предлагают два рабочих процесса, которые хорошо подходят для изучения prequential. Для простоты следующие описания рабочего процесса принимают, что модель готова оценить производительность модели (периоду оценки удовлетворяют, и модель является теплой).

  • Гибкий Рабочий процесс — Когда фрагмент данных доступен:

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

    2. Опционально обнаружьте дрейф распределения или ухудшилась ли модель.

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

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

  • Сжатый Рабочий процесс — Когда фрагмент данных будет доступен, предоставьте входящий фрагмент и сконфигурированную инкрементную модель к updateMetricsAndFit функция. updateMetricsAndFit всегда вызовы updateMetrics сразу сопровождаемый fit. Сжатый рабочий процесс позволяет вам реализовать пошаговое обучение с prequential оценкой легко, когда вы планируете отследить производительность модели и обучить модель на всех входящих фрагментах данных.

Если вы создаете инкрементный объект модели и выбираете, который рабочий процесс использовать, запишите цикл, который реализует пошаговое обучение:

  1. Считайте фрагмент наблюдений от потока данных, когда фрагмент будет доступен.

  2. Реализуйте гибкий или сжатый рабочий процесс. Чтобы выполнить пошаговое обучение правильно, перезапишите входную модель с выходной моделью. Например:

    % Flexible workflow
    Mdl = updateMetrics(Mdl,X,Y);
    % Insert optional code
    Mdl = fit(Mdl,X,Y);
    
    % Succinct workflow
    Mdl = updateMetrics(Mdl,X,Y);
    Модель отслеживает свою эффективность на входящих данных инкрементно с помощью метрик, измеренных с начала (совокупного) обучения и по заданному окну последовательных наблюдений (окно). Однако можно опционально вычислить потерю модели на входящем фрагменте, передать входящий фрагмент и текущую модель к loss функция. loss возвращает скалярную потерю; это не настраивает модель.

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

  3. Опционально:

    • Сгенерируйте предсказания путем передачи фрагмента и последней модели к predict.

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

Периоды пошагового обучения

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

A number line showing the periods incremental learning functions perform particular actions.

Эта таблица описывает функции пошагового обучения действий, выполняют в каждый период.

ПериодСвязанные свойства моделиРазмер (Количество наблюдений)Действия
ОценкаEstimationPeriod

n 1

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

  • Оцените моменты предиктора Mu и Sigma для стандартизации данных

  • Автоматически настройте скорость обучения LearningRate для решателей SGD

  • Оцените параметр регрессии SVM ε Epsilon

  • Сохраните информационные буферы, требуемые для оценки.

  • Обновите соответствующие свойства в конце периода.

Метрический прогревMetricsWarmupPeriod

n 2n 1

Когда свойство IsWarm false, подходящие функции выполняют следующие действия:

  • Подбирайте модель к входящему фрагменту данных.

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

  • В конце периода модель является теплой (IsWarm свойство становится true).

Оценка результатов деятельности jMetrics и MetricsWindowSizem
  • В начале Периода Оценки результатов деятельности 1, функции начинают отслеживать совокупный Cumulative и окно Window метрики. Windowвектор из NaNs в течение этого периода.

  • Функции перезаписывают Cumulative метрики с обновленной совокупной метрикой в каждой итерации. В конце каждого Периода Оценки результатов деятельности функции вычисляют и перезаписывают Window метрики на основе последних наблюдений m.

  • Функции хранят информационные буферы, требуемые для вычислительной производительности модели.

Ссылки

[1] Bifet, Альберт, Ricard Gavaldá, Джеффри Холмс и Бернхард Пфарингер. Machine Learning for Data Streams with Practical Example in MOA. Кембридж, MA: нажатие MIT, 2007.

[2] Kempka, Michał, Войцех Kotłowski и Манфред К. Вармут. "Адаптивные Инвариантные к масштабу Онлайновые Алгоритмы для Изучения Линейных Моделей". CoRR (февраль 2019). https://arxiv.org/abs/1902.07528.

Смотрите также

Объекты

Функции