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

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

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

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

Онлайн-обучение:

Предположим, у вас есть работающая модель, которая работает с непрерывным потоком данных. Он должен обновлять оценки по мере поступления новой точки данных, а не ждать до конца, чтобы получить полный пакет данных. Здесь мы применяем онлайн-обучение.

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

Онлайн-обучение лучше всего в сценарии

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

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

Но это не никоим образом не означает, что онлайн-обучение в целом лучше, чем офлайн-обучение.

Давайте сравним обе эти техники обучения.

Обучение моделей:

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

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

Время вычисления:

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

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

Использование в производстве:

Что ж, учитывая тот факт, что наша онлайн-обученная модель учится при поступлении новых точек данных, этими моделями довольно сложно управлять в производственной среде. Любые изменения в шаблоне данных (дрейф концепции) повлияют на общую производительность и прогнозы модели.

Итак, онлайн-обучение совсем не похоже на то, чтобы оставить нашу модель на автопилоте.

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

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

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

Несколько важных моментов об онлайн-обучении:

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

Подвох:

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

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

Теперь возникает большой вопрос.

Сохраняет ли онлайн-обучение старые концепции или знания, когда сталкивается с новыми данными?

К сожалению, нет.

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

Непрерывное обучение:

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

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

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

И да, это шаг к общему искусственному интеллекту.

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

Давайте рассмотрим пример машинного обучения с замкнутым циклом непрерывного обучения.

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

⦁ У нас должны быть данные, какая-то проверка. Это может включать тесты или внутренние тесты, такие как определение качества данных. Это также может быть предварительная обработка, которую вы выполняете.

⦁ Далее на очереди AutoML. AutoML в непрерывном обучении — очень важная часть конвейера, аналогичная этапу обучения в типичном конвейере машинного обучения.

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

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

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

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

Проблема непрерывного обучения

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

Системы машинного обучения обычно требуют различных шагов обработки данных до того, как данные будут введены в модель. Эти этапы спора включают очистку данных и показ данных. К сожалению, обработка данных — очень трудоемкий и, как правило, ручной процесс. Обработка данных часто занимает более 90% времени разработчика. Ручной характер обработки данных становится проблемой, когда мы рассматриваем систему, предназначенную для постоянной адаптации к новым данным. В такой ситуации нет места трудоемкому ручному процессу обработки данных!

Другие виды обучения:

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

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

Модельное переобучение по сравнению с другим обучением (онлайн, непрерывное и т. д.)

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

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

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

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

До тех пор,

Приятного обучения😊