¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

8 ма€ 2020

ќбнаружение аномалий „ѕ” с помощью машинного обучени€ без учител€. „асть 4: ѕрименение на производстве

Ћу „жан (Lou Zhang)

ѕеревод: јндрей Ћовыгин
ќригинал публикации на сайте ѕланета —јћ


ќт редакции ѕланета —јћ: ¬ заключительной части этой серии статей будут рассмотрены некоторые примеры аномалий, обнаруженные в среде механической обработки, а затем продемонстрировано, как специалисты компании MachineMetrics используют полученные данные на производстве.
ќригинал статьи читайте здесь.

ѕредварительные примеры

ћы определили п€ть различных категорий аномалий:

  1. јномали€ предшествует отказу станка/тревоге
  2. јномали€ возникает одновременно с тревогой
  3. јномали€ предупреждает нас о внутренних ошибках
  4. јномали€ возникает, когда происходит что-то интересное, но не катастрофическое
  5. Ўумовые аномалии
 атегори€ 1: јномали€ предшествует простою/аварии
ѕример 1: предшеству€ ошибке инструмента
ѕервоначальна€ цель такого подхода состоит в том, что мы предположили, что станки испытывают аномальное поведение непосредственно перед отказом. ћы записали несколько случаев Ч здесь мы кратко опишем пример одного из случаев.

јномали€ была отмечена в 2:25 (ночью), а спуст€ 3 минуты в 2:28 произошла катастрофическа€ поломка инструмента.

машинное обучение „ѕ”

ƒеталь, созданна€ в 2:25, была аномальной, за две детали до того, как на станке сломалс€ инструмент

≈сли мы пойдем немного глубже, чтобы увидеть, что же такого особенного в этой детали, мы можем легко визуализировать, что произошло. ƒавайте рассмотрим несколько уровней, от кластеризации до сигнатур деталей, чтобы диагностировать эту проблему.


”ровень кластеризации

машинное обучение „ѕ”

я наблюдаю аномалиюЕ

— 22 до 6 часов было изготовлено около 450 деталей. Ќа графике выше показано относительное положение сигнатур деталей при проецировании на 2D-плоскость.  ак мы видим, на уровне кластеризации €вно наблюдаетс€ аномали€. ¬се остальные детали сгруппированы вместе, и DBSCAN легко изолирует аномалию, одиноко плавающую в космосе. ƒавайте переместимс€ на один уровень глубже.


”ровень временных р€дов

ѕриведенный выше кластерный график создаетс€ из характеристик временных р€дов, которые извлекаютс€ из каждой сигнатуры детали. ƒавайте посмотрим, как расположены характеристики аномалии относительно всех остальных деталей (выделены фиолетовым цветом).

машинное обучение „ѕ”

ћы можем видеть, что все характеристики нашей аномальной детали наход€тс€ на крайнем уровне дл€ этих метрик, что объ€сн€ет, почему это так далеко от всего остального.  опаем на один уровень глубжеЕ


”ровень сигнатуры детали

 ак выгл€дит эта сигнатура детали по сравнению со всем остальным? Ќиже мы анимируем 50 сигнатур деталей вокруг аномальной детали. ƒовольно очевидно, кака€ из них €вл€етс€ выбросом.

машинное обучение „ѕ”

—оздание сигнатуры детали ускорено в 100 раз по сравнению с реальной производственной средой

ѕрогнозирование отказов инструмента очень значимо. — одной стороны, врем€ просто€ и затраты свод€тс€ к минимуму благодар€ экономии средств на затратах оператора и замене инструментов. “акже может быть полезно знать, что на вашем производственном предпри€тии есть алгоритм, который ищет проблемные области.
ѕример 2: ќбнаружение отсутстви€ —ќ∆
Ќа этом станке в 9:39 была обнаружена аномали€, и сразу же последовала тревога Ђнет —ќ∆ї. ќператоры были бы уведомлены непосредственно перед тем, как в станке закончилась охлаждающа€ жидкость.
машинное обучение „ѕ”

