Katser
2.25K subscribers
93 photos
7 videos
10 files
137 links
Авторский канал @ykatser по data science, машинному обучению и искусственному интеллекту в основном в задачах промышленности, но не только
Download Telegram
Media is too big
VIEW IN TELEGRAM
Краткое содержание моего вчерашнего выступления🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7💯4👍3❤‍🔥1
💡Однажды я участвовал в проекте по диагностике электролизеров на производстве ядерного топлива. Электролизеры совсем как в школе на уроках физики и химии, только побольше и подороже. Об этом проекте я рассказывал на AI Journey, но в рассказе акцентировал внимание на менеджерской и безнесовой частях проекта. Кстати, в те времена я еще волновался во время выступлений, хотя это и было онлайн.

Что касается data science части, то в рамках проекта успели попробовать почти все подходы к решению задачи поиска и прогнозирования аномалий:
• эвристики, экспертные правила, оценки распределений и других статистических характеристик сигналов. Сюда же относятся некоторые статистические критерии, типа Хотеллинга, cusum, ewma, проверяющие гипотезы об изменениях статистических характеристик сигналов.
• Supervised классификация каждой точки. Если есть разметка для всех моментов времени, можно поставить задачу как бинарную (или многоклассовую) классификацию, определяя класс каждой точки в выборке. Обычно осложняется отсутствие правильной разметки.
• Supervised классификация интервалов. Указание, какой интервал является аномальным, а какой нормальным. Можно применять на скользящем окне, если задача состоит в том, чтобы указать будет ли аномалия в какой-то (следующий) период времени. Так же бывают проблемы с разметкой.
• Semi-supervised подход. Построение модели нормального режима работы, после чего использовании этой модели для поиска отклонений от нормального режима. Если модель уловила закономерности в норме, то в случае возникновения аномалий закономерности будут другими и модель будет сильно ошибаться, а разница между моделью и реальными данными будет значительной. Подход очень распространен, так как нужна всего лишь разметка нормального режима работы, которая бывает доступна довольно часто.
В данном случае как раз первый подход был лучшим среди всех, не считая ансамблей на основе разных подходов. Но более подробно об этом я еще возможно когда-нибудь расскажу в научной или технической статье. Конечно, обезличенно.

Кстати, этот и другие кейсы применения data science и машинного обучения в промышленности можно найти в этом репозитории на гитхабе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥3🔥3👏1
📚 Хочу немного дополнить свой пост на vc "Источники для изучения data science и machine learning (книги, курсы и не только)”, состоящий из двух частей:
• часть про курсы, материалы и тд — стоит прочитать и посмотреть все, если нет какой-то хорошей базы, например, из института или хороших платных курсов (ФКН ВШЭ, физтех и др.). Курсы и материалы из тех, что рекомендую смотрел все, но не все очень внимательно, обычно беру из курса то, что нужно.
• часть про книги — не считаю, что все надо прочитать, но если надо подтянуть или разобраться в какой-то подобласти, то можно брать книжки из списка. Книги читал не все, но непрочитанные лежат в списке to read и ждут своей очереди.

Learning by doing
Я убежден, что во время изучения data science и machine learning надо сосредоточиться на практике как можно раньше (как только получается что-то делать) и учиться по типу "learning by doing".
В начале пути далеко не обязательно знать, что "под капотом" у алгоритмов и методов. Зависит от специфики работы и задач. Вот теорвер и матстат действительно часто нужны в работе, например, для анализа данных, для анализа результатов алгоритмов, для дизайна экспериментов и тд.

Как можно получать практику?
• Стажировки, работа, реальные проекты. Очевидно.
• Хакатоны, соревнования по анализу данных. Самой распространенной площадкой для соревнований является kaggle.com. Там еще есть датасеты, курсы и много полезных примеров кода и блокнотов, решающих самые разные задачи.
• Важной и интересной практикой являются тренажеры. Вот 2 известных сервиса, которыми я пользовался сам:
💻 для программирования - https://leetcode.com
🔍 для анализа данных - https://www.stratascratch.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126🔥2
📈 Общая задача обнаружения аномалий во временных рядах часто разделяется на две отдельные подзадачи: обнаружение выбросов или бинарная классификация (для точечных аномалий) и обнаружение точек изменения состояния (changepoint detection, для коллективных аномалий). Более подробно я писал в этом посте.

