Ця публікація написана у співпраці з Бредом Дунканом, Рейчел Джонсон і Річардом Алкоком з MathWorks.
MATLAB це популярний інструмент програмування для широкого спектру програм, таких як обробка даних, паралельні обчислення, автоматизація, моделювання, машинне навчання та штучний інтелект. Він активно використовується в багатьох галузях, таких як автомобільна, аерокосмічна, зв’язок і виробництво. В останні роки MathWorks перенесла багато пропозицій продуктів у хмару, особливо на Веб-служби Amazon (AWS). Додаткову інформацію про хмарні продукти MathWorks див MATLAB і Simulink у хмарі or електронною поштою Mathworks.
У цій публікації ми розповідаємо про можливості машинного навчання MATLAB Amazon SageMaker, який має кілька суттєвих переваг:
- Обчислювальні ресурси: використання високопродуктивного обчислювального середовища, запропонованого SageMaker, може пришвидшити навчання машинному навчанню.
- Співпраця: MATLAB і SageMaker разом забезпечують надійну платформу, яку команди можуть використовувати для ефективної співпраці над створенням, тестуванням і розгортанням моделей машинного навчання.
- Розгортання та доступність: моделі можна розгортати як кінцеві точки SageMaker у реальному часі, що робить їх легкодоступними для інших програм для обробки потокових даних.
Ми покажемо вам, як навчити модель машинного навчання MATLAB як навчальну роботу SageMaker, а потім розгорнути модель як кінцеву точку SageMaker у реальному часі, щоб вона могла обробляти живі потокові дані.
Для цього ми використаємо приклад прогнозованого технічного обслуговування, де ми класифікуємо несправності в працюючому насосі, який передає живі дані датчика. Ми маємо доступ до великого сховища мічених даних, створених з a simulink моделювання, яке має три можливі типи несправностей у різних можливих комбінаціях (наприклад, один справний і сім несправних станів). Оскільки у нас є модель системи, а помилки в роботі трапляються рідко, ми можемо скористатися змодельованими даними для навчання нашого алгоритму. Модель можна налаштувати відповідно до робочих даних нашого реального насоса за допомогою методів оцінки параметрів у MATLAB і Simulink.
Наша мета — продемонструвати спільну потужність MATLAB і Amazon SageMaker на цьому прикладі класифікації помилок.
Ми починаємо з навчання моделі класифікатора на нашому робочому столі за допомогою MATLAB. Спочатку ми витягуємо функції з підмножини повного набору даних за допомогою Конструктор діагностичних функцій програму, а потім запустіть навчання моделі локально за допомогою моделі дерева рішень MATLAB. Коли ми будемо задоволені налаштуваннями параметрів, ми можемо створити функцію MATLAB і надіслати завдання разом із набором даних до SageMaker. Це дозволяє нам розширити процес навчання, щоб вмістити набагато більші набори даних. Після навчання нашої моделі ми розгортаємо її як живу кінцеву точку, яку можна інтегрувати в наступну програму або інформаційну панель, наприклад у веб-програму MATLAB.
У цьому прикладі буде підсумовано кожен крок, забезпечуючи практичне розуміння того, як використовувати MATLAB і Amazon SageMaker для завдань машинного навчання. Повний код і опис прикладу доступні тут Сховище.
Передумови
- Робоче середовище MATLAB 2023a або новішої версії з компілятором MATLAB і інструментами статистики та машинного навчання в Linux. Ось а швидкий посібник про те, як запустити MATLAB на AWS.
- Докер налаштовано в Amazon Elastic Compute Cloud (Amazon EC2) екземпляр, де запущено MATLAB. Або Ubuntu or Linux.
- Встановлення Інтерфейс командного рядка AWS (AWS CLI), Налаштувати AWS та Python3.
- AWS CLI має бути вже встановлено, якщо ви дотримувалися посібника зі встановлення з step 1.
- Налаштуйте AWS Configure для взаємодії з ресурсами AWS.
- Перевірте встановлення python3, запустивши
python -V
orpython --version
на вашому терміналі. За потреби встановіть Python.
- Скопіюйте це репо до папки на вашій машині Linux, виконавши:
- Перевірте дозвіл на папку репо. Якщо він не має дозволу на запис, виконайте таку команду оболонки:
- Створіть навчальний контейнер MATLAB і надішліть його до Реєстр еластичних контейнерів Amazon (Amazon ECR).
- Перейдіть до папки
docker
- Створіть репо Amazon ECR за допомогою AWS CLI (замініть 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. The Класифікація Учень Програму можна використовувати, щоб випробувати багато типів моделей класифікації та налаштувати їх для найкращої продуктивності, а потім створити необхідний код для заміни навчального коду моделі вище.
Після перевірки показників точності для локально навченої моделі ми можемо перенести навчання в 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 (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 у реальному часі, яку можна використовувати для прогнозування в реальному часі. Для цього викличте метод розгортання з кошторису. Тут ви можете налаштувати бажаний розмір екземпляра для розміщення залежно від робочого навантаження.
За лаштунками цей крок створює образ докера висновків і надсилає його до репозиторію 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, щоб уникнути неочікуваних витрат. Ви можете очистити ці ресурси за допомогою SageMaker Python SDK або AWS Management Console для конкретних служб, які тут використовуються (SageMaker, Amazon ECR і Amazon S3). Видаляючи ці ресурси, ви запобігаєте подальшому стягненню плати за ресурси, якими ви більше не користуєтеся.
Висновок
Ми продемонстрували, як можна перенести MATLAB у SageMaker для сценарію використання прогнозованого технічного обслуговування насоса з усім життєвим циклом машинного навчання. SageMaker надає повністю кероване середовище для виконання робочих навантажень машинного навчання та розгортання моделей із великим вибором обчислювальних екземплярів, які відповідають різним потребам.
відмова: Код, використаний у цій публікації, належить і підтримується MathWorks. Перегляньте умови ліцензії в сховищі GitHub. У разі будь-яких проблем із кодом або запитами щодо функцій, будь ласка, відкрийте проблему GitHub у репозиторії
посилання
Про авторів
Бред Дункан є менеджером із продуктів для можливостей машинного навчання в Statistics and Machine Learning Toolbox у MathWorks. Він працює з клієнтами над застосуванням штучного інтелекту в нових сферах інженерії, таких як включення віртуальних датчиків в інженерні системи, створення зрозумілих моделей машинного навчання та стандартизація робочих процесів штучного інтелекту за допомогою MATLAB і Simulink. До приходу в MathWorks він очолював групи з 3D-моделювання та оптимізації аеродинаміки транспортних засобів, взаємодії з користувачем для 3D-моделювання та управління продуктами для програмного забезпечення для моделювання. Бред також є запрошеним лектором в Університеті Тафтса в області аеродинаміки транспортних засобів.
Річард Алкок є старшим менеджером з розробки Cloud Platform Integrations у MathWorks. На цій посаді він відіграє важливу роль у бездоганній інтеграції продуктів MathWorks у хмарні та контейнерні платформи. Він створює рішення, які дозволяють інженерам і вченим використовувати весь потенціал MATLAB і Simulink у хмарних середовищах. Раніше він працював розробником програмного забезпечення в MathWorks, розробляючи рішення для підтримки паралельних і розподілених обчислювальних процесів.
Рейчел Джонсон є менеджером із продуктів для прогнозного обслуговування в MathWorks і відповідає за загальну стратегію продукту та маркетинг. Раніше вона працювала інженером, який безпосередньо підтримував аерокосмічну промисловість у проектах прогнозного технічного обслуговування. До MathWorks Рейчел працювала інженером з моделювання аеродинаміки та рушійної установки у ВМС США. Вона також провела кілька років, викладаючи математику, фізику та інженерію.
Шунь Мао є старшим архітектором партнерських рішень AI/ML у команді нових технологій Amazon Web Services. Він захоплений роботою з корпоративними клієнтами та партнерами над розробкою, розгортанням і масштабуванням додатків штучного інтелекту/ML, щоб отримати їхні бізнес-цінності. Поза роботою він любить рибалити, подорожувати та грати в пінг-понг.
Рамеш Джатія є архітектором рішень у групі незалежних постачальників програмного забезпечення (ISV) у Amazon Web Services. Він захоплений роботою з клієнтами ISV над розробкою, розгортанням і масштабуванням їхніх додатків у хмарі, щоб отримати їхні бізнес-цінності. Він також отримує ступінь MBA з машинного навчання та бізнес-аналітики в Babson College, Бостон. Поза роботою він любить бігати, грати в теніс і готувати.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: 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 SageMaker
- Amazon Web Services
- an
- аналітика
- та
- Інший
- будь-який
- Apache
- крім
- API
- додаток
- додаток дозволяє
- додаток
- застосування
- Застосовувати
- ЕСТЬ
- ПЛОЩА
- області
- штучний
- штучний інтелект
- AS
- асоційований
- At
- Authentication
- автоматичний
- Автоматизація
- автомобільний
- доступний
- уникнути
- AWS
- Консоль управління AWS
- babson
- назад
- BE
- оскільки
- перед тим
- починати
- Переваги
- КРАЩЕ
- Бостон
- дно
- штифтик
- приносити
- широкий
- приніс
- будувати
- Створюємо
- Будує
- бізнес
- by
- call
- званий
- покликання
- CAN
- кандидатів
- можливості
- здатний
- випадок
- вантажі
- перевірка
- контроль
- класифікація
- Класифікувати
- очистити
- Очищення
- хмара
- Хмарна платформа
- код
- Коди
- співпрацювати
- співробітництво
- коледж
- Колонка
- COM
- поєднання
- комбінації
- комбінований
- майбутній
- Комунікація
- комплекс
- обчислення
- обчислення
- конфігурація
- налаштувати
- Консоль
- споживання
- Контейнер
- містить
- витрати
- створювати
- створений
- створює
- Поточний
- виготовлений на замовлення
- Клієнти
- приладова панель
- дані
- Підготовка даних
- обробка даних
- набори даних
- рішення
- рішення
- присвячених
- демонструвати
- продемонстрований
- Залежно
- розгортання
- розгорнути
- розгортання
- розгортає
- дрейф
- description
- дизайн
- Дизайнерка
- бажаний
- робочий стіл
- деталі
- розвивається
- розробка
- діагностичний
- безпосередньо
- дисплеїв
- розподілений
- розподілені обчислення
- do
- Docker
- робить
- домен
- дункан
- кожен
- фактично
- або
- з'являються
- новітні технології
- включіть
- кінець
- Кінцева точка
- інженер
- інженерії
- Машинобудування
- Інженери
- підприємство
- Весь
- Навколишнє середовище
- середовищах
- особливо
- приклад
- виконання
- досвід
- експорт
- витяг
- Виписки
- Провал
- недоліки
- несправний
- особливість
- риси
- кілька
- Рисунок
- філе
- фільтрація
- в кінці кінців
- закінчення
- Перший
- рибальський
- відповідати
- потік
- потім
- після
- слідує
- для
- формат
- частота
- від
- Повний
- повністю
- функція
- далі
- шлюз
- породжувати
- генерується
- генерує
- GitHub
- дає
- добре
- графіки
- великий
- гість
- керівництво
- збруя
- Мати
- he
- здоров'я
- здоровий
- сильно
- тут
- висока продуктивність
- дуже
- хостинг
- Як
- How To
- HTML
- HTTPS
- ідея
- if
- зображення
- імпорт
- in
- includes
- включення
- приріст
- незалежний
- вказувати
- промисловості
- промисловість
- інформація
- ініціювати
- вхід
- встановлювати
- установка
- встановлений
- екземпляр
- інструментальний
- інтегрований
- Інтеграція
- інтеграція
- інтеграцій
- Інтелект
- взаємодіяти
- інтерфейс
- в
- питання
- питання
- ісв
- IT
- робота
- Джобс
- Джонсон
- JPG
- великий
- більше
- пізніше
- останній
- УЧИТЬСЯ
- вивчення
- Led
- менше
- Важіль
- ліцензія
- життя
- Життєвий цикл
- LINK
- Linux
- жити
- локально
- розташування
- Логін
- довше
- машина
- навчання за допомогою машини
- обслуговування
- зробити
- Робить
- вдалося
- управління
- менеджер
- виробництво
- багато
- Маркетинг
- матч
- математики
- вимір
- метод
- Метрика
- може бути
- хвилин
- ML
- модель
- Моделі
- монітор
- контрольований
- більше
- рухатися
- переміщення
- багато
- Названий
- рідний
- Близько
- необхідно
- Необхідність
- необхідний
- потреби
- Нові
- немає
- нічого
- мета
- of
- запропонований
- Пропозиції
- on
- один раз
- ONE
- відкрити
- операція
- оперативний
- операції
- оптимізація
- or
- Інше
- наші
- вихід
- поза
- загальний
- яка перебуває у власності
- сторінка
- Паралельні
- параметр
- параметри
- приватність
- партнер
- партнери
- проходити
- пристрасний
- продуктивність
- дозвіл
- Фізика
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- ігри
- будь ласка
- популярний
- це можливо
- пошта
- потенціал
- потенційно
- влада
- Практичний
- передбачати
- прогноз
- Прогнози
- Прогноз
- переважним
- підготовка
- Готувати
- тиск
- запобігати
- раніше
- попередній
- процес
- обробка
- виробляти
- Вироблений
- випускає
- Product
- Управління продуктом
- менеджер по продукції
- Продукти
- Програмування
- прогрес
- проект
- проектів
- силова установка
- забезпечувати
- за умови
- забезпечує
- забезпечення
- насос
- Штовхати
- штовхає
- Python
- питання
- швидко
- діапазон
- ранжувати
- ранг
- ряди
- РІДНІ
- легко
- реальний
- реального часу
- останній
- запис
- облік
- послатися
- регіон
- реєстру
- надійний
- решті
- замінювати
- Сховище
- подання
- запросити
- запитів
- вимагається
- ресурси
- відповідь
- відповідальний
- REST
- результат
- Річард
- міцний
- Роль
- прогін
- біг
- мудрець
- Незадоволений
- задоволений
- зберегти
- зберігаються
- масштабовані
- шкала
- сцени
- Вчені
- сценарій
- sdks
- плавно
- seconds
- побачити
- вибирає
- вибір
- послати
- старший
- датчиків
- посланий
- Серія
- служити
- обслуговування
- Послуги
- виступаючої
- Сесія
- комплект
- набори
- налаштування
- сім
- кілька
- вона
- Склад
- Повинен
- Показувати
- показаний
- значний
- простий
- моделювання
- Розмір
- So
- Софтвер
- розробка програмного забезпечення
- рішення
- Рішення
- деякі
- конкретний
- швидкість
- відпрацьований
- Стажування
- standard
- стандартизації
- старт
- Штати
- статистика
- Статус
- Крок
- заходи
- зберігання
- зберігати
- Стратегія
- потік
- потоковий
- такі
- підсумовувати
- підтримка
- Підтримуючий
- Переконайтеся
- система
- Systems
- таблиця
- TAG
- Приймати
- приймає
- Мета
- завдання
- Навчання
- команда
- команди
- методи
- Технології
- термінал
- terms
- тест
- Тестування
- ніж
- Що
- Команда
- Площа
- їх
- Їх
- потім
- Ці
- вони
- це
- ті
- три
- час
- Часовий ряд
- до
- разом
- інструмент
- Інструменти
- інструменти
- топ
- поїзд
- Навчання
- Подорож
- дерево
- намагатися
- мелодія
- налаштований
- два
- Типи
- типово
- розуміння
- Unexpected
- університет
- us
- використання
- використання випадку
- використовуваний
- користувач
- User Experience
- використання
- перевірка достовірності
- Цінності
- різноманітність
- різний
- автомобіль
- продавець
- дуже
- Віртуальний
- візуалізувати
- хотіти
- було
- шлях..
- we
- Web
- веб-додатки
- веб-сервіси
- який
- широкий
- Широкий діапазон
- волі
- з
- Work
- Робочі процеси
- робочий
- працює
- запис
- письмовий
- років
- Ти
- вашу
- зефірнет