🔭

[Intro] Data Challenge Overview

Goal

반도체 제조 공정에 사용되는 Oil-injection Screw Compressor의 상태를 진단하고 누락된 진동신호를 복원생성해보기

Background

이번 Data Challenge에서는 SK Telecom이 파트너사로 참여하였습니다. 최근 SK Telecom은 공격적인 투자를 통해 산업 데이터 분야에 진출하고 있는데요, 이번 데이터 챌린지에 참여한 것도 같은 맥락에서 이해됩니다. SK Telecom은 이번 데이터 챌린지의 주제로 반도체 제조 공정에서 사용되는 Oil-injected Screw Compressor를 가져왔는데요, 이 설비는 컴프레서 중에서도 가격이 저렴한 편이고 안전 신뢰성(Reliability)가 높아 다양한 산업군에서 많이 사용되는 컴프레서입니다. 하지만 그렇다고 해서 고장이 발생하지 않는 것은 아닌데요, 구체적인 고장을 살펴보기에 앞서 우선 이 설비가 어떻게 생겼는지부터 살펴보도록 하겠습니다.
SK Telecom 및 PHMAP DC 주최측에서 제공한 Oil-Injection Screw Compressor의 모습입니다. (출처: http://phmap.org/data-challenge/)
컴프레서는 크게 두가지 회전체(모터, 스크류)로 구성되어 있고, 모터에서 발생하는 회전 동력은 벨트를 통해 스크류로 전달됩니다. 스크류는 회전하면서 내부의 유체를 압축시키게 되고, 이 과정에서 유체에 Oil이 분사된다고 이해하시면 될 것 같습니다.
아무래도 스크류를 돌리기 위해서는 큰 동력이 필요하고 이 동력이 벨트를 통해 전달되다보니 모터에 막중한 하중이 전달될 수 밖에 없는데요, SK Telecom에 따르면 주로 3가지의 고장이 발생한다고 합니다. 먼저 Unbalance라고 불리는 고장은 모터의 회전축과 무게중심 사이의 균형이 깨진 상태를 의미합니다. 이 고장이 발생하면 균일하지 못한 회전이 발생하게 되고 추가적인 큰 고장의 원인으로 발전할 수 있습니다. 다음으로는 Belt-Losseness라는 고장이 있는데요, 큰 동력을 일종의 고무벨트로 전달하다보니 강한 장력(Tension)이 필요하고, 피로가 누적되면서 벨트가 늘어나버린 겁니다. 특히 이 고장 유형은 Belt-LossenessBelt-Losseness High로 나누어 관리할 정도로 열화의 수준이 계속해서 증가하는 고장유형입니다. 마지막으로 Bearing Fault라는 고장 유형이 있습니다. 이 유형은 모터의 회전 축을 지지하는 베어링의 그리스(Grease, 회전 마찰을 감소시켜주기위한 윤활제)가 열화되면서 최종적으로는 베어링의 마모(wear-out)가 발생한 고장에 해당합니다.

Datasets

자, 그러면 어떤 데이터가 주어졌을까요? 이번 데이터 챌린지에서는 회전체를 대상으로 하는 챌린지답게 진동 신호를 바탕으로 합니다. 회전체가 두 개인만큼(모터, 스크류) 각각 모터와 스크류의 외함(Housing)에서 신호를 취득했는데요, 이때 데이터 획득을 위한 샘플링주기(Sampling Rate)는 10,544Hz라고 합니다.
데이터 획득을 위한 진동 센서 설치 모습. (출처: http://phmap.org/data-challenge/)
이런 조건하에 이번 챌린지에서는 총 10개의 데이터셋이 제공되었습니다. 하나의 데이터셋은 한번의 데이터 획득 이벤트에 해당합니다. 각 데이터셋은 2채널의 파형 데이터(Waveform)로 각각 모터와 스크류에서 동시에 획득된 진동 신호로 구성되어 있는데요, 이때 10개의 데이터셋은 측정된 날짜도, 측정 시간 길이도, 컴프레서의 건전성 상태도 모두 다릅니다. 추가적인 데이터에 대한 정보를 정리해보면 다음과 같습니다.
Search
데이터셋 상세정보
Name
Value
총 10개 - Normal: 2 - Unbalance: 3 - Belt-Looseness: 2 - Belt-Looseness High: 1 - Bearing fault: 2
COUNT6

Tasks

이번 데이터 챌린지에는 두 가지 과제가 주어졌습니다. 첫번째는 대표적인 PHM의 과제인 상태 예측 진단 입니다. 주어진 모터와 스크류의 진동신호를 바탕으로 컴프레서의 건전성 상태를 판단하는 것이지요. 참가자들은 주어진 진동신호를 이용해서 현재 컴프레서가 5개의 고장 모드 중 어느것에 해당하는지 진단해야하며 F1(macro) 스코어를 통해 최종 평가됩니다. 특히 Belt-LoosenessBelt-Looseness High 를 분리하여 진단해야 한다는 것이 다소 난이도가 있어보입니다.
설상가상으로 주어지는 상태 예측 진단을 위해 사용할 수 있는 데이터도 몹시 제한적입니다. 상태 예측 진단 문제에는 총 78,000개의 샘플이 주어지며 각 샘플 별 건전성 상태를 판단해야하는데요, 상태 진단을 위해 제공되는 데이터의 길이는 고작 0.012초, 즉 샘플링 주기를 고려할 때 길이가 128밖에 되지 않습니다. 채널이 두개여서 사용할 수 있는 정보는 두 배라는 점이 그나마 위안이 되겠지만, 상당히 도전적인 데이터 길이가 아닐 수 없습니다. 자, 그러면 왜 하필 이렇게 짧은 데이터만을 가지고 과제를 수행하게끔 한걸까요? 출제자의 의도를 역으로 추정해보면 엣지컴퓨팅  에서 수행되는 빠른 의사결정 을 위함이 아닐까싶습니다. 실제 설비가 작동할때에는 모든 데이터를 서버로 가져와서 처리할 수 없습니다. 무엇보다 데이터 I/O 트래픽에 많은 시간과 비용이 소모되고, 여러 설비에서 동시에 쏟아지는 데이터를 서버가 통합관리하기엔 무리가 따르기 때문이죠. 따라서 이러한 의사 결정을 신속하게 가져가기 위해서는 엣지에서 데이터 수집과 동시에 적극적으로 처리해줄 필요가 있습니다. 그러려면 아무래도 엣지의 제한적인 컴퓨팅 파워를 고려할 때 가벼운 데이터로 빠르게 연산이 가능해야하겠지요.
첫 번째 과제, 컴프레서의 상태 예측 진단을 위한 데이터 셋입니다. 고작 0.012초의 데이터만 가지고 과연 상태 예측진단이 가능할까요? (출처: http://phmap.org/data-challenge/)
두번째 과제는 상당히 흥미로웠는데요, 바로 신호 예측 입니다. 주어진 모터와 스크류의 과거 진동신호, 그리고 현재 모터 진동신호를 바탕으로 현재 스크류의 진동신호를 예측하는 것인데요, 이렇게 예측한 데이터를 RMSE 스코어 를 통해 평가한다는것이 굉장히 어려울 것으로 보입니다. RMSE 스코어는 회전 데이터의 회전 특성이나 주파수 성질을 얼마나 잘 구현했는지가 아닌 데이터를 각 포인트별로(Point-wisely) 평가하기 때문인데요, 이는 단순히 스크류와 모터의 특성뿐만 아니라 사소한 노이즈나 데이터의 불확실성(Uncertainty)까지도 정확하게 예측해내야함을 의미하며 조금이라도 예측이 시간이 밀리거나 왜곡될 경우 스코어가 급격히 증가할 위험이 있습니다.
이런 어려움에도 불과하고 신호 예측을 위해 제공된 데이터는 첫번째 과제와 마찬가지로 여전히 제한적입니다. 이 문제에는 총 19,000개의 샘플이 주어지고, 각 샘플은 0.4초 길이의 모터 진동 데이터와 0.3초 길이의 스크류 진동 데이터로 구성되어 있습니다. 참가자들은 각 샘플별로 나머지 0.1초의 스크류 진동 신호를 예측해야하는데요, 0.1초 스크류 진동신호의 길이가 1,054임을 고려하면 단순한 신호의 추정이 아닌 정확한 예측이 필요하다는 것을 알 수 있습니다. 그러면 이 두 번째 과제가 갖는 산업에서의 의미는 무엇일까요? 제 생각에는 아마 손실된 데이터의 복원한 박자 빠른 의사결정을 통한 참극의 방지가 아닐까 추측해볼 수 있을 것 같습니다. 산업현장에서는 다양한 이유로 데이터의 손실이 발생할 수 있습니다. 데이터를 수집하는 센서에 이상이 발생할 수도 있고, 데이터를 송수신하는 네트워크에 문제가 발생할 수도 있지요. 산업 설비에서 획득되는 순간순간의 데이터는 해당 설비의 유지보수 의사결정을 위해 꼭 필요한 근거자료이기 때문에 이러한 데이터의 손실은 장기적으로는 잘못된 의사결정을 유발할 수 있습니다. 또한 의사결정의 측면에서 이상 징후를 조금이라도 빨리 감지하는 것은 급작스러운 고장에 대한 대처를 위해 몹시 중요한 의미를 갖습니다. 일반적으로 초기 결함의 발생과 진행은 그 발전 속도가 더딘 반면, 우발적인 고장이나 오랫동안 지속되어왔던 고장은 갑작스럽게 그 크기가 확장될 수 있고, 결국 전체 설비의 고장, 더 나아가 인재 등의 참극을 야기할 수 있습니다. 따라서 0.1초라도 미래 시점의 데이터를 예측하고, 그 데이터를 기반해서 상태를 진단할 수 있다면 극단적인 산업 재해를 방지하는데 몹시 큰 도움이 될 수 있습니다.
두 번째 과제, 컴프레서의 신호 예측을 위한 데이터 셋입니다. 고작 과연 잃어버린 0.1초의 데이터를 예측하는 것이 가능할까요? (출처: http://phmap.org/data-challenge/)

Our Approach Stance

본격적으로 데이터 챌린지를 시작하기에 앞서 저희는 이 문제들을 어떻게 접근할 것인지에 대한 고민에 빠졌습니다. 원프레딕트는 산업 인공지능을 활용한 PHM 기술 의 스페셜리스트 집단이며 산업 인공지능은 기본적으로 도메인 지식인공지능 기술 이 융합될 때 최고의 퍼포먼스를 보일 수 있습니다. 따라서 저희가 취할 수 있는 가장 최선의 방법은 모터와 스크류의 물리적 원리(Motor Dynamics)와 고장에 따른 신호의 변화를 이해하고 이를 딥러닝 기술에 적용하는 것이겠지요. 하지만 막상 이런 접근방식으로 데이터 챌린지 문제들을 해결하려다 보니 커다란 장애물이 나타났습니다. 바로 제한된 시간 입니다.
산업 인공지능은 도메인 지식과 인공지능 지식을 결합할 때 최고의 성능을 보일 수 있습니다.
데이터 챌린지를 위해 주어진 시간은 약 2달입니다. 일반적으로 가디원 제품을 위한 산업 인공지능 기술을 개발할때 도메인 지식과 인공지능 지식을 결합하는 과정에서도 숱한 시행착오를 겪게 되지만, 그만큼이나 많은 시간이 할애되는 것이 바로 도메인 지식을 획득하는 과정입니다. 인공지능 지식은 일종의 범용적인 도구들로 가디언즈들이 꾸준히 공부하고 업데이트되는 지식인 반면, 도메인 지식은 대상 설비가 정해졌을때 비로소 준비가 시작됩니다. 특히 도메인 지식은 많은 학자 또는 현장 전문가들이 수십년의 세월에 걸쳐 만들어 온 자산인 만큼 이를 숙지하는 것은 충분한 시간을 요구합니다. 이번 데이터 챌린지의 주제인 모터와 스크류의 경우에도 그 동작원리나 고장 물리에 대한 연구는 수십년동안 진행되어 왔으며 이를 2달내에 숙지하여 인공지능 지식에 투영하는 것은 상당히 촉박한 일정을 요구하였습니다. 특히나 데이터 챌린지에 참여한 가디언즈들은 기존의 업무들도 병행해야하는 만큼 제한된 시간내에 이를 해소하는 것은 불가능하다고 판단되었죠. 그래서 많은 고민끝에 저희는 제한된 시간 속에서 도메인 지식을 최대한 활용할 수 있는 방법을 생각해보았습니다. 바로 도메인 지식을 세분화하는 것이지요.
도메인 지식은 설비에 대한 지식과 데이터에 대한 물리 지식, 즉 '회전체의 진동신호'에 대한 물리지식으로 나뉩니다. 제품을 개발하는 과정에서는 최고의 퍼포먼스를 위해 대상 설비에 대한 지식이 반드시 요구되지만, 데이터 챌린지에서는 데이터에 대한 이해만으로도 문제 해소가 가능하지 않을까요?
도메인 지식을 좀 더 세분화하면 설비에 대한 지식데이터에 대한 물리 지식 으로 구분될 수 있습니다. 이번 데이터 챌린지의 경우 설비에 대한 지식은 모터와 스크류의 작동 및 고장 원리에 해당하고, 데이터에 대한 물리 지식은 회전체의 진동신호에 해당하겠지요. 제한된 기한 내에서 모터와 스크류의 물리 지식을 모두 파악하는 것은 어렵겠지만, 저희가 기존에 확보하고 있던 진동신호에 대한 지식만 활용하는 것으로도 어느정도 충분한 성과를 거둘 수 있지 않을까요? 그래서 저희는 이번 데이터 챌린지에 대한 접근 방식을 다음과 같이 정의해보았습니다.
Solutions only with data and AI, excluding asset physics (as possible )

이 글을 쓴 사람

김 수 호 | Product1팀
행동보다 말이 앞서는 INTP Data Scientist 입니다.
정보의 늪에서 맹목적으로 행동하기 보다는 먼저 고민하고 함께 의논하는 개발자가 되고 싶습니다.
원프레딕트 홈페이지 https://onepredict.ai/
원프레딕트 블로그 https://blog.onepredict.ai/
원프레딕트 기술 블로그 https://tech.onepredict.ai