<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Выявление аномалий в работе механизмов методами машинного обучения</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>© A.G. D'yakonov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bauman Moscow State Technical University</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Lomonosov Moscow State University</institution>
        </aff>
      </contrib-group>
      <fpage>389</fpage>
      <lpage>396</lpage>
      <abstract>
        <p>The research on breakdown detection in mechanisms using machine learning methods is described. The problem is reduced to anomaly detection. The review of modern approaches to anomaly detection is made, all of them have been approved on real data. Аs a result, the algorithm for online breakdown detection in complicated mechanisms is constructed. By its nature the algorithm also detects any abnormal behavior: emergency start, work in the dangerous mode, incorrect operation, etc.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Труды XIX Международной конференции
«Аналитика и управление данными в областях с
интенсивным использованием данных»
(DAMDID/ RCDL’2017), Москва, Россия, 10–13
октября 2017 года
обработки формат). Такая тенденция привела к
появлению специального термина – «Большие
данные» (Big Data), как технологии оперирования с
современными огромными массивами информации
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Если в интернет-компаниях и банках подобные
процессы начались раньше (в силу специфики их
деятельности, наличия логов, транзакций и т. п.), то в
производстве и тяжелой промышленности
применение Big Data только начинается.</p>
      <p>Прежде всего, здесь возникают следующие
группы задач:
• прогноз потребления энергоресурсов и
материалов, необходимых для производства,
оптимизация закупки и доставки материалов;
• оптимизация процесса производства (построение
моделей: как используемые материалы влияют на
качество производимого продукта);
• прогнозирование цен на продукцию,
прогнозирование спроса, планирование
сортамента и оптимизация доставки продукции
клиентам;
• диагностика оборудования, обнаружение и
прогнозирование неисправностей.</p>
      <p>Ниже рассказано о построении алгоритма
обнаружения поломок и определения их типа. По
договорённости с заказчиком не конкретизируется
тип оборудования, на котором проводилась
апробация алгоритма, но описана математическая
составляющая использованных подходов. Также
сделан обзор современных методов обнаружения
аномалий (anomaly detection) и результаты их
тестирования на данных реальной задачи.
1 Прикладная задача</p>
      <p>Массив исследуемых данных состоит из
показаний датчиков, установленных на
оборудовании. На каждой установке – около 50
датчиков, замеры производятся каждую секунду
(такая частота избыточна, поэтому показания были
агрегированы до минутных), данные предоставлены
за последние 3 года (т. е. около 5109 показаний для
одной установки).</p>
      <p>Пример показаний датчиков:
• температура (°C);
• давление (кгс/м2);
• уровень шума (дБ);
• скорость вращения (об/мин);
• уровень вибрации (Гц).
На Рис. 1 и 2 показаны примеры сигналов.</p>
      <p>Кроме того, есть текстовые логи, в которых
описаны, какие работы проводились с
оборудованием, а также факты возникновения
внештатных ситуаций. Логи вносятся в систему
логирования специалистами, поэтому являются
текстами с использованием специальных терминов и
сокращений. Даты и время внесения в систему
добавляются автоматически.
Пример текстового лога</p>
      <p>10.07.2016 10:03 Нач. бурение 200м 2к
скважина станд. р38
10.07.2016 10:48 Кон. бурения Разрыв т15
Из логов, в частности, извлекается информация
об обнаружении поломок:
• тип поломки;
• где обнаружена (id прибора и секция);
• когда обнаружена;
• когда начались ремонтные работы;
• когда закончены ремонтные работы.
Рисунок 1 Пример сигнала датчика (температура)
За 3 года происходило в среднем 10 поломок на
Рисунок 2 Пример сигнала датчика (давление)
2 Обработка текстовых логов</p>
      <p>Задача обработки текстовой информации не
является центральной при решении описанной выше
проблемы детектирования поломок, тем не менее, с
помощью обработки получены дополнительные
признаки, поэтому опишем её решение.</p>
      <p>Для анализа текстовой информации сначала был
