Как ИИ обнаруживает аномалии?

Как ИИ обнаруживает аномалии?

Обнаружение аномалий — это незаметный герой обработки данных, словно дымовая сигнализация, которая шепчет перед тем, как что-то загорится.

Проще говоря: ИИ учится определять, что такое «более-менее нормальное» состояние, присваивает новым событиям оценку аномальности , а затем решает, следует ли вызвать человека (или автоматически заблокировать событие) на основе порогового значения . Дьявол кроется в том, как вы определяете «более-менее нормальное» состояние, когда ваши данные носят сезонный характер, нестабильны, изменчивы и порой вводят вас в заблуждение. [1]

Статьи, которые могут вас заинтересовать после этой:

🔗 Почему ИИ может быть вреден для общества.
Рассматриваются этические, экономические и социальные риски широкого внедрения ИИ.

🔗 Сколько воды на самом деле потребляют системы искусственного интеллекта?
Объясняется необходимость охлаждения центров обработки данных, потребности в обучении и воздействие на окружающую среду, связанное с потреблением воды.

🔗 Что такое набор данных для ИИ и почему это важно.
Дает определение наборам данных, разметке, источникам и их роли в производительности модели.

🔗 Как ИИ прогнозирует тенденции на основе сложных данных.
Рассматриваются распознавание образов, модели машинного обучения и практическое применение прогнозирования.


«Как ИИ обнаруживает аномалии?» 

Хороший ответ должен не просто перечислять алгоритмы. Он должен объяснять механику их работы и то, как они проявляются при применении к реальным, несовершенным данным. Лучшие объяснения:

  • Показать основные компоненты: признаки , базовые показатели , оценки и пороговые значения . [1]

  • Сравните практические семейства: расстояние, плотность, один класс, изоляция, вероятностный, реконструкция. [1]

  • Обрабатывайте особенности временных рядов: «норма» зависит от времени суток, дня недели, релизов и праздников. [1]

  • Относитесь к оценке как к реальному ограничению: ложные срабатывания не просто раздражают — они подрывают доверие. [4]

  • Включите в расчет интерпретируемость + участие человека, потому что «это странно» не является основной причиной. [5]


Основные принципы: базовые показатели, баллы, пороговые значения 🧠

Большинство систем обнаружения аномалий — сложных или нет — сводятся к трем движущимся частям:

видит модель )

Необработанных сигналов редко бывает достаточно. Вы либо создаете признаки (скользящая статистика, соотношения, задержки, сезонные дельты), либо обучаете представления (встраивания, подпространства, реконструкции). [1]

2) Подсчет очков (иначе говоря: насколько это «странно»?)

К распространенным методам подсчета очков относятся:

  • Основано на расстоянии : далеко от соседей = подозрительно. [1]

  • Основано на плотности : низкая локальная плотность = подозрительно (LOF — яркий тому пример). [1]

  • Границы одного класса : изучить «норму», отметить то, что выходит за её пределы. [1]

  • Вероятностный : низкая вероятность при подобранной модели = подозрительно. [1]

  • Ошибка реконструкции : если модель, обученная на нормальных изображениях, не может восстановить их, вероятно, она неверна. [1]

3) Пороговое значение (или: когда звонить в звонок)

Пороговые значения могут быть фиксированными, основанными на квантилях, для каждого сегмента или зависящими от затрат, но их следует калибровать с учетом бюджетов оповещений и последующих затрат, а не на основе настроений. [4]

Одна очень важная деталь: детекторы выбросов/новинок в scikit-learn отображают исходные оценки , а затем применяют пороговое значение (часто контролируемое с помощью предположения о загрязнении) для преобразования оценок в решения о наличии/отсутствии выбросов. [2]


Краткие определения, которые помогут избежать боли в будущем 🧯

Два важных момента, которые помогут избежать незначительных ошибок:

  • Выявление выбросов : ваши обучающие данные могут уже содержать выбросы; алгоритм в любом случае пытается смоделировать «плотную нормальную область».

  • Обнаружение новизны : предполагается, что обучающие данные чистые; вы оцениваете, соответствуют ли новые наблюдения изученному нормальному шаблону. [2]

Кроме того: обнаружение новизны часто рассматривается как одноклассовая классификация — моделирование нормы, поскольку аномальные примеры редки или не определены. [1]

 

