CEMS 분석 센터를 사용하기 위해서 몇 가지 기본 개념에 대한 사전 이해가 필요하다.
시계열 데이터, 시계열 데이터 분석과 다변량 시계열 데이터 분석
시계열 데이터는 시간의 흐름에 따라 기록된 데이터를 의미한다. 마크베이스 및 CEMS에서 취급하는 데이터는 대부분 타임스탬프와 이에 대응되는 값을 기록하므로 전형적인 시계열 데이터라고 할 수 있다.
세상에서 발생하는 대부분의 데이터는 특정 시간의 값으로 정의할 수 있다. 이 중에서 데이터가 일정 주기 혹은 정해진 패턴의 형태로 발생하며, 이전 타임스탬프의 값이 다음 타임스탬프의 값에 영향을 마치고, 시간에 따른 데이터의 변화에 어느 정도의 정상성(Stationarity)과 주기성(Periodicity)이 있는 경우, 이러한 특성을 이용하여 데이터를 분석할 수 있으며, 이를 시계열 데이터 분석이라고 부른다. 위에서 언급한 특징이 없거나 희박한 경우, 시계열 데이터 분석 방법보다 일반 데이터 분석 방법이 효과적일 수 있다.
기술적으로 시계열 데이터는 시간을 독립변수로, 값을 시간에 따른 종속변수로 취급해 그 값을 시간의 함수로 표현한다. 이러한 시계열 데이터 함수를 근사하거나 예측하기 위해서 지금까지는 주로 통계 기반의 분석 방법을 사용해 왔으며, 이중 대표적인 방법론이 ARIMA 모델이다. 최근에는 의사결정나무(Decision Tree)를 생성하는 기계학습 방법과 같은 인공지능 방법론을 적용하기도 한다.
일반적으로 하나의 장비 또는 환경에 여러 개의 센서가 부착되어 여러 태그의 데이터가 동시에 생산된다. 하나의 센서에 여러 개의 태그가 부탁되어 여러 종류의 데이터를 생산하는 경우도 있다. 이 경우, 단일 태그 데이터만이 아니라 일부 혹은 모든 태그 데이터를 활용해 상황을 종합적으로 판단하고 결정을 내리기 위한 분석 방법이 필요하다. 이러한 환경을 다변량 시계열 데이터(Multivariate Time-series Data)라고 부른다.
딥러닝을 활용한 데이터 분석
전통적으로 데이터 분석에는 다양한 통계 기반 방법론들이 적용되어 왔다. 통계 분석 패키지에는 많은 통계 함수가 제공되는데, 대개의 경우, 사용자는 데이터에 대한 사전 분석을 통해 원하는 결과를 얻기 위한 통계 방법론을 선택하고, 이를 바탕으로 분석을 진행한다. 이러한 방식은 기계학습을 적용할 때에도 크게 다르지 않다. 데이터에 대한 사전 분석을 통해 가장 효과적인 특징과 모델을 선택하는 과정을 거친다. 이러한 사전 분석 과정을 탐사 분석이라고 부르기도 한다.
하지만, 다루는 데이터의 양이 증가하고 특성이 복잡해지며 동시에 분석해야 하는 데이터의 개수가 많아짐에 따라 데이터 탐사 분석의 난이도가 올라간다. 특히 데이터에 내재된 의미를 찾아내기 위한 기계 학습에서는 이러한 의미를 잘 표현할 수 있는 깊은 특징을 선택해야 하는데, 기존 탐사 분석 방법으로는 쉽지 않다. 또한 다변량 시계열 데이터를 분석하기 위해서는 탐사 분석 단계에서 다차원 분석 및 시각화가 적용되어야 하는데, 인간의 인지 능력 상 이를 처리하는데 어려움이 있다.
딥러닝은 이러한 전통적인 데이터 분석 방법의 한계를 극복하기 위해 제시된 방법이다. 딥러닝은 특징 선택 과정도 학습의 일부로 포함시킨다. 예를 들어 이미지 분석에 주로 사용되는 CNN(Convolutional Neural Network) 방법론에서는 이미지 픽셀의 주변 픽셀과의 관계에서 이미지에 포함된 원시 특징(Privimitive Feature)을 학습을 통해 자동으로 선택할 수 있다. 이와 유사하게 시계열 데이터에서는 대표적으로 순환 신경망 네트워크(RNN, Recurrent Neural Network) 방법론과 그 변형 방법론이 이러한 역할을 한다.
시계열 데이터에서 값은 시간에 종속되는 변수이다. 그러므로 현재의 값 뿐 아니라 과거에서 현재로 데이터가 어떻게 변화하고 있는지가 특징에 반영되어야 한다. 이를 위해서 순환 신경망 네트워크는 모델의 각 셀의 결과의 입력으로 새로운 현재의 값 뿐 아니라 과거 셀의 결과값을 순환적으로(Recurrent) 함께 입력받아서 일정한 시간 간격의 값으로 모델을 학습시킨다. 이러한 간단한 아이디어를 통해 데이터의 시퀀스를 벡터 형태로 표현하고, 이 벡터를 학습한 모델 공간(Embedding Space)을 생성하게 된다.
검사할 때는 이 모델 공간에 적합한 방식으로 질의를 해 과거 일정 기간의 데이터를 입력했을 때 가장 자연스러운 시퀀스를 생성해낸다. 그리고 이 시퀀스와 실제 데이터 상의 시퀀스를 비교해 일정 기준 이상의 차이가 발생하면 모델은 이를 비정상으로 판단하게 된다.
CEMS 분석 센터에서는 위에서 설명한 순환 딥러닝 모형과 생성 모형을 IoT 데이터에 적합한 형태로 구축, 사용해 다변량 시계열 데이터를 분석하고 이상을 파악한다. 이를 통해 사용자의 손을 가장 덜 타는 쉬운 방법으로 데이터를 분석해 이상 데이터를 찾아낼 수 있도록 한다.
대시보드(CEMS Dashboard)와 잡(Job)
CEMS 분석 센터는 CEMS에서 생성한 대시보드를 분석 대상으로 한다.
예를 들어 여름철 생활날씨의 감시를 위해 ‘온도’, ‘습도’, ‘강수량’, ‘일조량’ 4개의 태그 데이터가 수집되는 상황을 가정해보자. 여기에 ‘온도’, ‘습도’, ‘강수량’ 3개의 데이터를 사용하는 ‘불쾌지수’라는 대시보드가 있다면 분석 센터에서 잡을 생성할 때 ‘불쾌지수’ 대시보드를 사용할 수 있으며, ‘온도’, ‘습도’, ‘강수량’ 세 태그 데이터를 활용한 다변량 시계열 분석 모형을 생성할 수 있다.
만약 ‘습도’, ‘일조량’의 두 태그 데이터를 활용해 모형을 생성하고자 한다면, 두 태그를 사용하는 대쉬보드가 없으므로 이 두 태그를 포함하는 대시보드를 새로 생성해야 한다. 이에 반해, ‘온도’, ‘습도’ 두 태그 데이터로 모형을 생성하고자 한다면 대시보드를 별도로 생성할 필요가 없으며, 모형을 생성할 때 ‘강수량’ 태그 데이터를 학습 데이터에서 제외하면 된다.
이와 같이 대시보드와 분석에 사용할 태그를 선택하여 생성된 모형을 잡(Job)이라고 한다. 동일한 대시보드를 사용해 잡을 생성하더라도 기저 모형, 태그를 달리 선택하거나 몇 가지 기본 파라미터를 변경하여 여러 개의 잡을 생성할 수 있다. 즉 대시보드와 잡은 1:N의 관계를 가지게 된다.
데이터 분석 모형과 분석용 데이터
CEMS 분석 센터에서 장비의 정상 유무를 판단하는데 사용하는 모형은 딥러닝 기반의 다중 시계열 데이터 검사 모형이다. 모형은 개별 태그의 정상 유무를 검사하는 단일 태그 검사 기능과 모든 태그를 종합해 판단하는 바스킷(Basket) 검사 기능을 제공한다. 모형을 생성하는 과정에서 단일 태그 검사 기능과 바스킷 검사 기능을 한 번에 학습(원샷 학습)하여 생성한다.
경우에 따라서는 대시보드에 포함된 태그 중 기계학습에 적합하지 않은 센서 데이터가 포함되어 있을 수 있다(밀폐된 공장 외부의 온습도 데이터 등). 만약 그러한 데이터가 포함되어 있다면 바스킷에서 해당 데이터를 제외시킬 수 있는데, 원샷 학습 모형의 특성 상, 바스킷에서 제외된 태그에 대해서는 단일 태그 검사 기능도 제공하지 않는다.
각 센서에서 수집된 원천 값(raw value)이 태그 데이터로 CEMS에 저장되는데, CEMS 분석 센터의 일반 분석은 이 원천 값에 대해 일정 주기 간격으로 평균값을 구해 모형을 생성하고, 검사 결과를 생성한다. 이 주기(Summary Duration)는 잡을 생성할 때 입력하는 파라미터 중 하나로, 원본 데이터의 특성에 따라 범위가 제한되며, 최대값은 60초로 고정된다. 다시 말해, 데이터의 발생 주기가 1분 이상인 경우 분석이 정상적으로 동작하지 않을 수 있다. 그리고 일정 주기의 평균값으로 학습과 검사를 진행하므로 해당 주기 이하에서 발생하는 일부 비정상 데이터는 정상적으로 찾아내지 못할 수도 있다. 일반 분석에서 제공하는 데이터 분석 주기 이외의 분석이 필요한 경우, 고객의 요구 사항에 맞는 별도의 모형을 개발하여 분석 센터에 등록하고 서비스를 제공할 수 있다.
모형 생성에서 사용자가 설정 가능한 또 하나의 파라미터는 타임윈도우(Time Windows)의 크기이다. 시계열 데이터의 특성 상 과거 일정 기간의 데이터가 현재 데이터에 영향을 미치기 때문에, 학습 과정에서 일정 기간의 과거 데이터를 현재의 데이터와 함께 반영하는데, 이 시간 범위를 지정하는 파라미터이다. 모형은 최소 과거 10개 이상의 데이터 지점을 참조하므로 타임윈도우 사이즈는 데이터 주기(Summary Duration)의 설정 값에 따라 그 범위가 제한된다. 단, 일반 분석에서는 너무 큰 타임윈도우 사이즈는 지원하지 않으며, 제공되지 않는 장기간의 타임윈도우 분석이 필요한 경우는 마찬가지로 별도의 모형을 개발해 분석 센터를 통해 서비스를 받을 수 있다.
데이터의 비정상 (Anomaly)
모형은 각 시점의 데이터의 정상 유무를 검사해, 정상 범위 밖으로 벗어난 데이터를 비정상 데이터로 분류하고 이를 사용자에게 알려준다. 분석 센터에서 발생하는 비정상 데이터는 크게 두 종류로 나뉜다.
개별 태그의 비정상 - 단일 태그 분석을 통해 찾은 비정상 상태
바스킷 비정상(Basket Anomaly) - 전체 태그를 종합해 판단한 비정상 상태
바스킷 비정상의 경우 모든 개별 태그 데이터는 정상 범위내에 머물러 있다 하더라도 전체 데이터를 종합하여 분석한 추세가 학습할 때와 다르면 비정상으로 분류할 수 있다. 반대의 경우도 가능하다.
비정상 문턱값(threshold)의 계산은 학습 시점의 데이터를 기준으로 결정하며, 99% 아웃라이어를 비정상 데이터로 판독한다. 물론 그래프를 통해 99% 이내의 데이터 분포 상황도 눈으로 확인할 수 있다. 다만 개별 태그의 비정상은 등록된 비정상과 화면에서 보이는 비정상이 차이를 보일 수 있다. 이는 그래프 상에 표시할 때 빠른 계산을 위해 서버에서 계산하는 방법과 웹에서 계산하는 방식이 미세하게 차이가 나기 때문인데 이러한 차이와 비정상을 판단하는 방식, 계산 방식 등은 지속적으로 개선될 예정이다.
기저 모형
현재 CEMS 분석 센터에서는 다음의 기저 모형을 제공한다.
바스킷 디코더(Basket-decoder) 모형
바스킷 디코더 모형은 분석 대상의 모든 태그를 시간에 따른 순환 신경망으로 학습해 하나의 바스킷을 학습하여, 동시에 개별 태그를 전체 바스킷에 질의해 얻은 벡터를 사용해 개별 태그의 디코더를 학습한다.
바스킷은 모든 태그 데이터를 종합한 비정상 점수를 계산하는데 사용되며, 개별 태그의 디코더는 입력된 개별 태그의 시퀀스를 바탕으로 학습된 시퀀스를 재현하여(Auto-encoder) 입력 태그와의 거리에 기반한 비정상 점수를 계산한다.