Ранее на pycon’е я подробно рассказывал именно о подзадаче changepoint detection, методах и библиотеках на python для решения задачи. Доклад может помочь:
• более глубоко разобраться в задаче поиска аномалий во временных рядах и понять разницу между типами аномалий (точечные, коллективные) и типами математических постановок задач (бинарная классификация, changepoint detection);
• узнать о наиболее популярных существующих библиотеках на python, решающих задачи поиска аномалий;
• понять, как ставить задачу поиска коллективных аномалий (changepoint detection) во временных рядах;
• понять разницу между оффлайн и онлайн постановками задачи;
• узнать основные методы решения этой задачи, в том числе реализованные в библиотеках на python;
• узнать наиболее распространённый подход к решению задачи — генерация невязки сигнала (на основе различных моделей машинного обучения) и как легко реализовать этот подход на python.
👍10🔥43
🚨 Серия постов о качестве и предварительной обработке временных рядов. Часть 1 - Введение.

Уже давно написал небольшую заметку “О качестве данных для машинного обучения”. Немного тезисов из заметки и в дополнение к ней:
• Качество данных всегда называется в числе топ-3 барьеров развития ИИ. Еще одна постоянно фигурирующая проблема - кадры, но об этом в другой раз.
• Проблемы в данных могут не только снижать качество работы методов машинного обучения, но и полностью исключать возможность их использования. Есть даже такое выражение: garbage in - garbage out, которое означает, что некачественные данные на входе приводят к плохому результату на выходе.
• Работа с данными и их приведение к нужному виду для постановки и решения задач в терминах машинного обучения могут занимать до 70% времени работы дата сайентиста на проекте.
• Работа с качеством данных выглядит примерно следующим образом:
1. Сначала надо обнаружить проблему.
2. Потом надо решить проблему (подобрать оптимальный метод предварительной обработки). Кстати, ничего не делать - тоже может быть решением.
3. Финальный способ решения (метод предварительной обработки) надо интегрировать в пайплайн инференса.

С качеством данных я сталкивался как в рамках работы на реальных проектах, так и в рамках научных исследований, в итоге весь опыт собрал в доклад и статью (+ англ версия статьи) о проблемах в промышленных данных. Доклад обозревает проблемы, но ведь нужно еще научиться их обнаруживать и устранять. Об этом я, во-первых, поговорю сегодня на треке Reliable ML в 15.15 по мск. Во-вторых, анонсирую серию постов, где я разберу самые популярные проблемы во временных рядах, способы их детектирования и способы их устранения, то есть методы предварительной обработки данных.
🔥6❤‍🔥32
Paper.pdf
10.8 MB
🔍Кейс с диагностикой трансформаторов.
Часть 1.


С помощью машинного обучения можно решать довольно большое число задач в промышленности. Я как раз сейчас готовлю об этом большой пост на Хабр/медиум. И одно из наиболее эффективных применений ML — дополнение существующих методов диагностики оборудования.
Например, важным методом контроля и диагностики состояния силовых трансформаторов является «Хроматографический анализ растворенных газов» (XAРГ). Он основан на принципе контроля концентрации газов, растворенных в масле трансформаторов. Появление в оборудовании практически любых видов дефектов сопровождается образованием газов, растворяющихся в масле, при этом специфические виды дефекта генерируют свои газы в разных
количествах.

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

📌 В прикрепленной статье мы рассказали про проблему, про данные и про решение задачи автоматизации диагностики с помощью ML. Подробности о решении задачи обнаружения и классификации дефектов трансформаторов в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134❤‍🔥3🔥1
🔍Кейс с диагностикой трансформаторов.
Часть 2.

Продолжение этого поста.

Немного о данных
В данной задаче у нас на входе есть датасеты, представляющие собой многомерные временные ряды. Каждый дотасет содержит 420 точек и 4 признака и является результатами сбора данных каждые 12 часов о содержании газов в трансформаторном масле. При этом, дотасет представляет работу трансформатор в одном из 4х режимов (нормальное состояние и 3 варианта неисправностей). Таким образом, каждой матрице (420 точек х 4 признака) соответствует 1 число - режим работы.

