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

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

  1. Одно предположение новичка, которое мы делаем, заключается в том, что модель будет вести себя так же, как и во время обучения. Следует знать и понимать, что статические алгоритмы машинного обучения со временем становятся менее полезными.
  2. Следуйте практикам, применяемым при развертывании программного обеспечения для развертывания моделей машинного обучения. Излишне говорить, что разработка программного обеспечения — это не то же самое, что разработка модели, и, следовательно, развертывание тоже должно быть другим.
  3. Развертывание одних и тех же моделей для каждой группы, сообщества, региона или географического региона также может привести к проблемам. Я не собираюсь создавать разные модели для каждой отдельной категории, но, по крайней мере, иметь отдельные модели для более крупных регионов или географических регионов.

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

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

  1. Переоснащение
  2. Тренировочно-обслуживающий перекос
  3. Концепция дрейфа
  4. Согласованные противники

Переоснащение

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

Для полноты приведем краткое описание переобучения:

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

Различные меры по предотвращению переобучения:

  1. Регуляризация путем ограничения модели или сложности модели.
  2. Перекрестная проверка, когда небольшая пропущенная часть обучающих данных действует как невидимые данные. Окончательная модель — это та, которая лучше всего работает в среднем на оставшихся участках.
  3. Dropout — это метод, широко используемый в нейронных сетях, когда во время обучения определенные ячейки отбрасываются случайным образом. Правда, это происходит только во время тренировок.
  4. Обучение ансамблем объединяет прогнозы различных моделей. Это уменьшает ошибку дисперсии и приводит к гораздо лучшей модели. Такие методы, как случайный лес и повышение градиента, являются хорошо известными методами.

Тренировочно-обслуживающий перекос

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

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

Для предотвращения перекоса в обучении можно принять следующие меры:

  1. Излишне говорить, что лучший способ решить эту проблему — обеспечить, чтобы пакетные и потоковые данные обрабатывались одинаковым образом с использованием одного и того же конвейера. Очистка, преобразование и все соответствующие задачи должны быть одинаковыми для данных обучения и тестирования. На самом деле это настолько важно, что существуют разные архитектуры для обеспечения этой необходимости: архитектура Lamda и архитектура Kappa. Обе эти архитектуры следует рассмотреть перед развертыванием и выбрать ту, которая соответствует вашим потребностям. Вот короткая и хорошо объясненная статья об этих архитектурах.

Дрейф концепции

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

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

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

  1. Продолжайте отслеживать и переобучать обученные модели. Это может происходить с любой частотой в зависимости от модели и приложения. Переобучение означает обучение той же модели с новыми данными. Мониторинг может включать в себя то, как ведет себя модель, путем частой проверки показателей оценки.
  2. Переработайте свои модели с нуля, если вышеуказанное решение не работает. Переобучение и переподготовка могут показаться знакомыми, но есть одна загвоздка! Редевелопмент означает повторное прохождение этапа моделирования. Это может привести к другой модели или той же модели с другой сложностью. Например. linear svm может стать ядром svm.

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

Согласованные противники

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

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

Единственный способ смягчить эту проблему злоумышленников — использовать ручное обучение с помощью людей:

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

Непрерывное ручное обучение необходимо для победы над согласованными противниками.

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

На эту статью повлиял курс множественного числа. Особая благодарность Джанани Рави, которая прошла этот курс и помогла мне изучить эти концепции.

Примечание от AI In Plain English

Мы всегда заинтересованы в помощи в продвижении качественного контента. Если у вас есть статья, которую вы хотели бы отправить в какое-либо из наших изданий, отправьте нам электронное письмо по адресу [email protected], указав свое имя пользователя на Medium, и мы добавим вас в качестве автора.