Модели, которые когда-то хорошо себя зарекомендовали, могут начать портиться. Вот как вы могли бы остаться на курсе.

Во вселенной есть только одна константа — ИЗМЕНЕНИЕ!

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

Идеальная модель с течением времени не может предсказывать, как раньше. Это не ошибка; так работают модели машинного обучения. Ожидать этого — работа инженера по машинному обучению.

Модель ML в производстве очень похожа на рафтинг. Что еще хуже — это река, по которой раньше никто не путешествовал. Вы должны чувствовать течение, чтобы предвидеть, что впереди. Игнорирование опасностей может привести ваш плот к обрыву.

Преобразовывая его в MLOps, вы должны активно отслеживать базовые изменения данных, прежде чем ваша модель начнет падать с обрыва — прежде чем они сделают неточные прогнозы.

Это явление широко известно как «Дрейф понятий».

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

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

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



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

Имейте график переподготовки для ваших моделей.

Переобучение — это простая концепция для понимания. В каждом цикле вы получаете новый набор данных. Вы можете использовать их для обучения модели еще раз с нуля.

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

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

  • только ваши новые данные;
  • все ваши прошлые данные или;
  • полный набор данных с большим весом последних точек данных.

Переобучение моделей только с последними данными.

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

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

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

Идите на это только тогда, когда ваши старые данные, несомненно, не имеют значения.

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

Повторное обучение на всех ваших прошлых наборах данных

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

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

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

Но это может быть неизбежно, если ваша модель имеет множество параметров. Чтобы избежать переобучения, ваш набор данных должен быть достаточно большим.

Повторное обучение с большим весом на последних точках данных

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

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

Но чтобы это работало, ваш алгоритм должен поддерживать выбор точки данных. Если нет, вы можете выбрать набор данных с большим весом по сравнению с последними.

Регулярно обновляйте свою старую модель новыми данными.

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

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

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

С другой стороны, этот метод подходит, если вы должны сохранять прошлые знания и адаптироваться к новым изменениям.

Расширение ваших моделей новыми компонентами.

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

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

В переносном обучении вы берете предварительно обученную нейронную сеть для переобучения. Вместо переобучения всей модели вы распаковываете только последний слой сети. Это часто называют разморозкой. Теперь вы обучаете предыдущий слой вашим новым данным. Модель не забывает все, чему научилась раньше. Тем не менее самые последние данные играют решающую роль в окончательном решении.



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

Иногда ничего не делать - это нормально!

Вы правильно прочитали.

Ничегонеделание означает, что вы обучаете модель и используете ее в течение длительного периода времени. Он также известен как статические модели.

Статические модели привлекательны по нескольким причинам.

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

Кроме того, когда вы вносите изменения в существующую модель, вам нужен эталон для оценки. Статические модели также являются идеальной целью.

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

Последние мысли

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

Это только начало.

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

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

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

Вы можете переобучить, обновить или расширить модель! У каждого есть свои преимущества и недостатки.

Что бы вы сделали, если бы ваши модели не смогли точно предсказать?

Спасибо за прочтение, друг! Передайте мне привет в LinkedIn, Twitter и Medium.

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