реализован классификатор текстов, который для
каждого лога указывал тип действия, которое ему
соответствует: запуск оборудование, выключение,
начало ремонтных действий и т. п. Общая схема
работы с текстами в рамках данной задачи
следующая:
• удаление некоторых спецсимволов;
• переход к буквенным n-граммам;
• модель «мешок слов» (bag of words);
• tf-idf-нормировка;
• решение задач классификации;
• выделение числовых признаков из текстов;
Ниже подробно описаны все этапы.
2.1 Предварительная обработка текстов</p>
      <p>Учитывая, что в тексте могут быть сокращения и
ошибки (опечатки), изначально текст приводился в
один регистр и преобразовывался в буквенные
nграммы (большинство спецсимволов удалялось).
Лемматизация (приведение к нормальной словарной
форме) и удаление стоп-слов не выполнялись [23].
Пример преобразования в 3-граммы</p>
      <p>Нач. бурение  «НАЧ», «АЧ.», «Ч.Б», «.БУ»,
«БУР», «УРЕ», «РЕН», «ЕНИ», «НИЕ»</p>
      <p>Также не были использованы различные методы
исправления опечаток. Как показали эксперименты,
эту проблему позволяет решить переход к
nграммам, поскольку, например, слова «бурение»,
«буриние» и сокращение «бур.» совпадают по первой
триграмме «бур». Кроме того, какие-то отдельные
опечатки и сокращения могут соответствовать
конкретному человеку, заполнявшему журнал (что
позволяет его идентифицировать).
2.2 Перевод текстов в векторную форму
Для перевода текстов в векторную форму
использовался стандартный подход: мешок слов (bag
of words, [23]), т. е. была составлена разреженная
матрица размера m×n, где m – число текстов, n –
число слов во всех текстах, ij-й элемент равен числу,
выражающему, сколько раз в i-м тексте встретилось
j-е слово. Таким образом, порядок слов в документе
не
учитывался, а
фиксировались
лишь
числа
вхождений слов. Как показали эксперименты, учёт
порядка слов переходом к словарным n-граммам не
улучшал качество решаемой задачи.</p>
      <p>Над построенной матрицей было произведено
tfidf-преобразование
преобразование
вычислении величин
[23].</p>
      <p>Напомним,
что
tf(term</p>
      <p>frequency) заключается в
tf(ℎ )=</p>
      <p>ℎ
∑=1 ℎ
(отношение числа вхождений определённого слова в
предложение к числу слов в данном предложении).
Смысл
подобного
преобразования
–
в
инвариантности к повторам текста (скажем, дважды
повторенное предложение имеет тот же смысл, что и
однократно повторенное).</p>
      <p>Idf-преобразование (inverse document frequency)
учитывает, что чем чаще встречается слово, тем
меньший смысл оно несёт:
idf(ℎ )=</p>
      <p>log|{ ⁡|⁡ℎ &gt; 0}|
.</p>
      <p>Tf-idf-преобразование
заключается в замене
каждого элемента матрицы на
tf(ℎ )∙ idf(ℎ ) .</p>
      <p>Обычно используется значение степени d=1, но в
рассматриваемой задаче почти все слова являются
профессиональными
терминами,
и
их
частое
вхождение не всегда означает бесполезность для
решения задачи классификации текста, а степень d
как раз контролирует «учёт популярности слов».
Было установлено, что оптимальное значение d=0.35.
2.3 Задача классификации текстов
Для «сырых» (необработанных) логов
была
сделана экспертная разметка: для каждой записи
указан тип действия, о котором идёт речь в данной
записи. Для разметки использованы логи из первого
года, за который есть статистика. Были взяты 1000
случайных записей за год, эксперты выделили 15
классов действий.</p>
      <p>Далее был построен классификатор на 15 классов,
работа которого в дальнейшем также была оценена
экспертами.
использовались
В
качестве</p>
      <p>тестовой
записи
2 и 3
года.</p>
      <p>выборки
Точность
определения класса действия – 97% – была признана
достаточной.</p>
      <p>К сожалению, в этой задаче достаточно трудно
сделать
экспертную
разметку.</p>
      <p>В
отличие
от
асессорской разметки при поиске, которую может
производить практически любой человек, поскольку
поисковая
выдача
как
раз
и
должна
быть
оптимизирована под нужды среднестатистического
пользователя, разметка логов оборудования понятна
только</p>
      <p>людям,
