Posting

Machbase의 최신 소식을 지금 만나보세요

Industry 4.0 with MACHBASE page 5 : CASE STUDY – Deep Anomaly Detection With Machbase

지난번 문서에서 확인했듯이, 특정 Lot과 특정 wafer에서 특정 장비에서 측정되는 데이터를 MACHBASE를 활용하여, 효율적으로 저장/조회 및 관리할 수 있다는것을 알았다.

이제 해당 데이터를 활용하여, 생산 장비에 이상이 생겼는지, 또는 생산되는 제품의 이상 유무를 검사 할 수 있을 것으로 기대할 수 있다.

최근 머신러닝을 활발하게 활용하기 이전에는 단순한 통계적 기법을 활용하여 기록되는 데이터가 정상상태가 아닌지 감지하였으나, 최근 저장 하드웨어의 발달을 기반으로 발생한 빅데이터와 GPU를 활용한 고속 분산처리를 통해서 단순한 통계적 모델이 아닌 복잡한 기계학습 모델 학습이 가능해졌고, 이를 활용하여 이상을 감지하는 알고리즘들이 실제 이상감지에 적용이 되고있으며, 그중 가장 뜨거운 감자가 Deep Learning이다.



Deep Learning을 알아보기 이전에 기존에 어떤 방식으로 이상감지를 적용했는지 알아보자,

실제 생산 설비는 작동 중에 측정되는 내부적인 상태(전류 / 전압 / 가속도 / 전위)등의 값이 일정 공차안에서 유지되도록 설계되어 있다. 이때 이 값들을 활용해서, 해당 값이 특정 기준점을 벗어나면, 장비에 이상이 있다 라고 예측하는 방식이 가장 기본적이다 하지만, 이 방법의 경우 설정 공차에 따라서 성능의 차이가 크고, 설비가 동작하는 환경에 따라서 기준점이 변화될 수 있어 기준점을 매 설비마다 개별적으로 찾아야 하는 단점이 존재한다. 또한 적절한 기준점을 찾더라도, 아주 미세한 변화나 충격에도 영향을 쉽게 받아, 정상 상태임에도 불구하고 이상 상태로 분류하는 거짓 양성이 많이 생긴다. 그래서 이런 짧은 노이즈에 대해 발생하는 문제를 줄이기 위해서, 한개의 값으로 이상 예측을 하지 않고, 일정 크기의 window를 설정해서 해당 window안의 데이터의 통계치를 활용해 이상 감지하는 방법이 최근까지 적용되고 있다. 이때 적용하는 방식들은 단순하게 평균과 분산을 활용할 수 있고, 또는 FFT1)와 같은 기법을 적용하여, window안의 데이터의 대푯값을 추출하여 이상감지를 적용할 수 있다. 하지만 이러한 대푯값을 추출하는 방법들은 모델 개발자가 통계적 모델에 대한 전문가 수준의 선험 지식이 필요하고, 또한 설비별로 매번 새롭게 정의 되어야 하기 때문에 많은 영역에서 사용되지 못하는 현실이다.



이에반해 최근 떠오르고 있는 Deep Learning은 대푯값을 추출하는 방식을 포함한 이상 감지 모델로서 전문가가 실제 모델을 개발하지 않고, 데이터를 기반하여 자동으로 모델을 학습하여 모델을 찾게 된다.

Deep Leaning은 단층 퍼셉트론이라는 단순한 모델을 직렬 / 병렬로 중첩되게 복수의 층으로 쌓아 올림으로써, 입력에 가까운 퍼셉트론들은 이상 감지를 위한 특징을 추출하는 모델로 학습이 되고, 출력층에 가장 가까운 모델은 추출된 특징을 활용해서 이상을 감지하게 되는 모델로, 기존에는 사람이 선험적 지식과 경험을 최대한 활용하여 특징을 추출하는 모델을 개발하고, 이를 활용하여 이상을 감지하여야 했던 것을, 통계 기반의 모델링 작업 없이 그와 유사한 수준의 결과를 얻을 수 있게 되었다. 이때 가장 중요한 것이 모델을 찾기위해 필요한 학습 데이터이다. 오늘날 영상처리에서 딥러닝이 다양하게 활용될 수 있는 이유도 다른 분야에 비해 압도적으로 풍부하고 잘 정제된 데이터가 많기 때문으로 생각된다.

그래서 대부분의 현자에서 데이터를 모으고는 있으나, 해당 데이터를 잘 정제하여 효율적으로 활용할 수 있는 형태로 보관하지는 않아, 바로 딥러닝 모델을 학습하기는 어렵다. 하지만 이미지가 아닌 센서에서 생성된 데이터에 대해서 MACHBASE를 활용한다면, 측정된 데이터를 학습에 손쉽게 활용할 수 있고, 학습된 모델을 큰 비용없이 실제 장비에 활용할 수 있고, 실제로 적용되는 모델의 성능이 떨어졌을때 재학습 하는 비용도 효과적으로 감소 시킬 수 있다.



