Обнаружение аномалий в производственных данных с помощью Amazon SageMaker Canvas | Веб-сервисы Amazon

Обнаружение аномалий в производственных данных с помощью Amazon SageMaker Canvas | Веб-сервисы Amazon

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

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

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

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

Обнаружение аномалий для обрабатывающей промышленности

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

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

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

Обзор решения

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

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

Следующая диаграмма иллюстрирует архитектуру решения.

Обзор процесса: модель создается в SageMaker Canvas, развертывается и затем доступна из AWS Lambda Funcino.

Решение состоит из четырех ключевых шагов:

  1. Эксперт предметной области создает исходную модель, включая анализ данных и подбор функций с помощью SageMaker Canvas.
  2. Эксперт предметной области делится моделью через Реестр моделей Amazon SageMaker или развертывает его напрямую как конечную точку реального времени.
  3. Эксперт MLOps создает инфраструктуру вывода и код, преобразующий выходные данные модели из прогноза в индикатор аномалии. Этот код обычно выполняется внутри AWS Lambda функции.
  4. Когда приложению требуется обнаружение аномалии, оно вызывает функцию Lambda, которая использует модель для вывода и предоставляет ответ (независимо от того, является ли это аномалией или нет).

Предпосылки

Чтобы следовать этому посту, вы должны выполнить следующие предварительные условия:

Создайте модель с помощью SageMaker.

Процесс создания модели соответствует стандартным шагам создания регрессионной модели в SageMaker Canvas. Для получения дополнительной информации см. Начало работы с Amazon SageMaker Canvas.

Сначала эксперт в предметной области загружает в SageMaker Canvas соответствующие данные, например временные ряды измерений. В этом посте мы используем CSV-файл, содержащий (синтетически сгенерированные) измерения электродвигателя. Подробности см. Импорт данных в Canvas. Используемые образцы данных доступны для скачивания в виде CSV.

Изображение, показывающее первые строки CSV. Кроме того, для модели быстрого предварительного просмотра отображаются гистограмма и контрольные показатели.

Контролируйте данные с помощью SageMaker Canvas

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

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

Чтобы проиллюстрировать представление о том, какие величины выбирать для ввода и вывода, рассмотрим несколько примеров:

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

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

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

Обучение, настройка и оценка модели

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

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

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

График, показывающий фактическую и прогнозируемую скорость двигателя. Зависимость линейная с некоторым шумом.

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

Развернуть модель

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

В этом посте для простоты мы развертываем модель как конечную точку напрямую из SageMaker Canvas. Инструкции см. Развертывайте свои модели в конечной точке. Обязательно запишите имя развертывания и учтите стоимость типа экземпляра, на котором вы развертываете (в этом посте мы используем ml.m5.large). Затем SageMaker Canvas создаст конечную точку модели, которую можно будет вызывать для получения прогнозов.

Окно приложения, показывающее конфигурацию развертывания модели. Показанные настройки — это размер машины ml.m5.large и имя развертывания sample-anomaly-model.

В промышленных условиях модель должна пройти тщательное тестирование, прежде чем ее можно будет использовать. Для этого эксперт предметной области не будет ее развертывать, а вместо этого опубликует модель в реестре моделей SageMaker. Здесь работу может взять на себя эксперт по операциям MLOps. Обычно этот эксперт тестирует конечную точку модели, оценивает размер вычислительного оборудования, необходимого для целевого приложения, и определяет наиболее экономически эффективное развертывание, например развертывание для бессерверного вывода или пакетного вывода. Эти шаги обычно автоматизированы (например, с помощью Трубопроводы Amazon Sagemaker или Амазон SDK).

Изображение, показывающее кнопку для публикации модели из Amazon Sgemaker в реестр моделей.

Используйте модель для обнаружения аномалий

На предыдущем шаге мы создали развертывание модели в SageMaker Canvas под названием canvas-sample-anomaly-model. Мы можем использовать его для получения прогнозов bearing_temperature значение на основе других столбцов в наборе данных. Теперь мы хотим использовать эту конечную точку для обнаружения аномалий.

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