терминологией.</p>
      <p>знакомым
со
специальной
2.4 Выделение числовых признаков из текстов
Как было показано в примере лога (см. выше),
кроме описания действий в нём может содержаться
какая-то числовая информация, например, «бурение
на глубину 200 метров». Ясно, что число 200 здесь
надо уметь вычленять, чтобы потом сравнивать с
аналогичными числами в других записях. В задаче
классификации
числа не
учитывались, все
они
заменялись на специальное слово «number», которое
указывало просто наличие какого-то числа в тексте.
Для
решения
описанной
задачи
использован
следующий подход. Были отобраны типы действий,
которые могут содержать числовую информацию.
Для каждой числовой информации сформированы
правила: где она может встречаться в записи, что ей
предшествует и/или что следует после неё. На основе
этих правил производился поиск соответствующих
чисел.</p>
      <p>По
экспертной
оценке точность такого
подхода составила 95%.
3 Математическая постановка задачи
После обработки логов изначально заданные
многомерные временные ряды показаний датчиков
были дополнены категориальными рядами действий,
совершаемых с оборудованием (категориальными,
поскольку значения ряда в каждый момент времени
– тип действия, т. е. категориальная переменная), а
также рядами значений признаков, выделенных из
текстов (принимают ненулевые значения, только
когда совершается соответствующее действие и в
логах
есть
указанное
числовое
значение,
соответствующее этому действию).</p>
      <p>Каждый
механизм
был
описан
64-мерным
временным рядом. Как отмечено выше, известна
информация
устранении
об
обнаружении
поломок
и
их
(моменты
времени).</p>
      <p>Необходимо
разработать алгоритм автоматического обнаружения
поломок: обучить его на статистике первых двух лет
и проверить на третьем годе.</p>
      <p>Специфика задачи состоит в том, что момент
обнаружения поломки не всегда соответствует её
возникновению,
т. е.</p>
      <p>поломка
может
быть
обнаружена
не
вовремя.</p>
      <p>
        По
оценке
экспертов,
разность между этими временами может достигать
нескольких недель. Кроме того, некоторые поломки
могут не оказывать влияния на показания приборов,
например, небольшая течь из какого-нибудь шланга
(не так сильно изменяются давление и температура,
кроме того, изменения происходят плавно).
Описанная
задача
решалась
как
задача
машинного обучения без учителя – детектирования
аномалий (anomaly detection, [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). Далее представлен
обзор
современного
состояния
в
области
обнаружения аномалий. Главная причина сведения
рассматриваемой проблемы именно к этой задаче:
основную часть времени оборудование работает в
штатном режиме. Поломки выводят оборудование из
этого режима: повышается температура отдельных
узлов,
понижается
давление
и
т. п.
      </p>
      <p>Вероятно,
статистики достаточно мало, чтобы в значительной
степени покрыть все виды поломок, но достаточно,
детектирование
аномальной
работу.
работы
Если
будет
соответствовать поломкам, то можно использовать
такой детектор с требуемой целью.
4 Методы обнаружения аномалий (обзор)
Строго
говоря,
есть две
похожие
задачи
обнаружения
детектирование
аномалий
выбросов
(Anomaly
(Outlier</p>
      <p>Detection):
Detection)
и
«новизны» (Novelty Detection). Как и выброс, «новый
объект» – это объект, который отличается по своим
свойствам от объектов (обучающей) выборки, но, в
отличие от выброса, его в самой выборке пока нет (он
появится через некоторое время, задача как раз и
заключается в том, чтобы
обнаружить его
при
появлении). Объясним это на примере решаемой
задачи. Если</p>
      <p>по статистике показаний датчиков
ищутся
сильно
моменты
отличались
времени, когда эти
от
показаний
в
показания
остальные
моменты, то это обнаружение выбросов. Если же
статистика используется как пример нормальных
показаний, и каждое новое показание проверяется на
нормальность
(похожесть
на
старые),
то
это
обнаружение новизны.</p>
      <p>Задачи обнаружения аномалий возникают при
решении большого числа прикладных проблем, вот
далеко не полный их перечень:
•
•
•
•
•
•
медицинская
Diagnosis);
сейсмология.
обнаружение</p>
      <p>подозрительных банковских
