ДЕТЕКТИРОВАНИЕ АНОМАЛИЙ С ПОМОЩЬЮ МЕТОДА МАШИННОГО ОБУЧЕНИЯ НА ОСНОВЕ РАСПРЕДЕЛЕНИЯ ГАУССА - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ДЕТЕКТИРОВАНИЕ АНОМАЛИЙ С ПОМОЩЬЮ МЕТОДА МАШИННОГО ОБУЧЕНИЯ НА ОСНОВЕ РАСПРЕДЕЛЕНИЯ ГАУССА

Гусев А.С. 1, Репинский В.Н. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье рассмотрена проблема применения машинного обучения при детектировании аномалий, описан метод обучения на основе распределения Гаусса, составлена программа, позволяющая находит аномалии в наборе данных.

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

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

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

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

Таблица 1 - пример входных данных

Температура,

13

12

15

18

16

27

17

...

15

Время, мин.

1

2

3

4

5

6

7

...

300

Среднее значение этих данных, для данного примера, равняется ~ 15. Необходимо найти отклонения в наборе, являющиеся индикаторами неправильной работы системы, что, в свою очередь, может означать наличие неисправностей, неправильной работы персонала, поломок и т.д.

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

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

(2.1)

(2.2)

Затем определяются значения плотности вероятности Гауссовского распределения для всего набора.

(2.3)

Показания, имеющие меньшую плотность вероятности, скорее являются аномалией. На основании полученного массива, вычисляется оптимальное значение порога Ɛ, а затем для каждого значения из входного набора проверяется условие, если < Ɛ - идентифицировать отклонение. Таким образом, мы получаем программу, обучающуюся самостоятельному определению оптимального условия аномальности.

Для реализации этого алгоритма воспользуемся средой Matlab.

Загружаем данные показаний датчиков:

Загружаем данные показаний датчиков:

load('data.mat');,где data - случайно составленный набор данных в определённом диапазоне, с примерами аномально больших и малых значений.

Используя распределение Гаусса, находим оптимальное значение порога Ɛ. Для этого применяются функции estimateGaussian( ),multivariateGaussian( ) и selectThreshold( ).

Функция estimateGaussian( ), возвращает значения µ - мат. ожидания и σ2 - дисперсии, необходимые для дальнейших вычислений:

[mu sigma2] = estimateGaussian(X);

Где mu- математическое ожидание, sigma2 - дисперсия

Функция multivariateGaussian( ), возвращает значения плотности Гауссовского распределения:

p = multivariateGaussian(X, mu, sigma2);

pval = multivariateGaussian(Xval, mu, sigma2);

Функция selectThreshold( ), находит оптимальный порог Ɛ используя множество перекрестной проверки, учитывая найденные значения плотности распределения Гаусса.

[epsilon F1] = selectThreshold(yval1, pval);

Находим отклонения в наборе данных, используя встроенную функцию Matlab - find. Отклонением считается любое значение, плотность вероятности которого меньше необходимого порога Ɛ:

outliers = find(p < epsilon);

Результаты работы программы:

После всех необходимых вычислений, программа выводит на экран:

Исходный набор данных в виде графиков

Visualizing example dataset for outlier detection.

Program paused. Press enter to continue.

Найденное значение порога Ɛ

Best epsilon found using cross-validation: 6.595492e-05

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

С полным кодом программы можно ознакомиться в приложении 1.

Выводы

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

Используемая литература и источники
  1. Stanford University Machine Learning - https://www.coursera.org/learn/machine-learning

  2. Л.И. Воронова, В.И. Воронов. MachineLearning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2017 – 81 с.

  3. А. В. Беляев, С. А. Петренко. Обнаружение аномалий в ERP системах - 11 с.

Просмотров работы: 255