Итак, я не смог найти никакой литературы по этому вопросу, но мне кажется, что стоит подумать:
Каковы лучшие практики в обучении и оптимизации моделей, если доступны новые наблюдения?
Есть ли способ определить период / частоту переобучения модели до того, как прогнозы начнут ухудшаться?
Является ли это чрезмерным, если параметры повторно оптимизированы для агрегированных данных?
Обратите внимание, что обучение не обязательно должно быть онлайн. Возможно, вы захотите обновить существующую модель после наблюдения значительных расхождений в более поздних прогнозах.
Ответы:
.pickle
файла, загрузить ее и продолжить обучение, когда появятся новые данные. Обратите внимание, что для правильного прогнозирования моделиthe new training data should have a similar distribution as the past data
.The frequency will be dependent on dataset
и нет конкретного времени, чтобы заявить как таковой.If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model
,источник
Когда доступны новые наблюдения, есть три способа переобучить вашу модель:
Большинство моделей сегодня будет использовать пакетную / мини-серию, и выбор размера партии зависит от вашего приложения и модели. Выбор правильного размера партии эквивалентен выбору правильной частоты, с которой нужно переучивать вашу модель. Если ваши новые наблюдения имеют низкую дисперсию с вашими существующими данными, я бы предложил более крупные партии (возможно, 256-512), а если, наоборот, новые наблюдения, как правило, сильно отличаются от ваших существующих данных, используйте небольшие партии (8-256). В конце концов, размер пакета подобен другому гиперпараметру, который вам нужно настроить и который зависит от ваших данных.
источник
Ваша проблема находится под эгидой методов онлайн-обучения. Предполагая, что поток данных поступает, вы можете использовать метод Stochastic Gradient Descent, чтобы обновить параметры модели, используя этот единственный пример.
Если ваша функция стоимости:
По сути, это SGD с размером партии 1.
Есть еще одна хитрость: вы можете применить метод на основе окна / буфера, где вы буферизуете некоторые примеры из потока и рассматриваете его как пакетный и используете пакетный SGD. В этом случае уравнение обновления станет:
По сути это мини-партия SGD.
источник
Вопрос: ДОЛЖЕН ли ты переобучаться?
Ответ зависит от того, что пытается сделать ваша модель и в какой среде она применяется.
Позвольте мне объяснить на нескольких примерах:
Предположим, что ваша модель пытается предсказать поведение клиентов, например, насколько вероятно, что покупатель купит ваш продукт с учетом предложения, разработанного специально для него. Очевидно, что рынок со временем меняется, меняются предпочтения клиентов, а ваши конкуренты приспосабливаются. Вы также должны приспособиться, поэтому вам необходимо периодически переучиваться. В таком случае я бы порекомендовал добавить новые данные, но также опустить старые данные, которые больше не актуальны. Если рынок быстро меняется, вам следует даже периодически рассматривать переподготовку на основе только новых данных.
С другой стороны, если ваша модель классифицирует некоторые изображения (например, рентген или МРТ) в соответствии с медицинскими условиями, и модель работает хорошо, вам не нужно переподготовку, если нет изменений в технологии или медицинских ноу-хау , Добавление большего количества данных не сильно улучшит.
источник