Этот пост написан в сотрудничестве с Брэдом Дунканом, Рэйчел Джонсон и Ричардом Алкоком из MathWorks.
MATLAB — популярный инструмент программирования для широкого спектра приложений, таких как обработка данных, параллельные вычисления, автоматизация, моделирование, машинное обучение и искусственный интеллект. Он широко используется во многих отраслях, таких как автомобилестроение, аэрокосмическая промышленность, связь и производство. В последние годы MathWorks перенесла в облако множество продуктов, особенно Веб-службы Amazon (AWS). Дополнительные сведения об облачных продуктах MathWorks см. MATLAB и Simulink в облаке or электронная почта.
В этом посте мы реализуем возможности машинного обучения MATLAB. Создатель мудреца Амазонки, который имеет несколько существенных преимуществ:
- Вычислительные ресурсы: Использование высокопроизводительной вычислительной среды, предлагаемой SageMaker, может ускорить обучение машинному обучению.
- Сотрудничество: MATLAB и SageMaker вместе предоставляют надежную платформу, которую команды могут использовать для эффективного сотрудничества при создании, тестировании и развертывании моделей машинного обучения.
- Развертывание и доступность: модели можно развертывать как конечные точки SageMaker в режиме реального времени, что делает их легко доступными для других приложений для обработки потоковых данных в реальном времени.
Мы покажем вам, как обучить модель машинного обучения MATLAB в рамках учебного задания SageMaker, а затем развернуть модель в качестве конечной точки SageMaker в режиме реального времени, чтобы она могла обрабатывать потоковые данные в реальном времени.
Для этого мы воспользуемся примером профилактического обслуживания, в котором мы классифицируем неисправности работающего насоса, который передает данные датчиков в реальном времени. У нас есть доступ к большому хранилищу размеченных данных, сгенерированных из Simulink моделирование, которое имеет три возможных типа неисправности в различных возможных комбинациях (например, одно исправное и семь неисправных состояний). Поскольку у нас есть модель системы и ошибки в работе редки, мы можем использовать смоделированные данные для обучения нашего алгоритма. Модель можно настроить для соответствия эксплуатационным данным нашего реального насоса с использованием методов оценки параметров в MATLAB и Simulink.
Наша цель — продемонстрировать совместную мощь MATLAB и Amazon SageMaker на этом примере классификации неисправностей.
Мы начнем с обучения модели классификатора на нашем рабочем столе с помощью MATLAB. Сначала мы извлекаем объекты из подмножества полного набора данных, используя Дизайнер диагностических функций app, а затем запустите обучение модели локально с помощью модели дерева решений MATLAB. Как только мы будем удовлетворены настройками параметров, мы можем сгенерировать функцию MATLAB и отправить задание вместе с набором данных в SageMaker. Это позволяет нам масштабировать процесс обучения для обработки гораздо больших наборов данных. После обучения нашей модели мы развертываем ее как действующую конечную точку, которую можно интегрировать в нижестоящее приложение или панель мониторинга, например веб-приложение MATLAB.
В этом примере подытожен каждый шаг и дано практическое понимание того, как использовать MATLAB и Amazon SageMaker для задач машинного обучения. Полный код и описание примера доступны в этом хранилище.
Предпосылки
- Рабочая среда MATLAB 2023a или более поздней версии с компилятором MATLAB и набором инструментов статистики и машинного обучения в Linux. Вот краткое пособие о том, как запустить MATLAB на AWS.
- Докер, настроенный в Облако Amazon Elastic Compute (Amazon EC2) экземпляр, где работает MATLAB. Или Ubuntu or Linux.
- Установка Интерфейс командной строки AWS (AWS CLI), Настройка AWSи Python3.
- AWS CLI должен быть уже установлен, если вы следовали руководству по установке из шаг 1.
- Настройте AWS Configuration для взаимодействия с ресурсами AWS.
- Проверьте установку Python3, запустив
python -V
orpython --version
команду на вашем терминале. При необходимости установите Python.
- Скопируйте этот репозиторий в папку на вашем компьютере с Linux, выполнив:
- Проверьте разрешение для папки репо. Если у него нет разрешения на запись, выполните следующую команду оболочки:
- Создайте обучающий контейнер MATLAB и отправьте его в Реестр эластичных контейнеров Amazon (Amazon ECR).
- Перейти в папку
docker
- Создайте репозиторий Amazon ECR с помощью интерфейса командной строки AWS (замените REGION на предпочитаемый вами регион AWS).
- Запустите следующую команду докера:
- Перейти в папку
- Откройте MATLAB и откройте живой скрипт под названием
PumpFaultClassificationMATLABSageMaker.mlx
в папкеexamples/PumpFaultClassification
. Сделайте эту папку своей текущей рабочей папкой в MATLAB.
Часть 1. Подготовка данных и извлечение признаков
Первым шагом в любом проекте машинного обучения является подготовка данных. MATLAB предоставляет широкий спектр инструментов для импорта, очистки и извлечения функций из ваших данных.
Ассоциация SensorData.mat
набор данных содержит 240 записей. Каждая запись имеет два расписания: flow
и pressure
. Целевой столбец faultcode
, который представляет собой двоичное представление трех возможных комбинаций неисправностей насоса. Для этих таблиц временных рядов каждая таблица имеет 1,201 строку, которая имитирует измерение расхода и давления насоса за 1.2 секунды с шагом 0.001 секунды.
Затем приложение Diagnostic Feature Designer позволяет извлекать, визуализировать и ранжировать различные функции из данных. Здесь вы используете Авто функции, который быстро извлекает из набора данных широкий набор функций временной и частотной области и ранжирует лучших кандидатов для обучения модели. Затем вы можете экспортировать функцию MATLAB, которая повторно вычислит 15 наиболее ранжированных функций из новых входных данных. Давайте назовем эту функцию extractFeaturesTraining
. Эту функцию можно настроить для приема всех данных одним пакетом или в виде потоковых данных.
Эта функция создает таблицу функций с соответствующими кодами неисправностей, как показано на следующем рисунке:
Часть 2. Организация данных для SageMaker
Далее вам необходимо организовать данные таким образом, чтобы SageMaker мог использовать их для обучения машинному обучению. Обычно это включает в себя разделение данных на наборы обучения и проверки, а также разделение данных предикторов из целевого ответа.
На этом этапе могут потребоваться другие, более сложные операции по очистке и фильтрации данных. В этом примере данные уже чисты. Потенциально, если обработка данных очень сложна и требует много времени, задания обработки SageMaker можно использовать для запуска этих заданий отдельно от обучения SageMaker, чтобы их можно было разделить на два этапа.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Часть 3. Обучение и тестирование модели машинного обучения в MATLAB.
Прежде чем переходить на SageMaker, рекомендуется построить и протестировать модель машинного обучения локально в MATLAB. Это позволяет быстро перебирать и отлаживать модель. Вы можете настроить и обучить простой классификатор дерева решений локально.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
Задание по обучению здесь должно занять менее минуты и создать несколько графиков, показывающих ход обучения. После завершения обучения создается модель машинного обучения MATLAB. Классификация Учащийся Приложение можно использовать для опробования многих типов моделей классификации и настройки их для достижения наилучшей производительности, а затем создания необходимого кода для замены приведенного выше кода обучения модели.
После проверки показателей точности локально обученной модели мы можем перенести обучение в Amazon SageMaker.
Часть 4. Обучение модели в Amazon SageMaker
Если вы удовлетворены моделью, вы можете обучить ее в масштабе с помощью SageMaker. Чтобы начать вызывать SDK SageMaker, вам необходимо инициировать сеанс SageMaker.
session = sagemaker.Session();
Укажите выполнение SageMaker Роль IAM которые будут использоваться в учебных заданиях и хостинге конечных точек.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Из MATLAB сохраните данные обучения в виде файла .csv в Сервис Amazon Simple Storage (Amazon S3) ведро.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Создайте оценщик SageMaker
Далее вам необходимо создать оценщик SageMaker и передать ему все необходимые параметры, такие как обучающий образ докера, обучающая функция, переменные среды, размер обучающего экземпляра и т. д. URI обучающего образа должен быть URI Amazon ECR, который вы создали на предварительном этапе, в формате ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. Функция обучения должна быть предусмотрена в нижней части живого сценария MATLAB.
Отправить задание на обучение SageMaker
Вызов метода подгонки из средства оценки отправляет задание обучения в SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
Вы также можете проверить статус задания обучения из консоли SageMaker:
После завершения заданий обучения, выбрав ссылку задания, вы попадете на страницу описания задания, где сможете увидеть модель MATLAB, сохраненную в выделенном сегменте S3:
Часть 5. Развертывание модели в качестве конечной точки SageMaker в режиме реального времени.
После обучения вы можете развернуть модель в качестве конечной точки SageMaker в режиме реального времени, которую можно использовать для прогнозирования в реальном времени. Для этого вызовите метод развертывания из оценщика. Здесь вы можете настроить желаемый размер инстанса для хостинга в зависимости от рабочей нагрузки.
На этом этапе «за кулисами» создается образ Docker вывода и отправляется в репозиторий Amazon ECR. Для создания контейнера вывода от пользователя ничего не требуется. Изображение содержит всю необходимую информацию для обслуживания запроса на вывод, например местоположение модели, информацию аутентификации MATLAB и алгоритмы. После этого Amazon SageMaker создает конфигурацию конечной точки SageMaker и, наконец, развертывает конечную точку в режиме реального времени. Конечную точку можно отслеживать в консоли SageMaker, и ее можно закрыть в любое время, если она больше не используется.
Часть 6. Тестирование конечной точки
Теперь, когда конечная точка запущена и работает, вы можете протестировать ее, предоставив ей несколько записей для прогнозирования. Используйте следующий код, чтобы выбрать 10 записей из обучающих данных и отправить их в конечную точку для прогнозирования. Результат прогнозирования отправляется обратно из конечной точки и показан на следующем изображении.
Часть 7. Интеграция информационной панели
Конечную точку SageMaker могут вызывать многие собственные сервисы AWS. Его также можно использовать в качестве стандартного REST API, если его развернуть вместе с AWS Lambda функция и шлюз API, который можно интегрировать с любыми веб-приложениями. В этом конкретном случае использования вы можете использовать прием потоковой передачи с помощью Amazon SageMaker Feature Store и Amazon Managed Streaming для Apache Kafka, MSK, чтобы принимать решения на основе машинного обучения практически в реальном времени. Другая возможная интеграция — использование комбинации Амазонка Кинезис, SageMaker и Apache Flink для создания управляемого, надежного, масштабируемого и высокодоступного приложения, способного в режиме реального времени делать выводы о потоке данных.
После развертывания алгоритмов на конечной точке SageMaker вы можете визуализировать их с помощью информационной панели, которая отображает прогнозы потоковой передачи в режиме реального времени. В приведенном ниже пользовательском веб-приложении MATLAB вы можете увидеть данные о давлении и расходе по насосам, а также прогнозы неисправностей в реальном времени на основе развернутой модели.
На этой информационной панели имеется модель оставшегося срока полезного использования (RUL), позволяющая прогнозировать время до отказа для каждого рассматриваемого насоса. Чтобы узнать, как обучать алгоритмы RUL, см. Набор инструментов для прогнозного обслуживания.
Убирать
После запуска этого решения обязательно очистите все ненужные ресурсы AWS, чтобы избежать непредвиденных расходов. Вы можете очистить эти ресурсы, используя SDK для SageMaker Python или Консоль управления AWS для конкретных используемых здесь сервисов (SageMaker, Amazon ECR и Amazon S3). Удалив эти ресурсы, вы предотвратите дальнейшую оплату за ресурсы, которые вы больше не используете.
Заключение
Мы продемонстрировали, как можно использовать MATLAB в SageMaker для прогнозного обслуживания насосов на протяжении всего жизненного цикла машинного обучения. SageMaker предоставляет полностью управляемую среду для выполнения рабочих нагрузок машинного обучения и развертывания моделей с большим выбором вычислительных экземпляров, отвечающих различным потребностям.
Отказ от ответственности: Код, использованный в этом посте, принадлежит и поддерживается MathWorks. Ознакомьтесь с условиями лицензии в репозитории GitHub. При возникновении любых проблем с кодом или запросами функций откройте проблему GitHub в репозитории.
Рекомендации
Об авторах
Брэд Дункан является менеджером по продуктам возможностей машинного обучения в наборе инструментов статистики и машинного обучения в MathWorks. Он работает с клиентами над применением ИИ в новых областях проектирования, таких как включение виртуальных датчиков в инженерные системы, создание объяснимых моделей машинного обучения и стандартизация рабочих процессов ИИ с использованием MATLAB и Simulink. До прихода в MathWorks он руководил группами по 3D-моделированию и оптимизации аэродинамики транспортных средств, пользовательскому опыту 3D-симуляции и управлению продуктами для программного обеспечения для моделирования. Брэд также является приглашенным лектором в Университете Тафтса в области аэродинамики транспортных средств.
Ричард Алкок — старший менеджер по развитию интеграции облачных платформ в MathWorks. На этой должности он играет важную роль в плавной интеграции продуктов MathWorks в облачные и контейнерные платформы. Он создает решения, которые позволяют инженерам и ученым использовать весь потенциал MATLAB и Simulink в облачных средах. Ранее он работал инженером-программистом в MathWorks, занимаясь разработкой решений для поддержки рабочих процессов параллельных и распределенных вычислений.
Рейчел Джонсон является менеджером по продукту по прогнозному обслуживанию в MathWorks и отвечает за общую стратегию продукта и маркетинг. Ранее она работала инженером по применению, непосредственно поддерживая аэрокосмическую отрасль в проектах профилактического обслуживания. До работы в MathWorks Рэйчел работала инженером по моделированию аэродинамики и двигательной установки ВМС США. Она также несколько лет преподавала математику, физику и инженерное дело.
Шунь Мао — старший архитектор партнерских решений AI/ML в команде новых технологий Amazon Web Services. Он с энтузиазмом работает с корпоративными клиентами и партнерами над проектированием, развертыванием и масштабированием приложений искусственного интеллекта и машинного обучения для извлечения выгоды из их бизнеса. Вне работы он любит ловить рыбу, путешествовать и играть в пинг-понг.
Рамеш Джатия — архитектор решений в команде независимых поставщиков программного обеспечения (ISV) в Amazon Web Services. Он с энтузиазмом работает с клиентами независимых поставщиков ПО над проектированием, развертыванием и масштабированием их приложений в облаке, чтобы получить выгоду для их бизнеса. Он также получает степень MBA в области машинного обучения и бизнес-аналитики в колледже Бэбсон в Бостоне. Вне работы он любит бегать, играть в теннис и готовить.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- :имеет
- :является
- :нет
- :куда
- $UP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- О нас
- выше
- доступ
- доступной
- вмещать
- Учетная запись
- точность
- плюс
- Аэрокосмическая индустрия
- После
- AI
- AI / ML
- алгоритм
- алгоритмы
- Все
- позволяет
- вдоль
- уже
- причислены
- Amazon
- Amazon EC2
- Создатель мудреца Амазонки
- Amazon Web Services
- an
- аналитика
- и
- Другой
- любой
- апаш
- кроме
- API
- приложение
- приложение позволяет
- Применение
- Приложения
- Применить
- МЫ
- ПЛОЩАДЬ
- области
- искусственный
- искусственный интеллект
- AS
- связанный
- At
- Аутентификация
- автоматический
- автоматизация
- автомобильный
- доступен
- избежать
- AWS
- Консоль управления AWS
- Бэбсон
- назад
- BE
- , так как:
- до
- начинать
- Преимущества
- ЛУЧШЕЕ
- Бостон
- Дно
- штифтик
- приносить
- широкий
- принес
- строить
- Строительство
- строит
- бизнес
- by
- призывают
- под названием
- вызова
- CAN
- кандидатов
- возможности
- способный
- случаев
- расходы
- проверка
- контроль
- классификация
- классифицировать
- чистым
- Уборка
- облако
- Облачная платформа
- код
- Коды
- сотрудничать
- сотрудничество
- Колледж
- Column
- COM
- сочетание
- комбинации
- сочетании
- приход
- Связь
- комплекс
- Вычисление
- вычисление
- Конфигурация
- настроить
- Консоли
- потребление
- Container
- содержит
- Расходы
- Создайте
- создали
- создает
- Текущий
- изготовленный на заказ
- Клиенты
- приборная панель
- данным
- Подготовка данных
- обработка данных
- Наборы данных
- решение
- решения
- преданный
- демонстрировать
- убивают
- в зависимости
- развертывание
- развернуть
- развертывание
- развертывает
- выводить
- описание
- Проект
- дизайнер
- желанный
- компьютера
- подробнее
- развивающийся
- Развитие
- диагностический
- непосредственно
- дисплеев
- распределенный
- распределенных вычислений
- do
- Docker
- приносит
- домен
- Duncan
- каждый
- фактически
- или
- появление
- новые технологии
- включить
- конец
- Конечная точка
- инженер
- инженерии
- Проект и
- Инженеры
- Предприятие
- Весь
- Окружающая среда
- средах
- особенно
- пример
- выполнение
- опыт
- экспорт
- извлечение
- Экстракты
- Ошибка
- неисправности
- неисправный
- Особенность
- Особенности
- несколько
- фигура
- Файл
- фильтрация
- в заключение
- окончание
- Во-первых,
- Рыбалка
- соответствовать
- поток
- следует
- после
- следующим образом
- Что касается
- формат
- частота
- от
- полный
- полностью
- функция
- далее
- шлюз
- порождать
- генерируется
- генерирует
- GitHub
- Отдаете
- хорошо
- Графики
- большой
- GUEST
- инструкция
- упряжь
- Есть
- he
- Медицина
- здоровый
- сильно
- здесь
- высокая производительность
- очень
- хостинг
- Как
- How To
- HTML
- HTTPS
- идея
- if
- изображение
- импортирующий
- in
- включает в себя
- включения
- увеличить
- независимые
- указывать
- промышленности
- промышленность
- информация
- инициировать
- вход
- устанавливать
- установка
- установлен
- пример
- инструментальный
- интегрированный
- Интегрируя
- интеграции.
- интеграций
- Интеллекта
- взаимодействовать
- Интерфейс
- в
- вопрос
- вопросы
- ISV
- IT
- работа
- Джобс
- Джонсон
- JPG
- большой
- больше
- новее
- последний
- УЧИТЬСЯ
- изучение
- привело
- Меньше
- Кредитное плечо
- Лицензия
- ЖИЗНЬЮ
- Жизненный цикл
- LINK
- Linux
- жить
- в местном масштабе
- расположение
- Войти
- дольше
- машина
- обучение с помощью машины
- техническое обслуживание
- сделать
- Создание
- управляемого
- управление
- менеджер
- производство
- многих
- Маркетинг
- Совпадение
- математике
- измерение
- метод
- Метрика
- может быть
- минут
- ML
- модель
- Модели
- монитор
- контролируемый
- БОЛЕЕ
- двигаться
- перемещение
- много
- Названный
- родной
- Возле
- необходимо
- Необходимость
- необходимый
- потребности
- Новые
- нет
- ничего
- цель
- of
- предложенный
- Предложения
- on
- консолидировать
- ONE
- открытый
- операция
- оперативный
- Операционный отдел
- оптимизация
- or
- Другое
- наши
- выходной
- внешнюю
- общий
- принадлежащих
- страница
- Параллельные
- параметр
- параметры
- особый
- партнер
- партнеры
- pass
- страстный
- производительность
- разрешение
- Физика
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- игры
- пожалуйста
- Популярное
- возможное
- После
- потенциал
- потенциально
- мощностью
- практическое
- предсказывать
- прогноз
- Predictions
- Predictor
- привилегированный
- подготовка
- Подготовить
- давление
- предотвращать
- предварительно
- Предварительный
- процесс
- обработка
- производит
- Произведенный
- производит
- Продукт
- Управление продуктом
- Менеджер по продукции
- Продукция
- Программирование
- Прогресс
- Проект
- проектов
- силовая установка
- обеспечивать
- при условии
- приводит
- обеспечение
- насос
- Push
- выталкивает
- Питон
- вопрос
- быстро
- ассортимент
- ранг
- вошел
- ряды
- РЕДКИЙ
- легко
- реальные
- реального времени
- последний
- запись
- учет
- относиться
- область
- реестра
- складская
- осталось
- замещать
- хранилище
- представление
- запросить
- Запросы
- обязательный
- Полезные ресурсы
- ответ
- ответственный
- ОТДЫХ
- результат
- Ричард
- надежный
- Роли
- Run
- Бег
- sagemaker
- довольный
- доволен
- Сохранить
- сохраняются
- масштабируемые
- Шкала
- Сцены
- Ученые
- скрипт
- SDKS
- легко
- секунды
- посмотреть
- выбор
- выбор
- Отправить
- старший
- датчик
- послать
- Серии
- служить
- обслуживание
- Услуги
- выступающей
- Сессия
- набор
- Наборы
- настройки
- семь
- несколько
- она
- Оболочка
- должен
- показывать
- показанный
- значительный
- просто
- моделирование
- Размер
- So
- Software
- разработка программного обеспечения
- Решение
- Решения
- некоторые
- конкретный
- скорость
- потраченный
- Этап
- стандарт
- стандартизации
- Начало
- Области
- статистике
- Статус:
- Шаг
- Шаги
- диск
- магазин
- Стратегия
- поток
- потоковый
- такие
- суммировать
- поддержка
- поддержки
- Убедитесь
- система
- системы
- ТАБЛИЦЫ
- TAG
- взять
- принимает
- цель
- задачи
- Обучение
- команда
- команды
- снижения вреда
- технологии
- Терминал
- terms
- тестXNUMX
- Тестирование
- чем
- который
- Ассоциация
- Местоположение
- их
- Их
- тогда
- Эти
- они
- этой
- те
- три
- время
- Временные ряды
- в
- вместе
- инструментом
- Ящик для инструментов
- инструменты
- топ
- Train
- Обучение
- Путешествие
- дерево
- стараться
- мелодия
- настроены
- два
- Типы
- типично
- понимание
- Неожиданный
- Университет
- us
- использование
- прецедент
- используемый
- Информация о пользователе
- Пользовательский опыт
- через
- Проверка
- Наши ценности
- разнообразие
- различный
- автомобиль
- продавец
- очень
- Виртуальный
- визуализации
- хотеть
- законопроект
- Путь..
- we
- Web
- веб-приложений
- веб-сервисы
- , которые
- широкий
- Широкий диапазон
- будете
- Работа
- Рабочие процессы
- работает
- работает
- записывать
- письменный
- лет
- Ты
- ВАШЕ
- зефирнет