13 августа, 9:39. ќхлаждающа€ жидкость кончаетс€. —танок перестает работать

 то-то может спросить Ц какой в этом смысл, если € все равно получу сигнал тревоги через пару секунд?

ƒополнительным преимуществом здесь €вл€етс€ то, что операторы не всегда внимательны к сигналам тревоги, часто обраща€ внимание на уведомлени€ только после длительного периода просто€. —танок будет работать на холостом ходу, пока оператор не получит предупреждение, но вместо этого оператор может сократить общее врем€ просто€ станка, реагиру€ на текст аномалии.

машинное обучение „ѕ”

—танок залит охлаждающей жидкостью. ќхлаждающа€ жидкость имеет важное значение

ѕример 3: предшествующие сигналы тревоги податчика прутка
¬ последнем примере этой категории оператор получил предупреждение примерно за 6 минут до ЂќЎ»Ѕ ј ѕќƒј“„» ј ѕ–”“ јї, в 6:23.35. ƒавайте посмотрим на это на временном графике.
машинное обучение „ѕ”

ѕогрузившись в пространство главных компонент, давайте посмотрим, как это выгл€дит.
машинное обучение „ѕ”

јномали€ выделена черным. ћы можем €сно увидеть всплеск в первой главной компоненте. ƒавайте еще глубже погрузимс€ в сами сигналы, чтобы увидеть, что произошло.
машинное обучение „ѕ”

≈сли посмотреть только на нагрузку Z2, то, по-видимому, в 6:22.56 произошло что-то странное, о чем свидетельствует скачок нагрузки с пика 80 на деталь до более 120. ¬ дополнение к этому, паттерны волны вокруг этого времени также отличаютс€ Ч вы можете увидеть €вную несогласованность с другими сигналами вокруг этой области.  онечно, из-за природы PCA веро€тно, что другие сигналы, не показанные на этом графике, также внесли свой вклад способами, не очевидными дл€ невооруженного глаза.
 атегори€ 2: јномали€ возникает одновременно с тревогой
Ќеудивительно, что мы также обнаружили аномалии, отмеченные одновременно с тревогой. ѕроизводитель встраивает аварийные сигналы, чтобы предупредить операторов о чем-то необычном (как и наши оповещени€ об аномали€х, поэтому неудивительно, что они часто совпадают). Ёто может быть выгодно, так как, как уже упоминалось, клиенты не всегда обращают внимание на сигналы тревоги. јварийный сигнал + аномали€ может заслуживать большего внимани€, особенно если каждый день по€вл€ютс€ дес€тки ложных сигналов тревоги.

Ёти пары тревога-аномали€, которые указывают на то, что станок работает совершенно по-другому, также могут быть более серьезными, чем процедурные тревоги. ¬ приведенном ниже примере аномали€ была обнаружена в 11:29 и совпала с тревогой Ђврем€ цикла податчика прутка истеклої, котора€ случаетс€, когда дл€ барфидера заканчиваетс€ материал.

машинное обучение „ѕ”

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

машинное обучение „ѕ”

 атегори€ 3: јномали€ предупреждает нас о внутренних ошибках
¬ качестве бонусного побочного эффекта мы также обнаружили пару наших собственных внутренних ошибок, которые про€вились как аномалии на наших станках. ¬ приведенном ниже примере мы обнаружили странный случай, когда станок фактически был активным, хот€ технически он был помечен как Ђнеактивныйї. Ёто заставило станок записать аномалию дл€ детали, созданной в 1:39.

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

машинное обучение „ѕ”

—танок был отмечен как неактивный в течение 3 мин 59 сек, когда он на самом деле производил обработку

 атегори€ 4: јномали€ предупреждает операторов, когда происходит необычна€ де€тельность (но не катастрофический отказ)
