Поиск по сайту Поиск

Истина где-то рядом — ищем аномалии с Python. Часть 1: теория

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

Аномалии в реальном мире

Предположим, что у вас есть банковская карта. И вот, в один неудачный день её украли. Ваш банк  отслеживает вашу обычную схему трат, чтобы уведомлять о любых существенных изменениях. Эти схемы включают число транзакций, суммы, местоположение и так далее. Если кредитная карта украдена, то скорее всего расходы по ней сильно возрастут. Именно в таких ситуациях компании используют (в том числе) поиск аномалий для выявления необычных операций по карте. Но не перепутайте аномалии с шумом — это разные вещи!

Как выглядит шум в реальном мире? Для примера рассмотрим график продаж продуктового магазина. Люди, как правило, покупают больше продуктов в начале месяца, поэтому к его окончанию владелец магазина начинает замечать снижение продаж. Он начинает делать скидки на некоторые товары, чтобы увеличить спрос. Такая схема может привести к неравномерному росту продаж, но будет ли он вписываться в обычный график? Конечно же нет. Этот рост будет создавать шумы, а точнее стохастические шумы.

Поговорив о том как выглядят аномалии в реальном мире, давайте теперь опишем их более формальным способом.

Разоблачаем странности: аномалии в данных

В книге Data Mining. Concepts and Techniques интересующее нас определение выглядит так: «Обнаружение выбросов (также известное как обнаружение аномалий) — это процесс поиска объектов данных, поведение которых сильно отличается от ожидаемого». Чтобы лучше осознать смысл выбросов, надо понимать, что отличает аномалию от шума.

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

https://paper-attachments.dropbox.com/s_1185AEC62427E23657579AF288686866FF5B3F65A0E36E86D1A293C6B0CCF4B4_1553405161903_sqDCqTEGAmcjqerU4VmkGaw.png

Множество точек (включая аномальные) на двумерном графике

На рисунке выше показано, как выглядят выбросы в наборе связанных точек. Их близость друг к другу определяется процессом, в результате которого они появились. Можно предположить, что две красные точки сгенерированы каким-то другим способом. Но как мы можем обосновать, что он действительно был другим? Только строя предположения!

При анализе аномалий обычно принято делать несколько предположений о «нормальных» данных, а затем выделять объекты, нарушающие их. Глядя на график, вы могли подумать, что анализ аномалий и разбиение данных на кластеры — почти одно и то же. Эти процессы действительно тесно связаны, но не одинаковы, поскольку преследуют разные цели. Кластеры — это группы схожих по характеристикам точек, а аномалии — выбивающиеся из общего набора объекты. 

Рассмотрим, что же может привести к возникновению аномалий в данных.

Появление аномалий в данных

Способы генерации аномалий сильно варьируются в зависимости от области применения. Вот несколько случаев, когда обнаружение выбросов чрезвычайно важно:

1. Обнаружение проникновений

В компьютерной безопасности злонамеренные проникновения могут быть обнаружены за счёт необычного сетевого трафика или нетипичных действий пользователя. Такие вторжения могут нарушить не только частную конфиденциальность, но и организационную. Их обнаружение сводится к анализу аномалий.

2. Мошеннические транзакции

Банковские операции — одна из областей, где анализ аномалий востребован очень высоко. Многие наверняка слышали, что, завладев информацией о кредитной карте, злоумышленники могут воспользоваться ей без вашего ведома. Это часто приводит к необычному поведению в схеме трат, что делает поиск выбросов эффективным способом обнаружения мошенничества.

3. Срабатывание электронных датчиков

Электронные датчики позволяют нам изучать данные из разных источников. У большинства мобильных устройств тоже есть датчики: акселерометр, гироскоп, датчик расстояния. Анализ получаемых с них данных может найти много интересных применений. Но что происходит, когда датчики выходят из строя? Их данные становятся некорректными и создают выбросы.

Но причина аномалий может быть и в источнике данных — например, слишком высокая частота пульса после физических упражнений. Это важно учитывать при разработке коммерческих приложений. Мы приближаемся к четвёртой промышленной революции, в которой решающую роль играют интернет вещей (Internet of Things, IoT) и искусственный интеллект.  Где есть IoT, там есть и датчики. А точнее, широкая сеть датчиков, отслеживающая множество реальных проблем. Когда датчики срабатывают неверно, то их сигналы приводят к ложным срабатываниям систем устранения неполадок. Поэтому без обнаружения аномалий не обойтись.

Во всех областях представления об аномалиях похожи друг на друга: это данные, которые сильно отличаются от «нормальных». Для их поиска мы принимаем некоторые правила, которым подчиняются обычные экземпляры данных. Но есть и другие типы аномалий.

Аномалии бывают разные

В литературе о Data Science приводится три типа аномалий:

— точечные

— контекстуальные

— коллективные

Рассмотрим подробнее каждый из них.

1. Точечные

Наиболее распространённый тип выбросов. Если представить данные в виде точек, то такие аномалии будут сильно выбиваться из общей картины:

https://paper-attachments.dropbox.com/s_1185AEC62427E23657579AF288686866FF5B3F65A0E36E86D1A293C6B0CCF4B4_1553676588383_GUID-FABEA1ED-EE9D-4EE6-9417-5DEDCCFB5BC6-web.gif

Точечные аномалии

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

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

2. Контекстуальные аномалии

Предположим, что мы находимся в городе Калькутта в Индии, и температура воздуха сегодня составляет 32 градуса Цельсия. Нормальная ли это температура? Без дополнительной информации ответить на этот вопрос трудно: нужно знать время года, местоположение, среднесуточную температуру за последние 10 лет и т. д. Если в Калькутте сейчас лето, то такая температура будет нормой. Но если зима, то нужно исследовать ситуацию глубже.

Возьмём другой пример: мы все знаем о масштабных изменениях в климате, вызывающих глобальное потепление. Можно обратиться к последним новостям: «Март на Аляске в этом году был необычно тёплым, чего не наблюдалось за всю историю». 

Обратите внимание на фразу «необычно тёплый». В случае с Аляской имеется в виду 15 градусов Цельсия, но для других стран такая температура не будет аномальной.

Подобные случаи называются контекстуальными аномалиями, когда отклонение зависит от контекстной информации, регулирующейся контекстными и поведенческими атрибутами. В этом примере контекстный атрибут — местоположение, а поведенческий — температура.

https://paper-attachments.dropbox.com/s_1185AEC62427E23657579AF288686866FF5B3F65A0E36E86D1A293C6B0CCF4B4_1554118214508_outliers4-2.png

Контекстуальные аномалии

На рисунке выше показан временной ряд данных за определённый период. График был дополнительно сглажен ядром оценки плотности, чтобы показать границу тренда. Значения не выходят за пределы нормальных, но в них всё равно присутствуют аномальные точки (выделены оранжевым), зависящие от времени.

В разных контекстах обнаружение аномалий зависит от специфики данных. Поэтому в большинстве случаев для формализации этих контекстов следует консультироваться со специалистами в конкретной предметной области.

3. Коллективные аномалии

На рисунке ниже обведённые пунктиром точки образуют область, которая существенно отличается от остальных точек. 

https://paper-attachments.dropbox.com/s_1185AEC62427E23657579AF288686866FF5B3F65A0E36E86D1A293C6B0CCF4B4_1553680157064_image.png

Коллективные аномалии

Это — пример коллективных аномалий. Их основная идея заключается в том, что такие сгруппированные точки не могут быть аномалиями по отдельности.  Для примера возьмём ежедневные поставки текстильной фабрики. В подобных отраслях часто случаются задержки заказов. Но если в какой-то из дней происходит слишком много задержек, может потребоваться дополнительное расследование. Одна отложенная поставка не сыграет роли, но при анализе подобной ситуации должна учитываться общая картина.

Коллективные аномалии интересны тем, что вы смотрите не на отдельные точки, а анализируете их поведение в целом.

Теперь, когда мы познакомились с основами аномалий, попробуем соотнести их с контекстом машинного обучения. Давайте выясним, почему они важны и когда на них следует обращать внимание.

Аномалии в машинном обучении

Основа любой модели машинного обучения — данные, которые ей передаются. Они могут быть структурированные, полуструктурированные и неструктурированные. Рассмотрим эти категории подробнее. Модель всегда пытается найти базовые шаблоны данных, которые лучше всего отражают их свойства.  Эти шаблоны обычно представляются в виде математических функций и используются для прогнозирования и выводов. Вот пример датасета:

https://blog.floydhub.com/content/images/2019/04/image.png

Фиктивный набор данных

У набора данных два признака, x1 и x2, одна целевая переменная (метка) y и 6 наблюдений. При внимательном рассмотрении мы заметим, что пятое наблюдение выглядит странно, не правда ли? Но это зависит от нескольких вещей:

— Мы должны учитывать область исследования, из которой взяты данные. Иначе нельзя сказать, является ли пятое наблюдение аномалией. Может случиться так, что такое значение будет вполне нормальным.

— Был ли в порядке источник данных в процессе их получения? Всё ли функционировало так, как должно? Мы не всегда знаем ответы на подобные вопросы, но должны их учитывать, поскольку они могут изменить критерии поиска аномалий.

Теперь, перейдя к модели машинного обучения, сформулируем постановку задачи:

Для заданного набора входных векторов x1 и x2 необходимо спрогнозировать метку y.

Прогнозирование метки — это задача классификации. Предположим, вы обучили модель М на этих данных и получили точность классификации 96%. Неплохое начало! Возможно, вы даже придумаете лучшее решение для этого датасета. Но достаточно ли этой оценки? К сожалению, ответ — нет. Давайте выясним, почему.

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

Иллюзия «правильности» модели, которую даёт нам описанная выше точность, называется «классификационный парадокс». Самый простой и наивный способ решения этой проблемы — удаление выбросов перед отправкой данных. Но что, если в исследуемой нами области обнаружение аномалий чрезвычайно важно? Разве нельзя их как-то обрабатывать? Узнаем об этом в следующем разделе.

Получаем пользу от аномалий

Когда нам важно, чтобы модель могла правильно находить и оценивать выбросы, мы можем просто обучить её на наборе данных с аномалиями. Хорошо известный метод — обучение с учётом издержек классификации (Cost-Sensitive Learning). Идея в том, чтобы ввести штраф за каждую обнаруженную аномалию (обычные модели никак не наказывают и не поощряют свои прогнозы). Рассмотрим пример с мошенническими транзакциями. По сути, это задача бинарной классификации. Что же происходит, когда модель делает неправильный прогноз? Тут возможны два варианта:

— Классификация обычной операции как мошеннической

Ошибочная классификация незаконной операции как обычной


Настоящая законная транзакция

Настоящая мошенническая транзакция

Спрогнозированная законная транзакция

Нет проблем!

Большая проблема! Банк может покрыть дополнительные расходы

Спрогнозированная мошенническая транзакция

Некоторые проблемы.Банк может не покрыть расходы

Победа!

Чтобы оценить масштаб, мы должны принять во внимание расходы за ошибочную классификацию, которые понесёт на себе банк. Если законная транзакция классифицируется как мошенническая, пользователь обычно звонит в службу поддержки и объясняет ситуацию. В этом случае затраты на решение вопроса, скорее всего, будут незначительными. Но во втором случае могут возникнуть серьёзные проблемы. Если вашу кредитную карту украли и потратили нетипично большую сумму, не вызвавшую у банка подозрений, то деньги могут быть возвращены. 

В традиционных моделях машинного обучения процесс оптимизации обычно заключается в уменьшении стоимости неправильных прогнозов. Для предотвращения описанной выше проблемы мы связываем эту гипотетическую стоимость с правильно обнаруженной аномалией. Затем модель пытается уменьшить чистые затраты (как в случае с банком) вместо штрафа за неправильную классификацию.

Заметьте, что все модели машинного обучения пытаются оптимизировать функцию затрат в целях повышения эффективности. Это важный процесс, поскольку мы должны убедиться, что классификация работает правильно.

В следующей части мы попробуем применить наши знания об аномалиях на практике и рассмотрим несколько примеров на Python. Поэтому если у вас возникли какие-либо вопросы — самое время задать их. 

Ссылка на следующую часть.

С оригинальной статьёй можно ознакомиться в блоге floydhub.com.

Стэнфордский курс: лекция 4. Введение в нейронные сети

Стэнфордский курс: лекция 4. Введение в нейронные сети

В прошлый раз мы выяснили, как работает функция потерь и оптимизация, а также рассказали о пользе градиента и градиентного спуска....
Read More
Данные на замке: как двухфакторная аутентификация поможет обезопасить сайт

Данные на замке: как двухфакторная аутентификация поможет обезопасить сайт

Пароли, даже самые сложные, уже давно не препятствие для злоумышленников. В ответ на это владельцы сайтов всё чаще вводят второй...
Read More
Улучшаем графику в старых играх и видео с помощью нейросетей

Улучшаем графику в старых играх и видео с помощью нейросетей

Бывало ли с вами такое: вы решили скачать любимую компьютерную игру детства и ненадолго погрузиться в счастливые воспоминания. Установили её,...
Read More
Как создать сайт-портфолио для творческого проекта

Как создать сайт-портфолио для творческого проекта

Резьба по книгам, money art, тканевые скульптуры — искусство может принимать самые разные формы. А благодаря Интернету современные художники могут...
Read More
Нейросеть описывает мир незрячим людям

Нейросеть описывает мир незрячим людям

Голосовые ассистенты могут не только играть в «города» и рассказывать о погоде — они способны на гораздо большее! Например, помогать...
Read More
Экскурсии в дата-центр: как мы провели 300 человек на закрытый объект и почему нас уже не остановить

Экскурсии в дата-центр: как мы провели 300 человек на закрытый объект и почему нас уже не остановить

Отвлекитесь немного от экрана и посмотрите на вещи, которые вас окружают. Стол, кружка, лампа, смартфон, клавиатура — всё это материальные...
Read More
Стэнфордский курс: лекция 3. Функция потерь и оптимизация

Стэнфордский курс: лекция 3. Функция потерь и оптимизация

На прошлой лекции мы разобрались, как работает классификация изображений. Что же может «потеряться» в процессе и можно ли этого избежать?...
Read More
Как ИИ отслеживает небезопасное поведение водителей

Как ИИ отслеживает небезопасное поведение водителей

Искусственный интеллект может помочь каршеринговым сервисам и таксопаркам сделать поведение водителей на дороге безопаснее. Например, предупреждать их, если они отвлеклись...
Read More
Многозначная классификация с помощью Keras

Многозначная классификация с помощью Keras

Можно ли обучить нейросеть делать не один, а сразу несколько прогнозов? Этот вопрос возникает, когда нам необходимо классифицировать изображения по...
Read More
Большая игра, или Загадочная история домена SEX.COM

Большая игра, или Загадочная история домена SEX.COM

“The Internet is for porn” — так пелось в бродвейском мюзикле Avenue Q (пародия на «Улицу Сезам»). И, несмотря на то,...
Read More