Аномалии ИИ, сбои

Рабочие лошадки без присмотра, которые вы действительно будете использовать 🧰

Когда меток мало (а это практически всегда), в реальных рабочих процессах используются следующие инструменты:

  • Изоляционный лес : сильный алгоритм по умолчанию во многих табличных случаях, широко используемый на практике и реализованный в scikit-learn. [2]

  • Одноклассовый SVM : может быть эффективным, но чувствителен к настройке и предположениям; scikit-learn явно указывает на необходимость тщательной настройки гиперпараметров. [2]

  • Локальный фактор выбросов (LOF) : классическая оценка на основе плотности; отлично подходит, когда «норма» не представляет собой аккуратное пятно. [1]

Практический нюанс, который команды обнаруживают заново каждую неделю: LOF ведет себя по-разному в зависимости от того, выполняете ли вы обнаружение выбросов на обучающем наборе или обнаружение новизны на новых данных — scikit-learn даже требует novelty=True для безопасного подсчета ранее не встречавшихся точек. [2]


Надежная базовая модель, которая продолжает работать даже при капризных данных 🪓

Если вы придерживаетесь принципа «нам просто нужно что-то, что не погружает нас в забвение», то надежная статистика недооценена.

Модифицированный z-балл использует медиану и MAD (медианное абсолютное отклонение) для снижения чувствительности к экстремальным значениям. В руководстве NIST по EDA описана модифицированная форма z-балла и отмечено часто используемое эмпирическое правило «потенциального выброса» при абсолютном значении выше 3,5 . [3]

Это не решит все проблемы с аномалиями, но часто это сильная первая линия защиты, особенно для зашумленных метрик и мониторинга на ранних этапах. [3]


Реальность временных рядов: «Норма» зависит от времени ⏱️📈

Аномалии временных рядов сложны, потому что контекст играет решающую роль: всплеск в полдень может быть ожидаемым; тот же всплеск в 3 часа ночи может означать, что что-то горит. Поэтому многие практические системы моделируют нормальность, используя временные характеристики (задержки, сезонные дельты, скользящие окна) и оценивают отклонения относительно ожидаемого паттерна. [1]

Если вы запомните только одно правило: сегментируйте свой базовый уровень (час/день/регион/уровень обслуживания), прежде чем объявлять половину своего трафика «аномальной». [1]


Оценка: Ловушка редких событий 🧪

Обнаружение аномалий часто оказывается «как иголку в стоге сена», что делает процесс оценки весьма сложным:

  • Кривые ROC могут выглядеть обманчиво хорошими, когда положительные результаты встречаются редко.

  • Показатели точности и полноты часто оказываются более информативными в условиях несбалансированного распределения, поскольку они фокусируются на результатах в положительном классе. [4]

  • В оперативном плане также необходим бюджет оповещений : сколько оповещений в час люди могут фактически обработать, не бросив работу в гневе? [4]

Тестирование на скользящих окнах помогает выявить классический пример ошибки: «прекрасно работает… на распределении за прошлый месяц». [1]


Интерпретируемость и первопричина: покажите ход решения 🪄

Оповещение без объяснения причин — это как получить загадочную открытку. Отчасти полезно, но раздражает.

Инструменты интерпретируемости могут помочь, указывая на то, какие признаки в наибольшей степени способствовали оценке аномальности, или давая объяснения в стиле «что нужно изменить, чтобы это выглядело нормально?». «Интерпретируемое машинное обучение » — это основательное, критическое руководство по распространенным методам (включая атрибуцию в стиле SHAP) и их ограничениям. [5]

Цель состоит не только в обеспечении комфорта заинтересованных сторон, но и в ускорении процесса сортировки инцидентов и уменьшении числа повторных происшествий.


Развертывание, дрейф и петли обратной связи 🚀

Модели существуют не в слайдах, а в конвейерах обработки данных.

Типичная история из «первого месяца в продакшене»: детектор в основном отмечает развертывания, пакетные задания и отсутствующие данные… что, тем не менее, полезно, поскольку заставляет вас отделять «инциденты, связанные с качеством данных», от «аномалий бизнеса».

На практике:

  • Отслеживайте дрейф и переобучайте/перекалибровывайте по мере изменения поведения. [1]

  • Входные данные лог-оценки + версия модели , чтобы можно было воспроизвести причину вызова пейджера. [5]

  • Собирайте отзывы людей (полезные и неинформативные оповещения), чтобы со временем корректировать пороговые значения и сегменты. [4]


Вопрос безопасности: системы обнаружения вторжений и поведенческий анализ 🛡️

Группы специалистов по безопасности часто сочетают идеи обнаружения аномалий с обнаружением на основе правил: базовые показатели для «нормального поведения хоста», а также сигнатуры и политики для известных вредоносных шаблонов. Стандарт NIST SP 800-94 (Final) остается широко цитируемым источником информации для систем обнаружения и предотвращения вторжений; в нем также отмечается, что проект 2012 года «Rev. 1» так и не стал окончательным и впоследствии был снят с производства. [3]

Перевод: используйте машинное обучение там, где это полезно, но не отбрасывайте скучные правила — они скучны, потому что работают.


Сравнительная таблица: популярные методы вкратце 📊

Инструмент/Метод Лучше всего подходит для Почему это работает (на практике)
Надежные/модифицированные z-баллы Простые показатели, быстрые базовые значения Уверенная первая попытка, когда нужно «достаточно хорошо» и меньше ложных срабатываний. [3]
Изоляционный лес Табличные, смешанные характеристики Надежная реализация по умолчанию, широко используемая на практике. [2]
Одноклассовый SVM Компактные «нормальные» области Обнаружение новизны на основе границ; настройка имеет большое значение. [2]
Локальный фактор выбросов Нормали, похожие на многообразия Контраст плотности по сравнению с соседними участками позволяет выявить локальные аномалии. [1]
Ошибка реконструкции (например, в стиле автокодировщика) Многомерные паттерны Обучение на нормали; большие ошибки реконструкции могут указывать на отклонения. [1]

Хитрость: начните с надежных базовых моделей + скучный метод обучения без учителя, а затем усложняйте модель только там, где это приносит пользу.


Краткое руководство: от нуля до оповещений 🧭

  1. Определите понятие «странность» с операционной точки зрения (задержка, риск мошенничества, перегрузка процессора, риск, связанный с запасами).

  2. Начните с базового уровня (надежные статистические данные или сегментированные пороговые значения). [3]

  3. Выберите одну модель без учителя в качестве первого шага (Isolation Forest / LOF / One-Class SVM). [2]

  4. Установите пороговые значения с помощью бюджета оповещений и оценивайте ситуацию с точки зрения подхода, аналогичного PR, если положительные результаты редки. [4]

  5. Добавьте пояснения и логирование , чтобы каждое оповещение можно было воспроизвести и отладить. [5]

  6. Тестирование, запуск, обучение, повторная калибровка — дрейф является нормальным явлением. [1]

Вы вполне можете сделать это за неделю… если, конечно, ваши временные метки не скреплены скотчем и надеждой. 😅


Заключительные замечания — Слишком длинно, я не стал читать🧾

Искусственный интеллект обнаруживает аномалии, обучаясь на практике понимать «норму», оценивая отклонения и отмечая то, что выходит за пределы порогового значения. Лучшие системы побеждают не за счет эффектности, а за счет калибровки : сегментированные базовые уровни, бюджеты оповещений, интерпретируемые выходные данные и цикл обратной связи, который превращает шумные сигналы тревоги в надежный сигнал. [1]


Ссылки

  1. Пиментел и др. (2014) — Обзор методов обнаружения новизны (PDF, Оксфордский университет) читать далее

  2. Документация scikit-learn — Выявление новизны и выбросов (подробнее)

  3. Электронное руководство NIST/SEMATECH — Выявление аномальных значений (подробнее) и руководство NIST CSRC — SP 800-94 (Final): Руководство по системам обнаружения и предотвращения вторжений (IDPS) (подробнее

  4. Сайто и Ремсмейер (2015) — График точности-полноты более информативен, чем ROC-кривая, при оценке бинарных классификаторов на несбалансированных наборах данных (PLOS ONE) подробнее

  5. Мольнар — Интерпретируемое машинное обучение (веб-книга) подробнее

Найдите новейшие разработки в области ИИ в официальном магазине ИИ-помощников

О нас

Вернуться в блог