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

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

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

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

Нейронный машинный перевод (НМП) позволяет преодолеть многие недостатки традиционных систем перевода по фразам. Но в то же время нейронные модели...
Read More
6 трендовых доменов, которые можно зарегистрировать прямо сейчас

6 трендовых доменов, которые можно зарегистрировать прямо сейчас

Мы врываемся в этот прохладный июль с горячей подборкой актуальных и свободных доменов. Изучайте и регистрируйте понравившиеся! (далее…)
Read More
Свёртка в Deep Learning простыми словами

Свёртка в Deep Learning простыми словами

У многих слово «свёртка» ассоциируется со сложными и непонятными формулами. А ведь это одно из самых важных понятий в Deep...
Read More
Стэнфордский курс: лекция 1. Введение

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

Представляем курс «Свёрточные нейронные сети для визуального распознавания» (Convolutional Neural Networks for Visual Recognition) от инженерной школы Стэнфордского университета (Stanford...
Read More
ИИ скажет, что люди подумают о ваших фото

ИИ скажет, что люди подумают о ваших фото

Новый искусственный интеллект Photofeeler-D3 предсказывает первые впечатления людей от фото или видео. Теперь не придётся долго мучиться с выбором самой...
Read More
Да, это жёстко: история и перспективы HDD

Да, это жёстко: история и перспективы HDD

В этом материале вы узнаете краткую историю жёстких дисков, их устройство, преимущества и недостатки, а также ближайшие перспективы развития подобных...
Read More
Истина где-то рядом — ищем аномалии с Python. Часть 1: теория

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

Все мы время от времени наблюдаем аномалии в реальном мире. Это и необычная жара, и животные-альбиносы, и гетерохромия. Аномальные отклонения...
Read More
Хостинг для лендинга: как заставить сайт летать?

Хостинг для лендинга: как заставить сайт летать?

Классная посадочная страница должна приковывать взгляд и быть такой же эффектной, как синхронное приземление ступеней Falcon 9. Но даже самому...
Read More
Разработка новых полупроводников с помощью нейросетей

Разработка новых полупроводников с помощью нейросетей

Поиск и исследование новых химических соединений с большим числом неизвестных свойств во многом опирается на вычислительные методы. Применение подобных открытий...
Read More
На что способны антивирусы для сайтов

На что способны антивирусы для сайтов

Да-да. Вирусы — проблема не только пользователей персональных компьютеров и смартфонов, но и владельцев сайтов. Через заражённый ресурс злоумышленник может рассылать...
Read More