📈 Общая задача обнаружения аномалий во временных рядах часто разделяется на две отдельные подзадачи: обнаружение выбросов или бинарная классификация (для точечных аномалий) и обнаружение точек изменения состояния (changepoint detection, для коллективных аномалий). Более подробно я писал в этом посте.
Ранее на pycon’е я подробно рассказывал именно о подзадаче changepoint detection, методах и библиотеках на python для решения задачи. Доклад может помочь:
• более глубоко разобраться в задаче поиска аномалий во временных рядах и понять разницу между типами аномалий (точечные, коллективные) и типами математических постановок задач (бинарная классификация, changepoint detection);
• узнать о наиболее популярных существующих библиотеках на python, решающих задачи поиска аномалий;
• понять, как ставить задачу поиска коллективных аномалий (changepoint detection) во временных рядах;
• понять разницу между оффлайн и онлайн постановками задачи;
• узнать основные методы решения этой задачи, в том числе реализованные в библиотеках на python;
• узнать наиболее распространённый подход к решению задачи — генерация невязки сигнала (на основе различных моделей машинного обучения) и как легко реализовать этот подход на python.
Ранее на pycon’е я подробно рассказывал именно о подзадаче changepoint detection, методах и библиотеках на python для решения задачи. Доклад может помочь:
• более глубоко разобраться в задаче поиска аномалий во временных рядах и понять разницу между типами аномалий (точечные, коллективные) и типами математических постановок задач (бинарная классификация, changepoint detection);
• узнать о наиболее популярных существующих библиотеках на python, решающих задачи поиска аномалий;
• понять, как ставить задачу поиска коллективных аномалий (changepoint detection) во временных рядах;
• понять разницу между оффлайн и онлайн постановками задачи;
• узнать основные методы решения этой задачи, в том числе реализованные в библиотеках на python;
• узнать наиболее распространённый подход к решению задачи — генерация невязки сигнала (на основе различных моделей машинного обучения) и как легко реализовать этот подход на python.
YouTube
Юрий Кацер. Поиск точек изменения состояния (changepoint detection) на python
Общая задача обнаружения аномалий во временных рядах часто разделяется на две отдельные задачи: обнаружение выбросов или бинарная классификация (для точечных аномалий) и обнаружение точек изменения состояния (changepoint detection, для коллективных аномалий).…
👍10🔥4❤3
🚨 Серия постов о качестве и предварительной обработке временных рядов. Часть 1 - Введение.
Уже давно написал небольшую заметку “О качестве данных для машинного обучения”. Немного тезисов из заметки и в дополнение к ней:
• Качество данных всегда называется в числе топ-3 барьеров развития ИИ. Еще одна постоянно фигурирующая проблема - кадры, но об этом в другой раз.
• Проблемы в данных могут не только снижать качество работы методов машинного обучения, но и полностью исключать возможность их использования. Есть даже такое выражение: garbage in - garbage out, которое означает, что некачественные данные на входе приводят к плохому результату на выходе.
• Работа с данными и их приведение к нужному виду для постановки и решения задач в терминах машинного обучения могут занимать до 70% времени работы дата сайентиста на проекте.
• Работа с качеством данных выглядит примерно следующим образом:
1. Сначала надо обнаружить проблему.
2. Потом надо решить проблему (подобрать оптимальный метод предварительной обработки). Кстати, ничего не делать - тоже может быть решением.
3. Финальный способ решения (метод предварительной обработки) надо интегрировать в пайплайн инференса.
С качеством данных я сталкивался как в рамках работы на реальных проектах, так и в рамках научных исследований, в итоге весь опыт собрал в доклад и статью (+ англ версия статьи) о проблемах в промышленных данных. Доклад обозревает проблемы, но ведь нужно еще научиться их обнаруживать и устранять. Об этом я, во-первых, поговорю сегодня на треке Reliable ML в 15.15 по мск. Во-вторых, анонсирую серию постов, где я разберу самые популярные проблемы во временных рядах, способы их детектирования и способы их устранения, то есть методы предварительной обработки данных.
Уже давно написал небольшую заметку “О качестве данных для машинного обучения”. Немного тезисов из заметки и в дополнение к ней:
• Качество данных всегда называется в числе топ-3 барьеров развития ИИ. Еще одна постоянно фигурирующая проблема - кадры, но об этом в другой раз.
• Проблемы в данных могут не только снижать качество работы методов машинного обучения, но и полностью исключать возможность их использования. Есть даже такое выражение: garbage in - garbage out, которое означает, что некачественные данные на входе приводят к плохому результату на выходе.
• Работа с данными и их приведение к нужному виду для постановки и решения задач в терминах машинного обучения могут занимать до 70% времени работы дата сайентиста на проекте.
• Работа с качеством данных выглядит примерно следующим образом:
1. Сначала надо обнаружить проблему.
2. Потом надо решить проблему (подобрать оптимальный метод предварительной обработки). Кстати, ничего не делать - тоже может быть решением.
3. Финальный способ решения (метод предварительной обработки) надо интегрировать в пайплайн инференса.
С качеством данных я сталкивался как в рамках работы на реальных проектах, так и в рамках научных исследований, в итоге весь опыт собрал в доклад и статью (+ англ версия статьи) о проблемах в промышленных данных. Доклад обозревает проблемы, но ведь нужно еще научиться их обнаруживать и устранять. Об этом я, во-первых, поговорю сегодня на треке Reliable ML в 15.15 по мск. Во-вторых, анонсирую серию постов, где я разберу самые популярные проблемы во временных рядах, способы их детектирования и способы их устранения, то есть методы предварительной обработки данных.
YouTube
Проблемы в промышленных данных с точки зрения дата сайентиста // Юрий Кацер, Цифрум (Росатом)
Юрий Кацер
Руководитель направления предиктивной аналитики, Цифрум, Росатом
О спикере:
Эксперт по анализу данных и машинному обучению в задачах промышленности. Руководитель направления по предиктивной аналитике, Цифрум (Росатом). Аспирант Сколтеха. Победитель…
Руководитель направления предиктивной аналитики, Цифрум, Росатом
О спикере:
Эксперт по анализу данных и машинному обучению в задачах промышленности. Руководитель направления по предиктивной аналитике, Цифрум (Росатом). Аспирант Сколтеха. Победитель…
🔥6❤🔥3❤2
Paper.pdf
10.8 MB
Часть 1.
С помощью машинного обучения можно решать довольно большое число задач в промышленности. Я как раз сейчас готовлю об этом большой пост на Хабр/медиум. И одно из наиболее эффективных применений ML — дополнение существующих методов диагностики оборудования.
Например, важным методом контроля и диагностики состояния силовых трансформаторов является «Хроматографический анализ растворенных газов» (XAРГ). Он основан на принципе контроля концентрации газов, растворенных в масле трансформаторов. Появление в оборудовании практически любых видов дефектов сопровождается образованием газов, растворяющихся в масле, при этом специфические виды дефекта генерируют свои газы в разных
количествах.
Сегодня в таком методе диагностирования в основном используются уставочные (предельные) значения на концентрации растворенных газов в масле. Превысили предел — сигнализируем об аномалии.
Конечно, как и везде, для лучшего понимания текущего состояния можно выставить предупредительные, предаварийные и другие пределы, сигнализирующие о переходах в разные состояния, но это по-прежнему не дает достаточного представления о текущем состоянии, не дает диагнозов (надо дополнительно анализировать показания концентраций) и в лучшем случае частично автоматизирует процесс диагностики. В таких процессах часто ML не только применимо, но и показывает хорошее качество, конечно, при наличии приемлимые данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4❤🔥3🔥1
Часть 2.
Продолжение этого поста.
Немного о данных
В данной задаче у нас на входе есть датасеты, представляющие собой многомерные временные ряды. Каждый дотасет содержит 420 точек и 4 признака и является результатами сбора данных каждые 12 часов о содержании газов в трансформаторном масле. При этом, дотасет представляет работу трансформатор в одном из 4х режимов (нормальное состояние и 3 варианта неисправностей). Таким образом, каждой матрице (420 точек х 4 признака) соответствует 1 число - режим работы.
Задача
Задача может формулироваться как классификация временных рядов, так как каждому временному ряду мы должны поставить в соответствие метку режима. Решать ее можно разными способами, но именно постановка задачи как классическая классификация табличных данных (обучения с учителем) обычно дает наилучшие результаты.
Предварительная обработка данных
Для того, чтобы перейти к табличным данным и задаче классификации, надо привести многомерные временные ряды к векторам признаков. Схема приведения показана в карточках к посту:
• Из временного ряда мы выделяем статистические характеристики, избавляясь от временной компоненты и заменяя временной ряд на небольшой набор его статистических характеристик
• Проделываем процедуру для каждого датасета, получая вместо матрицы вектор признаков
• Собираем новую матрицу объекты-признаки, где каждый объект - состояние трансформатора в какой-то период времени, а признаки - статистические характеристики концентраций газов за этот период
• Теперь у нас каждой строке (объекту) датасета соответствует число - номер режима, и мы можем решать задачу классификации с помощью удобных и привычных методов (лог регрессия, случайный лес, град бустинг и тд).
Об этом в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4❤3❤🔥1
Оффтоп: участвовали тут почти 3 недели в хакатоне ЛЦТ в задаче Северстали по диагностике эксгаустеров (если будете гуглить: найти нужный эксгаустер непросто, подсказка — этот из металлургии).
🥈 До первого места не добрались, но второе тоже хорошо. Возможно, позже подробнее напишу/расскажу об опыте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👏7❤🔥3🤔1
Предыдущие части: часть 1, часть 2
Подготовка к обучению
Подошли к самой интересной части — обучению моделей машинного обучения. Так как мы подготовили выборку в виде табличных данных, нам остаются последние приготовления:
• масштабировать данные при необходимости.
• разделить выборку на обучающую и тестовую части.
Может быть важно еще обработать данные, например, уравнять пропорции классов, так как выборка несбалансированная. Тогда есть два основных варианта (об этом подробнее в будущих постах про предварительную обработку):
• оверсэплинг редкого класса
• андерсэплинг частого класса
Обучение моделей
Теперь с чистой душой можно делать фит и предикт! В рамках работы мы попробовали все основные классы методов:
• linear method (Logistic Regression)
• tree-based method (Decision Trees)
• ensemble-based methods (Random Forest, Gradient Boosting)
• neural network (multilayer perceptron)
И действительно после такой предварительной обработки особо ничего кроме фит-предикт больше делать не надо было — результат был довольно хороший.
Ансамбль моделей
В конце концов мы остановились на ансамбле перечисленных выше методов. Ансамбль представляет собой классификатор из XGBoost, построенный на результатах моделей первого уровня: случайного леса, LGBM и многослойного персептрона. Даже не спрашивайте, почему так. Честный ответ — на основе результатов на валидационной выборке. Никакого глубокого смысла в такой конструкции нет. Я мог бы начать рассказывать о том, что ансамблирование моделей разных классов позволяет лучше обобщить данные, добавить робастности, учесть сильные стороны разных подходов, нивелировать слабые и тд. Это все действительно так, но в промышленности лучше использовать более простые модели поэтому городить такие ансамбли надо осторожно. К тому же, даже простые модели типа логистической регрессии в такой постановке задачи уже давали нормальный результат. В общем, для полной картины стоит почитать статью из первого поста.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4❤🔥3🤡1
Именно так называется моя большая статья на Хабре. Самый полный гайд (из тех, что я встречал) по постановкам в терминах машинного обучения, вариантам данных и способам решения одной из важнейших задач диагностики — определения остаточного ресурса. Периодически апдейчу статью, поэтому на Хабре всегда актуальная версия. Например, недавно добавил новый кейс с этого хакатона, где определение остаточного ресурса было всего лишь 1ой из нескольких задач (о хакатоне подробнее напишу отдельно).
И совсем недавно выпустил уже традиционный перевод статьи на английский язык на медиуме.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Все, что вы хотели знать о задаче определения остаточного ресурса оборудования
Применение искусственного интеллекта и машинного обучения в задачах промышленности не настолько распространено, как в других сферах и отраслях экономики вроде банкинга, ритейла, телекома. При этом...
👍14🔥8❤3
Этот пост в основном о кейсе, но немного и о самом хакатоне. Часть 2 здесь
Задача
Изначально формулировка задачи была примерно следующая:
Разработайте модель, определяющую возможность возникновения нештатной работы оборудования
Что такое эксгаустер? И какая там проблема?
Простым языком об этом рассказано в видео. А вот цитата из статьи ЕВРАЗа на хабре:
А если совсем в двух словах, то эксгаустер — это часть агломерационной машины, он постоянно втягивает горячий воздух и выпускает его в трубу. Внутри него расположен ротор — своего рода вентилятор, который прогоняет раскалённый воздух. Если этот ротор выходит из строя, то перестаёт работать и эксгаустер, и вся агломашина.
При чем здесь Евраз, если задачу на Хакатон ставила Северсталь? Просто недавно ЕВРАЗ проводил очень похожий хакатон (супер актуальная проблема?). Мы решили тогда не участвовать, но в этот раз пропустить не могли
• Проблематике
• Задачах с точки зрения DS и технической диагностики
• Подходах к решению задач
• Архитектуре решения
О хакатоне
Про особенности хакатонов рассказывал в отдельной большой статье, здесь тезисно перечислю некоторые моменты:
• Хакатон шел почти месяц с первого дня до финальной защиты (почти все время можно было работать над решением), что является особенностью (обычно это 2-3 дня), кому-то удобно погрузиться в задачу глубоко, кому-то не хочется тратить столько времени с непрогнозируемым результатом
• Не хватало единой точки сбора информации, все было разрозненно (сайт, посты в каналы, ответы на вопросы от экспертов, исходная презентация с задачей), приходилось собирать это все вместе (тренажер реального проекта от организаторов?)
• В положении нет критериев, они появились вместе с задачей и не были взвешены: не понятно, какой вес у каждого критерия, как считаются суммарно баллы и тд. В целом не хватало прозрачности
• До самого конца хакатона нам так и не ответили эксперты на некоторые вопросы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤🔥4