Incremental learning или online learning, является ветвью машинного обучения, касавшегося обработки входящих данных от потока данных — постоянно и в режиме реального времени — возможно, учитывая мало ни к какому знанию распределения переменных предикторов, объема выборки, аспектов предсказания или целевой функции (включая соответствующие настраивающие значения параметров), или пометили ли наблюдения.
Алгоритмы пошагового обучения гибки, эффективны, и адаптивны. Следующие характеристики отличают пошаговое обучение от традиционного машинного обучения.
Инкрементная модель является подходящей к данным быстро и эффективно, что означает, что это может адаптироваться, в режиме реального времени, к изменениям или drifts в распределении данных.
Поскольку метки наблюдения могут отсутствовать, когда соответствующие данные о предикторе доступны, алгоритм должен смочь сгенерировать предсказания от последней версии модели быстро и задержать обучение модель.
Поскольку мало информации может быть известно о населении, прежде чем пошаговое обучение запустится, алгоритм может быть запущен с cold start. Например, для проблем классификации, имена классов не могут быть известны до окончания наблюдений процессов модели. В случаях, когда достаточно информации известно, прежде чем начинается изучение (например, хорошие оценки линейных коэффициентов модели), такая информация может быть указана, чтобы предоставить модели warm start.
Поскольку наблюдения могут прибыть в поток, объем выборки является, вероятно, неизвестным и возможно большим, который делает хранение данных неэффективным или невозможным. Поэтому алгоритм должен обработать наблюдения, когда они доступны и прежде чем система отбросит их. Эта характеристика пошагового обучения делает гиперпараметр, настраивающийся трудный или невозможный.
В традиционном машинном обучении пакет маркированных данных доступен, чтобы выполнить перекрестную проверку, чтобы оценить ошибку обобщения и гиперпараметры мелодии, вывести распределение переменного предиктора и подбирать модель. Однако получившаяся модель должна быть переобучена с нуля при лежании в основе дрейфа распределений, или модель ухудшается. Несмотря на то, что перекрестная проверка, чтобы настроить гиперпараметры затрудняет, чтобы выполнить в среде пошагового обучения, методы пошагового обучения гибки, потому что они могут адаптироваться к дрейфу распределения в режиме реального времени с прогнозирующей точностью, приближающейся к той из традиционно обученной модели, когда модель обучает больше данных.
Предположим, что инкрементная модель готова сгенерировать предсказания и для ее прогнозирующей эффективности, которая будет измерена. Учитывая входящие фрагменты наблюдений, схема пошагового обучения обрабатывает данные в режиме реального времени и любым из следующих способов, но обычно заданным порядком:
Оцените Модель: Отследите прогнозирующую эффективность модели, когда истинные метки будут доступны, или на входящих данных только по раздвижному окну наблюдений, или по целой истории модели, используемой для пошагового обучения.
Обнаружьте Дрейф: Проверяйте на структурные пропуски или дрейф распределения, например, определите, изменилось ли распределение какого-либо переменного предиктора достаточно.
Обучите Модель: Обновите модель по образованию это на входящих наблюдениях, когда истинные метки доступны или когда текущая модель достаточно ухудшилась.
Сгенерируйте Предсказания: Предскажите метки из последней модели.
Процедура является особым случаем пошагового обучения, в котором обработаны все входящие фрагменты, когда тест (протягивает) наборы. Процедура называется interleaved test-then-train или prequential evaluation [1].
Если недостаточная информация существует для инкрементной модели, чтобы сгенерировать предсказания, или вы не хотите отслеживать прогнозирующую эффективность модели, потому что это не было обучено достаточно, можно включать дополнительный начальный шаг, чтобы найти соответствующие значения для гиперпараметров (estimation period) и период начальной подготовки перед оценкой модели (metrics warm-up period).
Как пример проблемы пошагового обучения, рассмотрите умный термостат, который автоматически устанавливает температуру, учитывая температуру окружающей среды, относительную влажность, время суток и другие измерения, и может изучить внутренние температурные настройки пользователя. Предположим, что производитель подготовил устройство путем встраивания известной модели, которая описывает настройки среднего человека, учитывая измерения. После установки устройство собирает данные каждую минуту и корректирует температуру к ее предварительным установкам. Термостат настраивает встроенную модель или переобучает себя, на основе действий пользователя или бездействий с устройством. Этот цикл может продолжиться неопределенно. Если термостат ограничил дисковое пространство, чтобы хранить исторические данные, это должно переобучить себя в режиме реального времени. Если производитель не подготовил устройство с известной моделью, устройство переобучает себя чаще.
Функциональности 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. Для простоты следующие описания рабочего процесса принимают, что модель готова оценить производительность модели (периоду оценки удовлетворяют, и модель является теплой).
Гибкий Рабочий процесс — Когда фрагмент данных доступен:
Вычислите совокупный и метрики производительности модели окна путем передачи модели данных и текущей модели к updateMetrics
функция. Данные обработаны, когда тест (протягивает) данные, потому что модель еще не была обучена на нем. updateMetrics
перезаписывает производительность модели, сохраненную в модели новыми значениями.
Опционально обнаружьте дрейф распределения или ухудшилась ли модель.
Обучите модель путем передачи входящего фрагмента данных и текущей модели к fit
функция. fit
функционируйте использует заданный решатель, чтобы подбирать модель к входящему фрагменту данных, и это перезаписывает текущие коэффициенты и смещение с новыми оценками.
Гибкий рабочий процесс позволяет вам выполнить пользовательскую модель и оценки качества данных прежде, чем решить, обучить ли модель. Все шаги являются дополнительными, но вызов updateMetrics
прежде fit
когда вы планируете вызвать обе функции.
Сжатый Рабочий процесс — Когда фрагмент данных будет доступен, предоставьте входящий фрагмент и сконфигурированную инкрементную модель к updateMetricsAndFit
функция. updateMetricsAndFit
всегда вызовы updateMetrics
сразу сопровождаемый fit
. Сжатый рабочий процесс позволяет вам реализовать пошаговое обучение с prequential оценкой легко, когда вы планируете отследить производительность модели и обучить модель на всех входящих фрагментах данных.
Если вы создаете инкрементный объект модели и выбираете, который рабочий процесс использовать, запишите цикл, который реализует пошаговое обучение:
Считайте фрагмент наблюдений от потока данных, когда фрагмент будет доступен.
Реализуйте гибкий или сжатый рабочий процесс. Чтобы выполнить пошаговое обучение правильно, перезапишите входную модель с выходной моделью. Например:
% Flexible workflow Mdl = updateMetrics(Mdl,X,Y); % Insert optional code Mdl = fit(Mdl,X,Y); % Succinct workflow Mdl = updateMetrics(Mdl,X,Y);
loss
функция. loss
возвращает скалярную потерю; это не настраивает модель.Настройки модели определяют, обучают ли функции пошагового обучения или оценивают производительность модели во время каждой итерации; настройки могут измениться, когда функции обрабатывают данные. Для получения дополнительной информации смотрите Периоды Пошагового обучения.
Опционально:
Учитывая входящие фрагменты данных, функции пошагового обучения действий выполняют, зависят от текущей настройки или состояния модели. Этот рисунок показывает периоды (последовательные группы наблюдений), во время которого функции пошагового обучения выполняют конкретные действия.
Эта таблица описывает функции пошагового обучения действий, выполняют в каждый период.
Период | Связанные свойства модели | Размер (Количество наблюдений) | Действия |
---|---|---|---|
Оценка | EstimationPeriod | n 1 | При необходимости подходящие функции выбирают значения для гиперпараметров на основе наблюдений периода оценки. Действия включают следующее:
|
Метрический прогрев | MetricsWarmupPeriod | n 2 – n 1 | Когда свойство
|
Оценка результатов деятельности j | Metrics и MetricsWindowSize | m |
|
fit
| loss
| predict
| updateMetrics
| updateMetricsAndFit