분석 센터의 기본 개념

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)

모형은 각 시점의 데이터의 정상 유무를 검사해, 정상 범위 밖으로 벗어난 데이터를 비정상 데이터로 분류하고 이를 사용자에게 알려준다. 분석 센터에서 발생하는 비정상 데이터는 크게 두 종류로 나뉜다.

  1. 개별 태그의 비정상 - 단일 태그 분석을 통해 찾은 비정상 상태

  2. 바스킷 비정상(Basket Anomaly) - 전체 태그를 종합해 판단한 비정상 상태

바스킷 비정상의 경우 모든 개별 태그 데이터는 정상 범위내에 머물러 있다 하더라도 전체 데이터를 종합하여 분석한 추세가 학습할 때와 다르면 비정상으로 분류할 수 있다. 반대의 경우도 가능하다.

비정상 문턱값(threshold)의 계산은 학습 시점의 데이터를 기준으로 결정하며, 99% 아웃라이어를 비정상 데이터로 판독한다. 물론 그래프를 통해 99% 이내의 데이터 분포 상황도 눈으로 확인할 수 있다. 다만 개별 태그의 비정상은 등록된 비정상과 화면에서 보이는 비정상이 차이를 보일 수 있다. 이는 그래프 상에 표시할 때 빠른 계산을 위해 서버에서 계산하는 방법과 웹에서 계산하는 방식이 미세하게 차이가 나기 때문인데 이러한 차이와 비정상을 판단하는 방식, 계산 방식 등은 지속적으로 개선될 예정이다.

비정상 지표 (Anomaly Percentile과 Anomaly Score)

CEMS 분석센터에서 비정상 수준을 계량화하기 위해서 두 가지 지표를 사용하며, 이 지표를 사용해 비정상의 정도를 알려준다. 첫 번째 지표는 Anomaly Percentile이다. 이 지표는 매우 직관적인 지표로, 데이터가 정상으로부터 얼마나 떨어져 있는지를 100분위 단위의 값으로 보여준다. 이 값이 99라면, 이 데이터는 100개의 검사 데이터중 99등 수준으로 바깥에 분포해 있다는 의미이다. 만약 학습 데이터를 기준으로 1천번에 한번 꼴로 발생하는 비정상을 비정상의 문턱값으로 삼겠다면, Percentail 기준으로 99.9를 문턱값으로 정하면 된다.

하지만 이러한 직관적인 지표는 실제 이상 상황을 확인하고, 이상 수준을 확인하는데는 적절하지 않다. 데이터를 관찰하는 입장에서는 정상 범위 내의 50%의 변화보다 비정상 범위 부근의 0.1%에 훨씬 민감하게 된다. 즉 99.9를 문턱값으로 삼은 경우 시각화된 차트에서 99에서 100으로 변화하는 과정을 잘 인지할 수 있어야 하지만, 100분위 구간을 선형으로 표현하면 이 과정을 차트 상에서 육안으로 확인하는 것이 거의 불가능하다.

그리하여 두 번째 지표인 Anomaly Score 개념을 도입하였다. 이 Anomaly Score는 Anomaly Percentile이 5 증가하면 Anomaly Score는 2배가 되도록 설계되었다. 즉 100분위 상에서 5분위 만큼 이상도가 증가하면 Anomaly Score는 2배가 된다는 의미가 된다.

다음 표는 두 지표의 서로 대응되는 값을 보여준다.

지표

지표

Anomaly Percentile

90

95

99

99.9

99.99

100

Anomaly Score

25

50

87.0551

98.6233

99.8615

100

표에서 알 수 있듯 Anomaly Score를 사용하면 고위험영역에서 위험도의 증감을 더 쉽게 살필 수 있다.

CEMS 분석 센터의 모니터링 차트에서는 이상 판정 문턱값을 Percentile로 설정하고, Percentile와 Score 모두를 설정에 따라 가시화할 수 있는 기능을 제공하고 있다.

기저 모형

현재 CEMS 분석 센터에서는 다음의 기저 모형을 제공한다.

