Сконфигурируйте модель пошагового обучения

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

ПроблемаМетод созданияФункцияПоддерживаемые ученики
Бинарная классификацияОбъект CallincrementalClassificationLinear

Линейный SVM

Логистическая регрессия

Модель Convert

incrementalLearner преобразует линейную модель SVM (ClassificationSVM или CompactClassificationSVM)

incrementalLearner преобразует линейную модель классификации (ClassificationLinear)

Линейный SVM

Логистическая регрессия

РегрессияОбъект CallincrementalRegressionLinear

Линейная регрессия SVM

Метод наименьших квадратов

Модель Convert

incrementalLearner преобразует линейную модель регрессии SVM (RegressionSVM или CompactRegressionSVM)

incrementalLearner преобразует модель линейной регрессии (RegressionLinear)

Линейная регрессия SVM

Метод наименьших квадратов

Метод создания, который вы выбираете, зависит от информации, которую вы имеете и ваши настройки.

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

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

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

    Для получения дополнительной информации смотрите, Преобразуют Традиционно Обученную Модель.

Независимо от инкрементного метода создания модели вы решаете использовать, настройки, которые необходимо рассмотреть, включают:

  • Линейный тип модели, такой как модель SVM

  • Линейные начальные значения коэффициента модели

  • Решатель целевой функции, такой как стандартный SGD

  • Гиперзначения параметров решателя, такие как скорость обучения решателей SGD

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

Вызовите объект непосредственно

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

Mdl = incrementalRegressionLinear();

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

Mdl = incrementalClassificationLinear('Learner','logistic',...
    'Beta',Beta,'Bias',Bias,'MetricsWarmupPeriod',500);

Следующие таблицы кратко описывают известные опции для главных аспектов пошагового обучения. Для большего количества детали обо всех опциях смотрите incrementalRegressionLinear или incrementalClassificationLinear.

Опции модели и свойства данных

Следующая таблица содержит известные опции модели и характеристики данных.

ИмяОписание
'Beta'Линейные коэффициенты, также служащие начальными значениями для инкрементного подбора кривой
'Bias'Прерывание модели, также служащее начальным значением для инкрементного подбора кривой
'ClassNames'Для классификации, ожидаемых имен классов в метках наблюдения
'Learner'Тип модели, такой как линейный SVM или наименьшие квадраты.

Сгенерировать предсказания и потерю модели, коэффициенты модели, сохраненные в Beta и Bias свойства должны быть непустыми. Кроме того, для проблем классификации, оба имен классов сохранены в ClassNames свойство должно быть задано.

Обучение и опции решателя и свойства

Следующая таблица содержит известное обучение и опции решателя и свойства.

ИмяОписание
'EstimationPeriod'Предучебный период оценки
'Solver'Алгоритм оптимизации целевой функции
'Standardize'Отметьте, чтобы стандартизировать данные о предикторе
'Lambda'Гребенчатый штраф, гиперпараметр модели, который требует настройки для оптимизации SGD
'BatchSize'Мини-пакетный размер, гиперпараметр SGD
'LearnRate'Скорость обучения, гиперпараметр SGD
'Mu'Свойство только для чтения, содержащее средние значения переменного предиктора
'Sigma'Свойство только для чтения, содержащее стандартные отклонения переменного предиктора

Период оценки, заданный количеством наблюдений в EstimationPeriod, происходит, прежде чем обучение начинается (см. периоды пошагового обучения). В период оценки, инкрементные подходящие функции fit и updateMetricsAndFit вычислите количества, требуемые для обучения, когда они будут неизвестны. Например, если вы устанавливаете 'Standardize',true, функции пошагового обучения требуют, чтобы средние значения предиктора и стандартные отклонения стандартизировали данные о предикторе. Следовательно, инкрементная модель требует положительного периода оценки (значением по умолчанию является 1000).

Решатель по умолчанию является адаптивным инвариантным к масштабу решателем 'scale-invariant' [2], который свободен от гиперпараметра и нечувствителен к шкалам переменного предиктора, что означает, что стандартизация данных о предикторе не требуется. Можно задать стандартный или средний SGD вместо этого, 'sgd' или 'asgd', но SGD чувствителен к шкалам переменного предиктора, и он требует настройки гиперпараметра, которая может затруднить или быть невозможна сделать во время пошагового обучения. Если вы планируете установить решатель SGD:

  1. Получите маркированные данные.

  2. Традиционно обучите линейную классификацию или модель регрессии путем вызова fitclinear или fitrlinear, соответственно. Задайте решатель SGD, который вы планируете использовать для пошагового обучения, перекрестный подтвердить, чтобы определить соответствующий набор гиперпараметров и стандартизировать данные о предикторе.

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

  4. Преобразуйте получившуюся модель в инкрементного ученика при помощи incrementalLearner.

Опции оценки результатов деятельности и свойства

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

Следующая таблица содержит все опции оценки результатов деятельности и свойства.

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

Метрики заданы 'Metrics' форма пары "имя-значение" таблица, хранимая в Metrics свойство модели. Например, если вы задаете 'Metrics',["Metric1" "Metric2"] когда вы создаете инкрементную модель Mdl, Metrics свойство

>> Mdl.Metrics

ans =

  2×2 table
                Cumulative    Window
                __________    ______

    Metric1        NaN         NaN
    Metric2        NaN         NaN  

Задайте положительный метрический прогрев, когда вы полагаете, что модель имеет низкое качество и должна быть обучена перед функциями updateMetrics или updateMetricsAndFit отследите показатели производительности в Metrics свойство. В этом случае, IsWarm свойством является false, и необходимо передать входящие данные и модель к инкрементным подходящим функциям fit или updateMetricsAndFit.

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

Когда модель является теплой, updateMetrics и updateMetricsAndFit отследите все заданные метрики кумулятивно (от запуска оценки) и в окне наблюдений, заданных 'MetricsWindowSize' аргумент пары "имя-значение". Совокупные метрики отражают производительность модели по целой истории пошагового обучения; после того, как Период Оценки результатов деятельности 1 запускается, совокупные метрики независимы от испытательного срока. они независимы от. Метрики окна отражают производительность модели только свыше заданного размера окна в течение каждого периода оценки результатов деятельности.

Преобразуйте традиционно обученную модель

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

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

Mdl = fitcsvm(X,Y);
IncrementalMdl = incrementalLearner(Mdl,Name,Value);

IncrementalMdl инкрементный объект ученика, сопоставленный с проблемой изучения.

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

СвойствоОписание
BetaЛинейные коэффициенты модели
BiasПрерывание модели
ClassNamesДля проблем классификации класс помечает для бинарной классификации
EpsilonДля ученика регрессии SVM, половина ширины нечувствительной к эпсилону полосы
LearnerЛинейный тип модели
MuДля объекта модели SVM, средних значений переменного предиктора
NumPredictorsКоличество переменных предикторов. Для моделей, что фиктивный код категориальные переменные предикторы, NumPredictors numel(Mdl.ExpandedPredictorNames) и переменные предикторы, ожидаемые во время пошагового обучения, соответствуют именам. Для получения дополнительной информации смотрите Фиктивные Переменные.
PriorДля проблем классификации, предшествующего распределения метки класса
ResponseTransformДля проблем регрессии, функция, чтобы примениться к предсказанным ответам
ScoreTransform

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

SigmaДля объекта модели SVM, стандартных отклонений переменного предиктора

Примечание

  • NumTrainingObservations свойство IncrementalMdl не включает наблюдения, используемые, чтобы обучить Mdl.

  • Если вы задаете 'Standardize',true когда вы обучаете Mdl, IncrementalMdl сконфигурирован, чтобы стандартизировать предикторы во время пошагового обучения по умолчанию.

Следующие условия применяются, вы преобразуете линейную классификацию или модель регрессии (ClassificationLinear и RegressionLinear, соответственно):

  • Инкрементные подходящие функции поддерживают гребень (L2) регуляризация только.

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

  • Если вы решаете целевую функцию при помощи стандартного или среднего SGD ('sgd' или 'asgd' для 'Solver' аргумент пары "имя-значение"), следующие условия применяются, когда вы вызываете incrementalLearner:

    • incrementalLearner передает решатель, используемый, чтобы оптимизировать Mdl к IncrementalMdl.

    • Можно задать адаптивный инвариантный к масштабу решатель 'scale-invariant' вместо этого, но вы не можете задать различный решатель SGD.

    • Если вы не задаете адаптивный инвариантный к масштабу решатель, incrementalLearner модель передач и гиперзначения параметров решателя к инкрементному объекту модели, такие как скорость обучения LearnRate, мини-пакетный размер BatchSize, и гребенчатый штраф Lambda. Переданные свойства являются немодифицируемыми.

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

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

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

% Classification
Mdl = fitcsvm(Xc,Yc);
IncrementalMdl = incrementalClassificationLinear('Beta',Mdl.Beta,...
    'Bias',Mdl.Bias,'ClassNames',Mdl.ClassNames);

% Regression
Mdl = fitlm(Xr,Yr);
Bias = Mdl.Coefficients.Estimate(1);
Beta = Mdl.Coefficients.Estimate(2:end);
IncrementalMdl = incrementalRegressionLinear('Learner','leastsquares',...
    'Bias',Bias,'Beta',Beta);

Ссылки

[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.

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

Объекты

Функции