Ќе всем сбо€м инструмента предшествуют аномалии, и не все аномалии совпадают или предшествуют сбо€м инструмента. ¬ этом случае срабатывает аварийный сигнал Ђразблокировка выключател€ безопасностиї, потому что оператор не полностью закрыл дверь перед запуском станка, с сопровождающей его аномалией в 12:59. —танок оставалс€ неактивным, пока это происходило в качестве автоматической меры предосторожности. ’от€ это и не €вл€етс€ преп€тствием дл€ работы, мастер участка может захотеть узнать, когда это происходит (особенно, если это повтор€етс€), чтобы поощр€ть более эффективные методы обеспечени€ безопасности.
машинное обучение „ѕ”

ќператор попыталс€ запустить станок с открытой дверью, вызвав аномалию в 12:59

 атегори€ 5: јномали€ отмечаетс€ из-за странного поведени€, которое не подвергает станок опасности
 ак всегда, есть крайние случаи, которые не попадают в рамки того, дл€ чего мы разработали нашу систему. ¬ приведенном ниже примере аномали€ была отмечена в 2:49, по-видимому, без причины.
машинное обучение „ѕ”

«десь, похоже, нет ничего плохогоЕ

ќднако при более глубоком исследовании мы видим, что во врем€ цикла обработки детали наблюдаетс€ скачок нагрузки s1 (нагрузка на шпиндель 1). Ётого всплеска, который указывал на то, что станок работал при 115% номинальной нагрузки, было достаточно, чтобы вызвать существенную разницу на уровне сигнатуры детали. ¬ данном случае, все было в пределах нормальных рабочих границ этого станка, не вызыва€ вреда или ошибки.
машинное обучение „ѕ”

ѕик нагрузки в 14:48.28

—обира€ валидирующие данные от наших клиентов, мы можем настроить наши алгоритмы так, чтобы они были более чувствительными к Ђполезнымї аномали€м и менее чувствительными к лишним. ќбратна€ св€зь должна начать точно определ€ть, какие из атрибутов временного р€да указывают нам на более интересные аномалии. ћы также можем проводить A/B-тестирование, выпуска€ различные версии алгоритма дл€ определенных клиентов, чтобы узнать, получим ли мы более благопри€тную обратную св€зь. —о временем незначительные улучшени€ могут привести к значительному повышению точности.
машинное обучение „ѕ”

 ак Waze, но дл€ станков с „ѕ”

¬ будущем мы планируем объединить машинное обучение с фильтром аномалий, основанным на знани€х предметной области, чтобы исключить ситуации, которые, по нашему мнению, не интересны. ћы опубликуем эпилог с этим и еще несколькими примерами отказа инструмента в ближайшем будущем.

ѕродуктизаци€ Ц Ётап пилота

ƒл€ нашего пилота мы решили просто докернизировать R-скрипты, которые мы использовали дл€ очистки данных и кластеризации. Ёти скрипты выполн€ют всю т€желую работу, описанную в част€х 2 и 3 этого блога, и нам нужно было только обернуть их в контейнер и внести некоторые изменени€ в автоматизацию, чтобы они были полностью функциональными в производстве.

ѕрограмма запрашивает данные за последние шесть часов, обнаружива€ циклы деталей и устанавлива€ грубую область нормального поведени€. ѕосле того как отдельные циклы определены, мы посто€нно запрашиваем данные и вы€вл€ем аномалии в режиме реального времени. ѕосле обнаружени€ аномалии аномальна€ часть записываетс€ и SMS отправл€етс€ оператору в дополнение к генерации инцидента на странице клиента.

машинное обучение „ѕ”

ѕример инцидента с аномалией, в котором указаны врем€, приоритет, достоверность и адресат.  лиенты могут определ€ть приоритеты и адресатов, в то врем€ как мы определ€ем уровень достоверности, основыва€сь на том, насколько далеко находитс€ отклонение. ƒругие инциденты на этой странице инициируютс€ определенной пользователем системой, основанной на правилах