Задача
Задача может формулироваться как классификация временных рядов, так как каждому временному ряду мы должны поставить в соответствие метку режима. Решать ее можно разными способами, но именно постановка задачи как классическая классификация табличных данных (обучения с учителем) обычно дает наилучшие результаты.

Предварительная обработка данных
Для того, чтобы перейти к табличным данным и задаче классификации, надо привести многомерные временные ряды к векторам признаков. Схема приведения показана в карточках к посту:
• Из временного ряда мы выделяем статистические характеристики, избавляясь от временной компоненты и заменяя временной ряд на небольшой набор его статистических характеристик
• Проделываем процедуру для каждого датасета, получая вместо матрицы вектор признаков
• Собираем новую матрицу объекты-признаки, где каждый объект - состояние трансформатора в какой-то период времени, а признаки - статистические характеристики концентраций газов за этот период
• Теперь у нас каждой строке (объекту) датасета соответствует число - номер режима, и мы можем решать задачу классификации с помощью удобных и привычных методов (лог регрессия, случайный лес, град бустинг и тд).
Об этом в следующем посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥43❤‍🔥1
Оффтоп: участвовали тут почти 3 недели в хакатоне ЛЦТ в задаче Северстали по диагностике эксгаустеров (если будете гуглить: найти нужный эксгаустер непросто, подсказка — этот из металлургии).

🥈До первого места не добрались, но второе тоже хорошо. Возможно, позже подробнее напишу/расскажу об опыте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👏7❤‍🔥3🤔1
🔍Кейс с диагностикой трансформаторов. Часть 3.
Предыдущие части: часть 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
👍94❤‍🔥3🤡1
🔬 Все, что вы хотели знать о задаче остаточного ресурса оборудования

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

И совсем недавно выпустил уже традиционный перевод статьи на английский язык на медиуме.

🐣А кто не хочет читать — посмотрите мой доклад с ИИшницы. Не такой полный как статьи, но представление о задаче вполне дает.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥83
💼Предиктивная аналитика эксгаустеров. Часть 1
Этот пост в основном о кейсе, но немного и о самом хакатоне. Часть 2 здесь

Задача
Изначально формулировка задачи была примерно следующая:
Разработайте модель, определяющую возможность возникновения нештатной работы оборудования

Что такое эксгаустер? И какая там проблема?
Простым языком об этом рассказано в видео. А вот цитата из статьи ЕВРАЗа на хабре:
А если совсем в двух словах, то эксгаустер — это часть агломерационной машины, он постоянно втягивает горячий воздух и выпускает его в трубу. Внутри него расположен ротор — своего рода вентилятор, который прогоняет раскалённый воздух. Если этот ротор выходит из строя, то перестаёт работать и эксгаустер, и вся агломашина.
При чем здесь Евраз, если задачу на Хакатон ставила Северсталь? Просто недавно ЕВРАЗ проводил очень похожий хакатон (супер актуальная проблема?). Мы решили тогда не участвовать, но в этот раз пропустить не могли

📌 В карточках рассказано о:
• Проблематике
• Задачах с точки зрения DS и технической диагностики
• Подходах к решению задач
• Архитектуре решения

О хакатоне
Про особенности хакатонов рассказывал в отдельной большой статье, здесь тезисно перечислю некоторые моменты:
• Хакатон шел почти месяц с первого дня до финальной защиты (почти все время можно было работать над решением), что является особенностью (обычно это 2-3 дня), кому-то удобно погрузиться в задачу глубоко, кому-то не хочется тратить столько времени с непрогнозируемым результатом
• Не хватало единой точки сбора информации, все было разрозненно (сайт, посты в каналы, ответы на вопросы от экспертов, исходная презентация с задачей), приходилось собирать это все вместе (тренажер реального проекта от организаторов?)
• В положении нет критериев, они появились вместе с задачей и не были взвешены: не понятно, какой вес у каждого критерия, как считаются суммарно баллы и тд. В целом не хватало прозрачности
• До самого конца хакатона нам так и не ответили эксперты на некоторые вопросы. Это нужно принять
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6❤‍🔥4