операций (Credit-card Fraud);
обнаружение вторжений (Intrusion Detection);
обнаружение</p>
      <p>нестандартных игроков на
бирже (инсайдеров);
обнаружение неполадок в механизмах по
показаниям датчиков;
диагностика
(Medical
Далее опишем современные методы обнаружения
аномалий.
4.1 Статистические тесты</p>
      <p>Как правило, их применяют для отдельных
признаков и отлавливают экстремальные значения
(Extreme-Value</p>
      <p>
        Analysis). Для этого используют,
например, Z-value [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]:
или Kurtosis [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]:
  =   −
      </p>
      <p>1</p>
      <p>
        ∑=1  4.
значений.
выборке
Многие методы визуализации, например, ящик с
усами (box plot, [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]), имеют встроенные средства
для детектирования и показа таких экстремальных
Важно понимать, что экстремальное значение и
аномалия – разные понятия. Например, в небольшой
[1, 39, 2, 1, 101, 2, 1, 100, 1, 3, 101, 1,
значение 39 можно считать аномалией, хотя оно не
является максимальным или минимальным. Также
стоит отметить, что аномалия характеризуется, как
правило, не только экстремальными значениями
отдельных признаков, см. Рис. 3.
4.2 Модельные тесты
      </p>
      <p>Идея очень простая: строим модель, которая
описывает
данные;
точки,
которые
сильно
отклоняются от модели (на которых модель сильно
ошибается), и есть аномалии, см. Рис. 4. При выборе
модели можно учесть природу задачи, функционал
качества и т. п.</p>
      <p>
        Например,
в
исследуемой
задаче
можно
прогнозировать
значения
временных
рядов
с
помощью LSTM-нейронной сети [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Если реальные
значения сильно отличаются от предсказываемых, то
это
свидетельствует об аномальном
поведении.
Такой подход хорошо показал себя на недавнем
хакатоне
распознаванию
процессах завода [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        лаборатории
Касперского
[
        <xref ref-type="bibr" rid="ref23">24</xref>
        ]
по
аномалий
в
технологических
Рисунок 3 Пример выбросов в задаче с двумя
признаками
Рисунок 4 Пример применения модельного подхода
Как правило, в задачах обнаружения поломок
исходная информация представлена в виде сигналов.
Поэтому используется аппарат обработки цифровых
сигналов, по крайней мере, на первом этапе решения
задачи (для
уменьшения
размерности
и чистки
данных). Например, при анализе вибраций [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
используют дискретное преобразование Фурье
(DFT), вейвлеты [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], спектрограммы. В задачах без
известной разметки поломок применяют скрытые
марковские модели (HMM), а также их различные
обобщения [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Основная проблема таких алгоритмов
– большие временные затраты. Многие подходы
практически бесполезны при работе с большими
данными из-за использования трудоёмких методов
оптимизации: EM-алгоритма [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], MCMC (Markov
Chain Monte Carlo) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] и т. д.
4.3. Итерационные методы
      </p>
      <p>Можно последовательно удалять группы «особо
подозрительных объектов». Например, в n-мерном
признаковом пространстве можно удалять выпуклую
оболочку точек-объектов, считая её представителей
выбросами, см. Рис. 5. Как правило, методы этой
группы достаточно трудоёмки.
Рисунок 5 Выпуклая оболочка множества точек
4.4. Метрические методы</p>
      <p>
        Это одни из самых популярных методов (судя по
числу публикаций, [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]), в них постулируется
существование некоторой метрики в пространстве
объектов, которая и помогает найти аномалии.
Интуитивно понятно, что у выброса мало соседей, а
у типичной точки много. Поэтому хорошей мерой
аномальности может служить, например,
«расстояние до k-го соседа» [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Здесь используются
специфические метрики, например, расстояние
Махаланобиса.
4.5. Методы подмены задачи
      </p>
      <p>В этих методах задача обнаружения аномалии
заменяется другой задачей, для которой есть удобные
и быстрые методы решения. Например, можно
сделать кластеризацию, тогда маленькие кластеры,
скорее всего, состоят из аномалий, см. Рис. 6.</p>
      <p>В исследуемой задаче есть разметка: известны
времена обнаружения неисправностей, поэтому
описания работы оборудования в эти моменты
можно считать классом 1 (размеченные аномалии), а
описания работы оборудования после ремонтов и
плановых проверок – классом 0 (нормальная работа).
Таким образом, решение задачи сводится к решению
задачи классификации (classification).
Рисунок 6 Пример конфигурации точек с малым
кластером
4.6. Методы машинного обучения</p>
      <p>
        Задачу обнаружения аномалий рассматривают
также как отдельную задачу обучения без учителя
(unsupervised learning). Такой метод решения может
быть отнесён к модельному подходу 4.2, но в этот
подраздел вынесены самые популярные алгоритмы
(есть реализации в библиотеке scikit-learn языка
Python [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]):
• метод опорных векторов для одного класса
(OneClassSVM, [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]);
• изолирующий лес (IsolationForest, [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]);
• эллипсоидальная аппроксимация
(EllipticEnvelope, [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]).
      </p>
      <p>
        Первый метод – это обычный метод опорных
векторов (SVM, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]), который отделяет выборку от
начала координат. Изолирующий лес (Isolation
Forest) – это одна из вариаций идеи случайного леса
(Random Forest, [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]):
• лес состоит из деревьев;
• каждое дерево строится до исчерпания
выборки;
• для построения ветвления в дереве
выбираются случайный признак и случайное
расщепление,
• для каждого объекта мера его нормальности –
среднее арифметическое глубин листьев, в
которые он попал (изолировался, см. Рис. 7).
данных
Рисунок 7 Вычисление оценки аномальности в
изолирующем лесе
Логика алгоритма простая: при описанном
«случайном» способе построения деревьев выбросы
будут попадать в листья на ранних этапах (на
небольшой глубине дерева), т. е. выбросы проще
«изолировать» (напомним, что дерево строится до
тех пор, пока каждый объект не окажется в
отдельном листе).
      </p>
      <p>В эллипсоидальной аппроксимации данных, как
следует из названия, облако точек моделируется как
внутренность эллипсоида. Метод хорошо работает
только на одномодальных данных, а особенно
хорошо – на нормально распределённых. Степень
новизны здесь фактически определяется по
расстоянию Махалонобиса.
Рисунок 8 Оценка аномальности, полученная с
помощью изолирующего леса библиотеки
scikitlearn (чем светлее фон, тем аномальнее)
4.7 Ансамбли алгоритмов</p>
      <p>Как и во многих других областях машинного
обучения, при поиске аномалий часто используют
несколько алгоритмов, как правило, разной природы.
Каждый из них даёт оценку аномальности, и эти
оценки потом «усредняют». Не всегда используют
обычное среднее арифметическое, например, иногда
хорошее качество показывает максимум (если
какойто алгоритм уверен в аномальности объекта, то,
скорее всего, так оно и есть).</p>
      <p>
        Поскольку ключевым моментом в реальных
задачах обнаружения аномалий является выбор
признаков, которые характеризуют те или иные
отклонения от нормы, алгоритмы из ансамбля строят,
пытаясь угадать хорошие пространства. Здесь
популярны:
• Feature Bagging – для каждого алгоритма
берут случайное признаковое
подпространство [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ];
•
      </p>
      <p>
        Rotated Bagging – в выбранном случайном
признаковом подпространстве совершают
случайный поворот [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
5 Исследование методов обнаружения
аномалий на реальных данных
      </p>
      <p>Опишем результаты применения различных
методов обнаружения аномалий для решения
реальной прикладной задачи детектирования
поломок. Каждый объект – признаковое описание
оборудования в рассматриваемый момент времени. В
качестве признаков использовались 64 исходных
значения (показания датчиков, а также информация
из текстовых логов). Кроме того, были построены
признаки, описывающие поведение в прошлом (1
минуту назад, 5 минут, 1 час, 1 сутки назад), и
разности между текущими показаниями и
показаниями в прошлом. Для некоторых подходов
(например, модельного) построения признакового
пространства не требуется.</p>
      <p>Методы тестировались на последнем году, за
который есть статистика. В таблицах указана
полнота (какой процент поломок найден) и точность
(сколько из детектируемых аномалий действительно
являются поломками). Порог детектирования (если
оценка анормальности выше него, то алгоритм
сигнализирует поломку) подбирался так, чтобы
среднее число детектирований совпадало с
ожидаемым числом поломок. В таблицах подходы
пронумерованы согласно обзору раздела 4.</p>
      <p>В целом результаты, представленные в табл. 1,
можно считать неудовлетворительными, поскольку
заказчик рассчитывал на точность 90% при такой же
полноте, но при анализе ошибок были выявлены
следующие особенности предложенного подхода. В
большинстве случаев детектируется именно
аномальное поведение в работе оборудования, т. е.
отличающееся от штатного. Поэтому большинство
сигналов об анормальности относилось к
• поломкам оборудования;</p>
      <p>эксплуатации (нарушению
неправильной
правил);
•
•
смене режимов (в том числе, включению и
выключению).</p>
      <p>В результате получился алгоритм, который
детектирует все эти ситуации, что вполне устраивало
заказчика. Если пересчитать качество в терминах
точности и полноты обнаружения перечисленных
ситуаций, то получим Табл. 2.
Таблица 1 Точность и полнота распознавания
поломок различными подходами
подход точность полнота
4.1 72% 30%
4.2 55% 80%
4.3 68% 32%
4.4 70% 52%
4.5 81% 45%
4.6 80% 80%
4.7 85% 70%
Таблица 2 Точность и полнота распознавания
аномалий различными подходами
подход точность полнота
4.1 77% 40%
4.2 80% 92%
4.3 70% 45%
4.4 78% 62%
4.5 80% 60%
4.6 97% 87%
4.7 95% 90%
Отметим, что для достижения высокого качества
достаточно использовать методы машинного
обучения, описанные в разделе 4.6. Использование
ансамблей не сильно улучшает качество, но
существенно усложняет алгоритмы. Как показано в
Табл. 3, самый лучший метод здесь – изолирующий
лес.
Таблица 3 Точность и полнота распознавания
аномалий методов машинного обучения</p>
      <p>метод
OneClassSVM
IsolationForest
EllipticEnvelope
При правильном детектировании поломки
точность определения типа поломки – 87% (для этого
решалась отдельная задача классификации), что
также оказалось приемлемо, поскольку некоторые
типы поломок сложно различать на основе показаний
датчиков, например, «низкое давление воды» и
«засор подводящих шлангов».
Таблица 4 Среднее время работы алгоритмов
разных подходов
подход
4.1
4.2
4.3
4.4
4.5
4.6
обучения
5 сек
12 мин</p>
      <p>–
9 мин
8 мин
10 мин
время
детектирования
&lt; 1сек
1 сек
9 мин
6 мин
&lt; 1 сек
&lt; 1 сек
В Табл. 4 показано среднее время работы
алгоритмов разных групп. Для большинства
алгоритмов можно выделить отдельно этап обучения
(анализ исходной информации) и детектирования
(принятие решения о поломке на основе только что
поступивших данных). Все алгоритмы были
реализованы на языке Python 3.x.
6 Благодарности</p>
      <p>Авторы выражают благодарности компании ООО
«Алгомост» за поставленную задачу и консультации
со специалистами.
7 Заключение</p>
      <p>Разработан алгоритм выявления аномалий в
работе оборудования. Кроме поломок, он
сигнализирует также о любой некорректной работе и
смене режимов работы. Качество оказалось
достаточно высоким и полностью удовлетворило
заказчика: 97% точности и 87% полноты.</p>
      <p>Дальнейшие планы по усовершенствованию
алгоритма:
• решение задачи прогнозирования поломок
(для заказчика актуально составление
расписания проверок и капитального ремонта
с учётом износа оборудования);
решение задачи размещения датчиков (от
некоторых датчиков можно отказаться, не
снижая качества детектирования поломок);
использование видеоинформации и
изображений (для некоторого оборудования
есть кадры съёмки рабочего процесса,
которые также регулярно производятся и
сохраняются);
улучшение качества определения типа
поломки (пока при решении этой задачи не
было сделано такого же масштабного
перебора различных подходов, как для
детектирования самого факта поломки).
Литература</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Aggarwal</surname>
            ,
            <given-names>C.C.: Outlier</given-names>
          </string-name>
          <string-name>
            <surname>Analysis.</surname>
          </string-name>
          Springer-Verlag, New York (
          <year>2013</year>
          ). doi:
          <volume>10</volume>
          .1007/978-1-
          <fpage>4614</fpage>
          -6396- 2
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Boser</surname>
            ,
            <given-names>B.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guyon</surname>
            ,
            <given-names>I.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vapnik</surname>
            ,
            <given-names>V.N.:</given-names>
          </string-name>
          <article-title>A Training Algorithm for Optimal Margin Classifier</article-title>
          .
          <source>Proc. of the Fifth Annual Workshop on Computational Learning Theory - COLT'92</source>
          , p.
          <volume>144</volume>
          (
          <year>1992</year>
          ). doi:
          <volume>10</volume>
          .1145/130385.130401
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Breiman</surname>
            ,
            <given-names>L.: Random</given-names>
          </string-name>
          <string-name>
            <surname>Forests</surname>
          </string-name>
          .
          <source>Machine Learning</source>
          ,
          <volume>45</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>5</fpage>
          -
          <lpage>32</lpage>
          (
          <year>2001</year>
          ). doi:
          <volume>10</volume>
          .1023/A:1010933404324
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Breunig</surname>
            ,
            <given-names>M.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kriegel</surname>
            ,
            <given-names>H.-P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ng</surname>
          </string-name>
          , R.T.,
          <string-name>
            <surname>Sander</surname>
            ,
            <given-names>J.: LOF</given-names>
          </string-name>
          :
          <article-title>Identifying Density-based Local Outliers</article-title>
          .
          <source>Proc. of the 2000 ACM SIGMOD Int. Conference on Management of Data</source>
          , pp.
          <fpage>93</fpage>
          -
          <lpage>104</lpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Chandola</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Banerjee</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Anomaly detection: A survey</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>41</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>58</lpage>
          (
          <year>2009</year>
          ). doi:
          <volume>10</volume>
          .1145/ 1541880.1541882
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Chao</surname>
            ,
            <given-names>Y.:</given-names>
          </string-name>
          <article-title>Unsupervised Machine Condition Monitoring using Segmental Hidden Markov Models</article-title>
          .
          <source>IJCAI'15 Proc. of the 24th Int Conf. on Artificial Intelligence</source>
          . AAAI Press, pp.
          <fpage>4009</fpage>
          -
          <lpage>4016</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guestrin</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>XGBoost: A Scalable Tree Boosting System</article-title>
          .
          <source>Proc. of the 22Nd ACM SIGKDD Int. Conf. on Knowledge Discovery and Data Mining</source>
          , San Francisco, CA, USA (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Dempster</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laird</surname>
            ,
            <given-names>N.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rubin</surname>
            ,
            <given-names>D.B.</given-names>
          </string-name>
          :
          <article-title>Maximum Likelihood from Incomplete Data via the EM Algorithm</article-title>
          .
          <source>J. of the Royal Statistical Society. Series B</source>
          .
          <volume>39</volume>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>38</lpage>
          (
          <year>1977</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Filonov</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lavrentyev</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vorontsov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Multivariate Industrial Time Series with CyberAttack Simulation: Fault Detection Using an LSTM-based Predictive Data Model</article-title>
          .
          <source>NIPS Time Series Workshop</source>
          (
          <year>2016</year>
          ). https://arxiv.org/abs/1612.06676
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Frigge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoaglin</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iglewicz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Some Implementations of the Box Plot</article-title>
          .
          <source>The American Statistician</source>
          ,
          <volume>43</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>50</fpage>
          -
          <lpage>54</lpage>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Hochreiter</surname>
            <given-names>S.:</given-names>
          </string-name>
          <article-title>Long Short-term Memory</article-title>
          .
          <source>Neural Computation</source>
          ,
          <volume>9</volume>
          (
          <issue>8</issue>
          ), pp.
          <fpage>1735</fpage>
          -
          <lpage>1780</lpage>
          (
          <year>1997</year>
          ). doi:
          <volume>10</volume>
          .1162/neco.
          <year>1997</year>
          .
          <volume>9</volume>
          .8.
          <fpage>1735</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Johnson</surname>
            ,
            <given-names>M.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Willsky</surname>
            ,
            <given-names>A.S.: Bayesian</given-names>
          </string-name>
          <string-name>
            <surname>Nonparametric Hidden Semi-Markov Models</surname>
          </string-name>
          .
          <source>J. of Machine Learning Research</source>
          ,
          <volume>14</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>673</fpage>
          -
          <lpage>701</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>A Method for Anomaly Detection for Non-stationary Vibration Signatures</article-title>
          .
          <source>Annual Conf. of the Prognostics and Health Management Society</source>
          (
          <year>2013</year>
          ). https://www.phmsociety.org/sites/ phmsociety.org/files/phm_submission/2013/phmc_ 13_
          <fpage>038</fpage>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Kreyszig</surname>
          </string-name>
          , E. Advanced Engineering Mathematics. John Wiley &amp; Sons Inc, 4th edition, 880 p. (
          <year>1979</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Lazarevic</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Feature Bagging for Outlier Detection</article-title>
          .
          <source>Proc. of the ACM SIGKDD Int. Conf. on Knowledge Discovery and Data Mining</source>
          , pp.
          <fpage>157</fpage>
          -
          <lpage>166</lpage>
          (
          <year>2005</year>
          ). doi:
          <volume>10</volume>
          .1145/ 1081870.1081891
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>F.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tony</surname>
            ,
            <given-names>T.K.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Z.H.</given-names>
          </string-name>
          :
          <article-title>Isolation Forest</article-title>
          .
          <source>Proc. of the 2008 Eighth IEEE Int. Conf. on Data Mining</source>
          , pp.
          <fpage>413</fpage>
          -
          <lpage>422</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Matusugu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mori</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitari</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaneda</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Subject Independent Facial Expression Recognition with Robust Face Detection using a Convolutional Neural Network</article-title>
          .
          <source>Neural Networks</source>
          ,
          <volume>16</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>555</fpage>
          -
          <lpage>559</lpage>
          (
          <year>2003</year>
          ). doi:
          <volume>10</volume>
          .1016/S0893-
          <volume>6080</volume>
          (
          <issue>03</issue>
          )
          <fpage>00115</fpage>
          -
          <lpage>1</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Mayer-Schönberger</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cukier</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Big Data: A Revolution that will Transform How We Live, Work, and</article-title>
          <string-name>
            <surname>Think. John Murray</surname>
          </string-name>
          , London (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Rousseeuw</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Driessen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>A Fast Algorithm for the Minimum Covariance Determinant Estimator</article-title>
          . Technometrics,
          <volume>41</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>212</fpage>
          -
          <lpage>223</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Schölkopf</surname>
            <given-names>B.</given-names>
          </string-name>
          , et al.:
          <article-title>Estimating the Support of a High-dimensional Distribution</article-title>
          .
          <source>Neural Computation</source>
          ,
          <volume>13</volume>
          (
          <issue>7</issue>
          ), pp.
          <fpage>1443</fpage>
          -
          <lpage>1471</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Sheriff</surname>
            ,
            <given-names>M.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nounou</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          :
          <article-title>Improved Fault Detection and Process Safety Using Multiscale Shewhart Charts</article-title>
          . J.
          <string-name>
            <surname>Chem</surname>
          </string-name>
          . Eng. Process Technol.,
          <volume>8</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          (
          <year>2017</year>
          ). doi:
          <volume>10</volume>
          .4172/
          <fpage>2157</fpage>
          -
          <lpage>7048</lpage>
          .
          <fpage>1000328</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <article-title>Библиотека алгоритмов машинного обучения для Python</article-title>
          , http://scikit-learn.org/stable/
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [24]
          <article-title>Хакатон по анализу данных от лаборатории Касперского</article-title>
          . https://events.kaspersky.com/ hackathon/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>