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

Истина где-то рядом — ищем аномалии с 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.

Domains weekly: повышение цен на .ORG, кража $1 млн с поддельным доменом и крупнейшие сделки недели

Domains weekly: повышение цен на .ORG, кража $1 млн с поддельным доменом и крупнейшие сделки недели

Привет! На связи редакция блога. Вы наверняка знаете, что все начинания часто откладываются на «после Нового года», «со следующего месяца»,...
Read More
Отличается умом и сообразительностью: неожиданные применения нейросетей

Отличается умом и сообразительностью: неожиданные применения нейросетей

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

Какой хостинг выбрать для чат-бота?

Чат-боты — это не всегда такие же сложные и продвинутые программы, как, например, голосовые помощники на основе нейросетей. Тем не...
Read More
Какие проблемы решил новый Личный кабинет REG.RU

Какие проблемы решил новый Личный кабинет REG.RU

Около года назад мы запустили новый Личный кабинет REG.RU. Без преувеличения наши коллеги проделали огромную работу. Этим текстом мы бы...
Read More
Как зарегистрировать домен и не попасть под суд

Как зарегистрировать домен и не попасть под суд

Итак, вы хотите стать владельцем доменного имени. Скорее всего, на этом этапе вас волнуют вопросы, где и как его регистрировать...
Read More
Что такое ЭДО и почему вам нужно подключить его прямо сейчас  

Что такое ЭДО и почему вам нужно подключить его прямо сейчас 

Ещё каких-то 15 лет назад принтеры, факсы и подобное оборудование были неотъемлемой частью любого крупного или небольшого офиса, но постепенно...
Read More
6 трендовых доменных зон для онлайн-бизнеса

6 трендовых доменных зон для онлайн-бизнеса

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

Обучаем виртуального дракона фигурам высшего пилотажа

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка...
Read More
Стэнфордский курс: лекция 9. Архитектуры CNN

Стэнфордский курс: лекция 9. Архитектуры CNN

На прошлом уроке мы узнали о наиболее популярных библиотеках и фреймворках для глубокого обучения, рассмотрели их особенности и области применения....
Read More
GPT-2: нейросеть, которая закончит за вас предложение

GPT-2: нейросеть, которая закончит за вас предложение

Встречали ли вы когда-нибудь собеседника, который после нескольких сказанных вами слов заканчивал за вас предложение? GPT-2 умеет и не такое:...
Read More