Следует ли переподготовить модель, если появятся новые наблюдения?

28

Итак, я не смог найти никакой литературы по этому вопросу, но мне кажется, что стоит подумать:

  • Каковы лучшие практики в обучении и оптимизации моделей, если доступны новые наблюдения?

  • Есть ли способ определить период / частоту переобучения модели до того, как прогнозы начнут ухудшаться?

  • Является ли это чрезмерным, если параметры повторно оптимизированы для агрегированных данных?

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

user140323
источник
Ответ сильно зависит от бизнес-сферы и конкретной модели приложения.
Пит

Ответы:

16
  1. После того, как модель обучена, и вы получите новые данные, которые можно использовать для обучения, вы можете загрузить предыдущую модель и обучить ее. Например, вы можете сохранить свою модель в виде .pickleфайла, загрузить ее и продолжить обучение, когда появятся новые данные. Обратите внимание, что для правильного прогнозирования модели the new training data should have a similar distribution as the past data.
  2. Прогнозы, как правило, ухудшаются в зависимости от набора данных, который вы используете. Например, если вы пытаетесь тренироваться, используя данные из твиттера, и вы собрали данные о продукте, который широко распространен в твиттере в этот день. Но если вы используете твиты через несколько дней, когда этот продукт даже не обсуждается, он может быть предвзятым. 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,
  3. Оптимизация параметров на агрегированных данных не является чрезмерной. Большие данные не подразумевают переоснащение. Используйте перекрестную проверку, чтобы проверить на предмет соответствия.
Хима Варша
источник
Таким образом, если характер ввода набора данных остается неизменным повсюду, нет ничего нового, что модель может изучить?
user140323
Если данные не меняются, и если вас устраивает точность текущей модели, я не вижу смысла в ее переподготовке.
Хима Варша
@Aayush, может быть, вы можете использовать входящие данные в качестве набора проверки и проверить вашу текущую модель.
Хима Варша
Еще рано принимать, но я буду. Благодарность!
user140323
Здравствуйте @ tktktk0711, у меня нет кода, чтобы показать вам. Но просто пройдите через это, что указывает на другую ссылку с кодом. github.com/tflearn/tflearn/issues/39
Хима Варша
20

Когда доступны новые наблюдения, есть три способа переобучить вашу модель:

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

Большинство моделей сегодня будет использовать пакетную / мини-серию, и выбор размера партии зависит от вашего приложения и модели. Выбор правильного размера партии эквивалентен выбору правильной частоты, с которой нужно переучивать вашу модель. Если ваши новые наблюдения имеют низкую дисперсию с вашими существующими данными, я бы предложил более крупные партии (возможно, 256-512), а если, наоборот, новые наблюдения, как правило, сильно отличаются от ваших существующих данных, используйте небольшие партии (8-256). В конце концов, размер пакета подобен другому гиперпараметру, который вам нужно настроить и который зависит от ваших данных.

tombarti
источник
Привет, я хочу спросить вас онлайн: как онлайн для новых данных. Этот метод ограничивает какую-либо модель ML, я имею в виду не все машинное обучение
tktktk0711
Знаете ли вы какие-либо примеры тензорного потока, которые используют пакет ?
Maxisme
1

Ваша проблема находится под эгидой методов онлайн-обучения. Предполагая, что поток данных поступает, вы можете использовать метод Stochastic Gradient Descent, чтобы обновить параметры модели, используя этот единственный пример.

Если ваша функция стоимости:

минθJ(Икс,Y,θ)

θИкся,Yя

θTзнак равноθT-1-θJ(Икся,Yя)

По сути, это SGD с размером партии 1.

Есть еще одна хитрость: вы можете применить метод на основе окна / буфера, где вы буферизуете некоторые примеры из потока и рассматриваете его как пакетный и используете пакетный SGD. В этом случае уравнение обновления станет:

θTзнак равноθT-1-ΣяθJ(Икся,Yя)

По сути это мини-партия SGD.

ШАШАНК ГУПТА
источник
0

Вопрос: ДОЛЖЕН ли ты переобучаться?

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

Позвольте мне объяснить на нескольких примерах:

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

С другой стороны, если ваша модель классифицирует некоторые изображения (например, рентген или МРТ) в соответствии с медицинскими условиями, и модель работает хорошо, вам не нужно переподготовку, если нет изменений в технологии или медицинских ноу-хау , Добавление большего количества данных не сильно улучшит.

Йосси Леви
источник