Katser – Telegram
Katser
2.26K subscribers
93 photos
7 videos
10 files
137 links
Авторский канал @ykatser по data science, машинному обучению и искусственному интеллекту в основном в задачах промышленности, но не только
Download Telegram
🔎 Несколько лет назад очень разлетелся этот пост под названием “Применение машинного обучения и Data Science в промышленности” (перевод англоязычного поста). Это большой список ссылок с примерами применения AI/ML/DS (обязательно код на python и размещение на GitHub) в различных отраслях промышленности.
Несмотря на большую популярность и неплохие отзывы про пост в целом, в главе “Производство” очень не хватает полезных материалов. Захотелось это исправить и сделать более полный, качественный и, в итоге, полезный список, пусть и заменяющий всего одну главу исходного.

📁 Статья на vc и постоянно пополняющийся репозиторий на гитхабе
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85👍3🥰1
🗣Анонс выступления

Что?
Доклад «Опыт проектов с машинным обучением и data science в промышленности»

Когда?
26 апреля 2023 в 14.00

Где?
Онлайн конференция DataStart

О чем?
Расскажу о своем опыте проектов с искусственным интеллектом и анализом данных в промышленности. Фокус доклада на особенностях и барьерах при внедрении указанных технологий на производства с рекомендациями по их преодолению. Также будет немного об управлении проектами и полезные материалы по близким темам.
👍7🔥42
📉 Почти год назад я также выступал на конференции Datastart, правда с техническим докладом “Библиотеки для работы с временными рядами на Python”. После этого даже выпустил статью (с помощью редакции tproger), которую можно почитать по ссылке. В статье, как и в докладе, я рассказываю о задачах, которые ставятся на временных рядах, а также о не самых популярных библиотеках, позволяющих решать обозначенные задачи. Статья определенно имеет потенциал для улучшения, но в качестве ознакомительного с темой обзорного материала вполне подойдет.
Вообще, тема временных рядов не такая уж и популярная, поэтому я собираю для себя разные материалы в этом репозитории на гитхабе, а также в моих звездах на гитхабе (но там большинство репозиториев не для новичков!).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5👏4
🎙Научпоп разговор про предиктивную аналитику в нашей жизни.

Подкаст о том, как Data Science и предиктивная аналитика помогают понять, через сколько выгорит сотрудник? Откуда интернет-магазины знают, что вам нужна не пряжа, а пена для бритья? И почему мы до сих пор не смогли предсказать все? Поговорили об этих и других вопросах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👏3
👨‍💻Закончил статью про проблемы на хакатонах, снижающие прозрачность процессов и прогнозируемость результатов. По сути перечисляю 🚩рэд флэги, которые надо держать в уме, а, если они встретились — взвешивать риски. Ведь рандом может быть как в плюс, так и стать серьезным разочарованием по итогам (особенно, когда млн рублей на кону, а решает все случайный человек).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4👏3❤‍🔥1
📈Написал пост по теме "Точечные vs коллективные аномалии: возможные задачи и пути их решения" на канале Reliable ML. К посту еще и схема прилагается!
На мой взгляд, получилось неплохое дополнение к очень познавательному Циклу постов о подготовке данных, рекомендую почитать: пост 1, пост 2, пост 3.

🗣А еще скоро выступаю у ребят в одноименном треке на DataFest'е, но об этом поговорим попозже.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4👏4
📉 Аугментация временных рядов

Сегодняшние достижения в области ИИ просто невозможно представить без больших объемов данных (для обучения DALL-E использовались 250 млн пар картинка-описание, это очень много!). Вот области компьютерного зрения (CV) и обработки естественного языка (NLP) в основном не страдают от недостатка больших датасетов (корпусов текстов, наборов изображений и тд). Но в области временных рядов ситуация не такая радужная.

При этом не всегда важно собирать огромный датасет из реальных примеров текстов и изображений, хотя это и идеальный сценарий. Иногда можно аугментировать данные, то есть искусственно создать или синтезировать примеры, что может помочь в отсутствии больших датасетов. Понаучней определение аугментации возьмем из обзора: “The basic idea of data augmentation is to generate synthetic dataset covering unexplored input space while maintaining correct labels.”
Если рассмотреть аугментацию на примере изображений, то одним из простейших методов будет геометрическое преобразование: зеркальное отражение картинки (по вертикали или горизонтали) или поворот на 90/180/270 градусов. Это уже увеличивает количество доступных данных для обучения в 2 и более раза. В текстах можно переставлять слова в предложении. Подробнее об аугментации этих типов данных, включая подходы, код и библиотеки, можно почитать по ссылкам: CV и NLP