이제 구체적으로 MACHBASE을 활용한 Deep Learning 기반 이상 감지 적용에 대해서 고찰해 보겠다. 현재 온도 측정 센서와 Edgemaster를 활용하여 사무실 내부의 온도를 MACHBASE에 기록하고 있다. 이때 센서에서 기록되는 시각은 일정한 간격을 두고 측정되지는 않지만, MACHBASE에서 데이터가 입력되고 해당 데이터가 rollup table에 자동으로 정제되고 있어, 데이터를 가져올 때, rollup 기능을 활용한다면, 간격을 동일하게 1분단위로 정제하여 데이터를 얻을 수 있어, 학습에 이용하기 용이하며, 또한 손쉽게 모델을 개발하고, 개발된 모델을 실제 적용하는 것도 복잡한 과정없이 수월하게 진행이 가능하다. 만약 해당 기능이 없다면, 측정되는 데이터를 시각에 따라 전처리를 하는 과정이 필요하며, 테스트시에도 단순히 데이터를 가져와 바로 검사하는 것이 아니라, 검사에 맞는 형태로 데이터를 재 가공하는 과정이 필수적으로 포함된다. 그러나 MACHBASE를 사용한다면 전처리 과정을 생략할 수 있고, 학습한 모델을 바로 추론에 적용할 수 있다. 구체적으로 예를 들면, 100분전의 온도 값들을 활용하여, 10분 후의 온도를 예측하는 모델을 개발하여, 사무실 온도에 이상이 있는지 예측하는 모델을 만들어 보겠다. 모델이 잘 개발된다면, 정상 상태일때 10분후의 온도를 예측할 수 있기 때문에, 예측 온도와 실제 관측온도의 차이가 큰 경우, 사무실이 정상적인 상태를 벗어났다 라고 생각할 수 있고, 이를 다양한 영역에 적용할 수 있을 것으로 기대된다. 이를 위해 모델의 성능을 구체화 하여, 정상적인 상태 100분간 온도 예측값과 실제 온도값이 약 0.3ºC 이내로 들어오는 횟수를 기준으로 하여 그 횟수가 95회 이상이 된다면, 온도를 잘 예측하고 있다고 판단할 수 있다.

우선 모델 개발을 위한 데이터 획득을 MACHBASE의 rollup기능을 활용하여, 일정하지 않은 시간의 값을 분단위로 정제하여 온도값을 가져온다. 현재 약 79720건의 정제된 데이터를 MACHBASE를 통해서 얻을 수 있고, 얻은 데이터를 window size가 110이고 window step을 10으로 개별적인 샘플로 나눠 약 7900개의 샘플을 얻어 모델을 개발한다.

데이터 샘플 예시

Data Sample

모델은 tensorflow 라이브러리를 활용하여, 1차원 합성곱 레이어와 양방향 장단기 메모리 레이어를 사용하는 하기 모델 구조 그림의 형태로 간단한 신경망 모델을 만들고, 7900개의 샘플에 대해 학습시켜 모델을 개발한다.

모델 구조

Model Structure

상기 모델과 학습 데이터를 획득한 값을 그대로 사용하지 않고, 최대한 0과 1사이의 값으로 정규화를 하기 위해서 room temperature인 25ºC를 빼고 10으로 나눈 값으로 모든 데이터를 전처리한다. 이렇게 처리된 데이터를 이용하여 딥러닝 모델을 학습시킨다. 학습에 이용한 파라미터는 하기와 같다.

파라미터
Learning Rate0.001
Epoch1000
LossMean Absolute Error
Batch Size32

학습된 모델을 활용하여, 학습을 진행한 다음날 실시간예측을 진행했으며, 예측된 온도값과, 현재 온도값을 한개의 그래프에 그리면 아래 그림과 같은 결과를 얻을 수 있다. 좌측 그래프는 Lounge가 정상적인 상태일때의 온도 그래프로 측정 되는 온도와 예측 되는 온도의 최대 차이가 0.178ºC 미만으로 나타나고 있는 것을 확인할 수 있으며, 점심시간이라는 정상적이지 않은 상태에서 그래프를 확인하면, 측정 되는 온도와 예측 되는 온도의 차이가 눈에 띄게 나타나는 것을 확인 할 수 있으며, 그 차이가 최대 2ºC 나는 것을 확인 할 수 있다. 이를 활용하면, Lounge의 온도가 정상적인 범위를 벗어나는지 여부를 확인 할 수 있고, 또 이를 다양한 영역에 적용할 수 있을 것이다. 

Lounge Temperature Prediction Result
Lounge Temperature Prediction Result in Lunch Time

만약 현재 측정하고 있는 온도가 비닐하우스와 같은 농작물이 길러지는 장소라면, 내부 온도가 급격하게 변화한 것을 농장 주인에게 전달하여, 농작물에 발생하는 피해를 최소화 할 수 있고, 또한 온도를 측정하고 있는 곳이 제품이 생산되고 있는 공장이라면, 공장 내부 온도를 통해서 작동중인 설비의 상태에 이상이 있다고 공장 관리자에게 알람을 보낼 수 도 있을 것이다.

이처럼 Edgemaster를 이용해서 손쉽게 Sensor로 부터 측정값을 Machbase에 기록할 수 있고, Machbase에 내장된 기능들을 활용하여 손쉽게 딥러닝 모델이 학습을 할 수 있는 형태로 데이터를 가져와 딥러닝 모델을 학습할 수 있다.

추가로 개발중인 MACH AI 서비스를 활용한다면, 학습된 모델을 실시간 이상감지 서비스에 적용을 손쉽게 할 수 있고, 최소한의 비용으로 설치된 센서를 활용한 장비의 이상감지를 수행할 수 있을 것으로 기대된다.

reference

1) FFT : Fast Fourier Transform [https://kr.mathworks.com/help/matlab/ref/fft.html]

연관 포스트

Deep Anomaly Detection in Time Series (2) : 이상 감지 모델

개요 안녕하세요, 마크베이스의 Cloud개발본부 연구원 양창은입니다. 지난 게시글 Deep Anomaly Detection in Time Series (1) : Time Series Data에서는 시계열 데이터와 이상치(Anomaly)의 종류에 대해 알아보았습니다. 그리고

IIoT를 위한 Data Lake – machlake

Data Lake 란, 대규모의 다양한 원시 데이터 세트를 기본 형식으로 저장하는 데이터 리포지터리 유형입니다. 원시 데이터는 특정 목적을 위해 처리되지 않은 데이터를 뜻합니다. 산업 IoT