јлгоритм также имеет возможность определ€ть, когда запускаетс€ новый тип детали, поскольку мы собираем поле Ђprogram_codeї, которое указывает, кака€ программа выполн€етс€. ѕереключение программы очистит облако аномалий и полностью перезапустит процесс.

¬ приведенном ниже примере деталь 262 €вл€етс€ аномалией, выпадающей далеко за пределы основного облака. ѕри обнаружении выброса немедленно запускаетс€ оповещение.

машинное обучение „ѕ”

¬изуализаци€ того, что происходит во врем€ обнаружени€ аномалий

ћы обернули все это в другой скрипт, который извлекает идентификаторы станков из нашей базы данных и объедин€ет их в небольшие группы из 15Ц20 станков.  ажда€ группа проходит через свои 15Ц20 станков последовательно и примен€ет весь процесс к каждому станку. Ёто вносит некоторую задержку в получение уведомлений получател€ми, но все же позвол€ет нам полностью регистрировать и диагностировать аномалии дл€ дальнейшей настройки (что в конечном итоге €вл€етс€ целью нашего пилота).

ћы запускаем все это с помощью bash-скрипта, который принимает аргументы, которые измен€ют параметры обнаружени€ аномалий. Ёто особенно полезно на экспериментальных этапах, поскольку настройку гиперпараметров в основном необходимо выполн€ть в реальных услови€х. ћы имеем дело с уникальной проблемой, потому что трудно проверить аномалии с помощью исторических данных Ч клиенты часто не помн€т, когда станок выходил из стро€ или испытывал странное поведение. ” нас было несколько примеров, которые могли бы помочь нам в этом, но мы не собирали информацию о массовом отказе инструмента в прошлом.

ћы знаем, когда возникают аварийные сообщени€ на станках, и можем соотнести их с нашими аномали€ми. ѕроизводители оборудовани€ и клиенты определ€ют эти аварийные сигналы, которые возникают, когда станок выходит из стро€, по соображени€м безопасности или когда необходимо выдать предупреждение. ќднако трудно распутать ситуацию, когда аварийные сигналы фактически привод€т к простою из-за отсутстви€ стандартизации.

ƒл€ справки ниже приведена полна€ схема дл€ тех, кто интересуетс€ техническими подробност€ми (или если вам действительно нрав€тс€ блок-схемы).

машинное обучение „ѕ”

—ледует отметить, что на фронт-энде мы разработали пользовательский интерфейс, позвол€ющий клиентам отмечать каждую аномалию как Ђаномальную и полезнуюї, Ђаномальную и бесполезнуюї или Ђне аномалиюї дл€ сбора валидирующих данных и дл€ дальнейшего совершенствовани€ наших методов.
ѕродуктизаци€ Ц AWS Ћ€мбда
ѕо мере развити€ процесса наш план состоит в том, чтобы максимально снизить расходы при одновременном повышении надежности. ћы планируем заменить докеризованные R-скрипты функцией AWS Lambda, котора€ принимает данные непосредственно из нашего потока данных и выполн€ет всю их обработку. “ам не будет необходимости оплачивать расходы на запрос или EC2; обработка будет быстрее, и будет меньше частей, которые могут потерпеть неудачу. Ёто также позволило бы нам развернуть это локально дл€ объектов, которые не хот€т отправл€ть свои данные в облако.

ћы также добавили возможность сохран€ть информацию о состо€нии станков и о станках, на которых мы хотим это запускать, в Redis.

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

машинное обучение „ѕ”


ѕодробнее о возможност€х аналитической платформы MachineMetrics и еЄ отличи€х от других систем мониторинга оборудовани€ читайте в статье: Ђѕочему стартап, разрабатывающий аналитическую платформу дл€ дискретного производства, стал новостным хедлайнеромї.


„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: –аботаешь в »“, остерегайс€ говорить о платформах
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2020 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.