# We are using pandas dataframes for data handling
import pandas as pd import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime') # Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' def do_inference(data, endpoint_name): # Example Code provided by Sagemaker Canvas body = data.to_csv(header=False, index=True).encode("utf-8") response = sm_runtime_client.invoke_endpoint(Body = body, EndpointName = endpoint_name, ContentType = "text/csv", Accept = "application/json", ) return json.loads(response["Body"].read()) def input_transformer(input_data, drop_cols = [ TARGET_COL ] ): # Transform the input: Drop the Target column return input_data.drop(drop_cols,axis =1 ) def output_transformer(input_data,response): # Take the initial input data and compare it to the response of the prediction model scored = input_data.copy() scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index )['score'] scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs() return scored # Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

Предыдущий код выполняет следующие действия:

  1. Входные данные фильтруются по нужным признакам (функция «input_transformer»).
  2. Конечная точка модели SageMaker вызывается с отфильтрованными данными (функция «do_inference«), где мы обрабатываем форматирование ввода и вывода в соответствии с примером кода, предоставленным при открытии страницы сведений о нашем развертывании в SageMaker Canvas.
  3. Результат вызова присоединяется к исходным входным данным, а разница сохраняется в столбце ошибок (функция «output_transform»).

Находите аномалии и оценивайте аномальные события

В типичной настройке код для получения аномалий запускается в лямбда-функции. Функцию Lambda можно вызвать из приложения или Шлюз API Amazon. Основная функция возвращает оценку аномалии для каждой строки входных данных — в данном случае временной ряд оценки аномалии.

Для тестирования мы также можем запустить код в блокноте SageMaker. На следующих графиках показаны входные и выходные данные нашей модели при использовании выборочных данных. Пики отклонения между прогнозируемыми и фактическими значениями (оценка аномалии, показанная на нижнем графике) указывают на аномалии. Например, на графике мы видим три отчетливых пика, где показатель аномалии (разница между ожидаемой и реальной температурой) превышает 7 градусов Цельсия: первый после длительного простоя, второй при резком падении температуры. bearing_temperatureи последнее где bearing_temperature является высоким по сравнению с motor_speed.

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

Во многих случаях уже достаточно знать временной ряд оценки аномалии; вы можете установить пороговое значение, когда следует предупреждать о значительной аномалии, исходя из необходимости чувствительности модели. Текущая оценка указывает на то, что машина находится в ненормальном состоянии, требующем расследования. Например, для нашей модели абсолютное значение оценки аномалии распределяется, как показано на следующем графике. Это подтверждает, что большинство оценок аномалий ниже (2xRMS=)8 градусов, обнаруженных во время обучения модели как типичная ошибка. График может помочь вам выбрать пороговое значение вручную, чтобы правильный процент оцененных образцов был помечен как аномалии.

Гистограмма появления значений оценки аномалии. Кривая уменьшается от x=0 до x=15.

Если желаемым результатом являются события аномалий, то оценки аномалий, предоставляемые моделью, требуют уточнения, чтобы они были актуальны для использования в бизнесе. Для этого эксперт по машинному обучению обычно добавляет постобработку для удаления шума или больших пиков оценки аномалий, например добавление скользящего среднего. Кроме того, эксперт обычно оценивает оценку аномалии по логике, аналогичной повышению оценки аномалии. Amazon CloudWatch сигнал тревоги, например, мониторинг нарушения порогового значения в течение определенного периода времени. Дополнительную информацию о настройке сигналов см. Использование сигналов тревоги Amazon CloudWatch. Выполнение этих оценок в функции Lambda позволяет отправлять предупреждения, например, публикуя предупреждение в Amazon Простая служба уведомлений (Amazon SNS) тема.

Убирать

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

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

Обзор

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

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


Об авторе

Обнаружение аномалий в производственных данных с помощью Amazon SageMaker Canvas | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Хельге Ауфдерхайде является энтузиастом использования данных в реальном мире, уделяя особое внимание автоматизации, аналитике и машинному обучению в промышленных приложениях, таких как производство и мобильность.

Отметка времени:

Больше от Машинное обучение AWS