1. 재생성(Reconstruction) 모형 (또는 바스킷 디코더Basket-decoder 모형)

재생성 모형은 분석 대상의 모든 태그를 시간에 따른 순환 신경망으로 학습해 하나의 바스킷을 학습하여, 동시에 개별 태그를 전체 바스킷에 질의해 얻은 벡터를 사용해 개별 태그의 디코더를 학습한다. 이러한 특성으로 예전 버전의 CEMS 분석센터에서는 이 모형을 바스킷 디코더 모형이라고 부르기도 했다.

바스킷은 모든 태그 데이터를 종합한 비정상 점수를 계산하는데 사용되며, 개별 태그의 디코더는 입력된 개별 태그의 시퀀스를 바탕으로 학습된 시퀀스를 재현하여(Auto-encoder) 입력 태그와의 거리에 기반한 비정상 점수를 계산한다.

이 모형은 일반적인 시계열 특성을 가진 센서데이터에 적용 가능한 모형이다.

2. 클러스터링(Clustering) 모형

일정 수준 이상 성숙한 환경에서는 이상 상태가 거의 발생하지 않는다. 그렇기 때문에 과거의 데이터의 패턴을 분류해보면 일정한 클러스터가 구성되며, 각각의 클러스터는 대부분 정상 상태를 의미하게 된다. 여기에서 착안한 모형으로, 학습 데이터를 딥러닝 방법을 사용해 클러스터링하고, 각 클러스터를 정상 데이터가 모여 있는 곳으로 가정한다.

이후 검사 시점의 개별 데이터를 가장 가까운 클러스터와의 거리를 측정해, 이 거리가 학습 데이터의 분포 상에서 문턱값(threshold) 밖의 아웃라이어로 분류되면, 이를 이상 데이터로 판정한다.

이 모형은 충분히 성숙되어 안정된 데이터 환경에서 적용 가능한 모형이다.

커스텀 모형 (Custom Model)

CEMS 분석센터에서는 주어진 데이터와 주어진 기저 모형을 사용해 모형을 자동으로 학습하고, 검사 결과를 실시간으로 모니터링하거나 특정 이상 상황의 데이터를 들여다 볼 수 있다. 하지만 이러한 프로세스가 항상 효과적이지 않다. 이러한 상황은 다양한 경우에서 발생할 수 있지만 대표적인 경우는 다음과 같다.

  • 제공되는 모형을 사용할 수 없는 경우 - 데이터의 특성이 제공되는 모형과 맞지 않아서 다른 모형을 사용해야 하는 경우

  • 제공되는 모형의 설정이 충분하지 않은 경우 - CEMS 분석센터는 데이터의 특성과 CEMS 컴퓨팅 자원 등을 고려해 모형 설정에 제약이 존재하며, 이러한 제약으로 인한 검사 성능이 불충분한 경우

  • 학습 데이터를 CEMS를 통해 제공할 수 없는 경우 - 새롭게 발생되는 데이터는 CEMS를 통해 수집, 가시화되지만 학습을 위한 과거 데이터를 CEMS에 적재하기 부적합한 경우

위에서 나열한 사례 등의 이유로 모형을 CEMS 분석센터를 통해 만들기 어려운 경우가 있다. 이 경우 CEMS 분석센터에서 사용하는 모형과 인터페이스는 호환되는 딥러닝 이상감지 모형을 별도로 제작해 CEMS 분석센터의 검사 환경을 통해 검사할 수 있는 기능을 제공한다. 이와 같이 별도로 구축된 모형을 커스텀 모형(Custom Model)이라고 부른다.

커스텀 모형은 일반 CEMS 모형과 달리 CEMS 분석센터를 통한 생성 및 수정을 지원하지 않으며, 나머지 사항은 동일하게 동작한다. 커스텀 모형을 사용하려면 별도 요청을 통한 절차가 필요하며, 마크베이스의 데이터 엔지니어가 모델생성, 테스트 및 업로드를 진행하게 된다.