Но вернемся к временным рядам: и здесь опять все не очень хорошо. Аугментировать их сложнее, потому что, датасеты не такие большие и сильно отличаются между собой в зависимости от задачи и доменной области. Более того, в научных статьях постоянно пишут, что область аугментации временных рядов недоисследована. Это косвенно подтверждается и малым количеством open-source разработок для аугментации временных рядов в противовес CV и NLP. Но есть пара неплохих обзоров (раз, два) методов аугментации временных рядов. Обзоры совсем свежие — 2021-22 годов, немного по-разному классифицируют методы. В последнем, например, выделяют 3 основные группы:
• Классические преобразования (представлены на картинке в следующем посте)
• VAE
• GAN
Для деталей стоит почитать оригинальный обзор.

Из инструментов для аугментации временных рядов на python встречал только два:
• [3,4k звезд на гитхабе] https://github.com/timeseriesAI/tsai
• [300 звезд на гитхабе] https://github.com/arundo/tsaug
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥3
Иллюстрация классических методов аугментации временных рядов к предыдущему посту.
👏9🤔43
📝Пост ради картинки!

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

А как на самом деле?
На практике в проектах ты не всегда успеваешь дойти и повозиться с новыми сетками (и так надо с данными разобраться, с разметкой, бумажными журналами, с постановкой задачи, бейзлайны, бизнес-логика, физика и технология процесса и тд). В лучшем случае после бейзлайна без мл, простых постановок задач и линейных моделей, деревянных моделей, эвристик ты доходишь до рекуррентных сетей простой архитектуры (пара последовательных LSTM слоев или автоэнкодер с LSTM слоями, или даже FF автоэнкодер). Даже простые сетки не всегда хорошо работают, а более сложные иногда и отучить нормально не получается. Это происходит из-за проблем в данных (доклад, статья), небольших объемов, проблем с трансфером знаний даже между единицами оборудованием одной модели.
Поэтому по-прежнему классические алгоритмы, экспертные правила и эвристики активно используются как минимум в промышленности.

Неужели научные статьи врут?
Не совсем так. Я выделяю большую проблему с публичными данными и бенчмарками, на которых в статьях показаны результаты. Совсем мало публичных качественных датасетов в области временных рядов, в области аномалии, в области промышленности и технических систем. Поэтому и в работах часто показаны результаты в очень ограниченных условиях, на каких-то синтетических или сгенерированных данных.

Интересное исследование
Хочу поделиться одним обзором работ поиска аномалий во временных рядах 2022 года. Сравнения были проведены для 71 (очень много!) алгоритма на 976 датасетах (это всего 23 бенчмарка, но согласитесь, что 900+ звучит солиднее!). Картинка из этой статьи с многообразием и классификацией алгоритмов будет в следующем посте. Мне она так понравилась, что теперь использую ее во всех докладах по теме. Нам интересны выводы по итогам сравнения, дальше цитата из статьи:
“we found that deep learning approaches are not (yet) competitive despite their higher processing effort on training data. We could also confirm that “simple methods yield performance almost as good as more sophisticated methods”. Still, no single algorithm clearly performs best.”
То есть по-прежнему нет серебряной пули или явных лидеров как в классическом ML с их бустингами, да и превосходство глубокого обучения пока не подтверждается. Так что подход как и раньше — перебор алгоритмов, пока один не окажется лучше для вашей конкретной задачи и ваших конкретных данных, а опыт и экспертные/доменные знания все еще важен и может бить большие модели. Но, думаю, это не на долго.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏7👍5🔥3❤‍🔥1
Иллюстрация многообразия алгоритмов и методов обнаружения аномалий к предыдущему посту.
👍9🔥6😱4❤‍🔥1
🗣 Выступлю сразу с тремя докладами на ежегодном мероприятии сообщества Open Data Science - DataFest 2023. Можно смотреть онлайн здесь или офлайн, если вы в Ереване.

«Диагностика нефтегазовых трубопроводов с помощью машинного обучения»
21 мая в 14:00 по мск (онлайн+офлайн)

«Open-source бенчмарки для задач обнаружения аномалий в промышленных временных рядах и SKAB»
26 мая в 16:15 по мск (онлайн)

«Предварительная обработка и поиск аномалий во временных рядах»
4 июня в 15:15 по мск (онлайн)

Кстати, маловероятно, но время и дата могут измениться, буду держать в курсе!

Потом обязательно выложу видео выступлений и расскажу о них подробнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👏7❤‍🔥5
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