Anomaly detection

Anomaly detection이란?

데이터에서 예기치 않은 이벤트 또는 패턴을 감지하는 알고리즘 설계

Anomaly detection은 예상 동작에서 벗어난 데이터의 이벤트 또는 패턴을 식별하는 공정입니다. 이상이란 주로 기계 결함, 보안 침해 또는 공정의 비효율성 같은 중요한 동작을 나타냅니다.

Anomaly detection의 이점

Anomaly detection 방법은 단순한 이상값 감지부터 대규모 다변량 데이터셋의 숨겨진 패턴을 발견하도록 훈련된 복잡한 머신러닝 알고리즘까지 다양할 수 있습니다. 예를 들어, 수천 개의 센서를 사용하는 산업 환경에서 시계열 anomaly detection 알고리즘을 사용하면 사람이 수작업으로는 식별하기 불가능한 패턴을 발견할 수 있습니다. Anomaly detection의 활용 사례와 이점은 다음과 같습니다.

  • 예측 정비: 진동 데이터나 온도 데이터 같은 센서 장비 출력의 이상은 더욱 심각한 고장의 전조일 수 있습니다. 이러한 이상을 조기에 해결하면 장비 안전성을 개선하고 비용이 많이 드는 가동 중단 시간을 피할 수 있습니다.
  • 공정 모니터링: 전력망에서 에너지의 이상을 감지하는 것과 같은 공정 데이터의 anomaly detection은 성능을 최적화하고 자산 가용성을 개선할 수 있는 기회를 제공합니다.
  • 테스트 데이터 인사이트: 테스트 단계에서 anomaly detection를 사용하여 프로토타입 내 문제를 식별하고 불량 센서 판독값을 제거하며 시스템 성능을 이해할 수 있습니다. 이 접근법을 통해 운영 전에 제품이 중요 표준을 충족하도록 할 수 있습니다.
  • 품질 관리: 제조에서 이상은 기존 방법으로는 파악할 수 없는 생산 라인의 물리적 결함을 나타낼 수 있으므로 낭비를 최소화하고 수율을 최적화할 수 있습니다.

엔지니어를 위한 anomaly detection 개요

이상이란 예상 동작에서 벗어난 동작을 가리키며, 검사만으로는 이상 이벤트나 패턴을 식별하기가 어려울 수 있습니다. Anomaly detection 알고리즘은 그러한 예상 밖의 동작을 찾을 수 있습니다. 하드웨어 시연을 통해 그 방법을 알아보세요.

이상의 유형

시계열 데이터의 이상은 일반적으로 다음의 세 가지 주요 범주로 분류됩니다.

점 이상(또는 이상값)은 예상 범위를 벗어나는 개별 데이터 점입니다. 하나의 고립된 점 이상이 조사가 필요한 문제 또는 시스템 변경이 있다는 것을 의미할 수 있으나, 여러 개의 점 이상이 연속으로 발생하지 않는다면 문제가 있다는 것을 의미하지 않을 수도 있습니다.

한 무리의 데이터 점이 예상 패턴을 함께 벗어나는 경우 집단 이상이 발생합니다. 예를 들어, 일련의 불규칙한 전력 소비량 변동은 부품의 고장이나 사용 패턴의 변화와 같은 큰 문제가 발생했음을 나타내는 것일 수 있습니다.

다변량 이상은 여러 데이터 소스를 함께 분석하는 경우에만 발생합니다. 예를 들어, 화학 공정의 온도 및 압력 판독값은 각각은 안전한 동작 조건을 나타낼 수 있지만, 값들의 관계에 변화가 있을 경우 이는 문제가 발생했다는 신호일 수 있습니다.

기타 데이터 유형에서의 이상

영상, 비디오, 텍스트 등의 기타 데이터 유형에 대한 anomaly detection에 대해 알아볼 수 있습니다.

MATLAB을 사용한 anomaly detection

MATLAB®에는 시계열 anomaly detection 알고리즘을 설계하는 다양한 방법이 있습니다. 주어진 응용 사례에 어떤 anomaly detection 접근법이 가장 적합할지는 사용 가능한 이상 데이터의 양에 따라, 그리고 정상 데이터로부터 이상을 구분할 수 있는지에 따라 달라집니다.

예측 정비의 시계열 anomaly detection 기법

통계 및 AI 기법을 사용해 시계열 센서 데이터에서 이상을 감지하는 방법을 학습할 수 있습니다.

데이터 액세스 및 탐색

모든 anomaly detection 프로젝트의 기초는 데이터입니다. MATLAB에서는 로컬 또는 클라우드에 저장된 과거 데이터셋을 가져오거나 센서 또는 데이터베이스에서 직접 데이터를 수집하는 등 다양한 데이터 액세스 방법을 지원합니다.

때로는 데이터를 들여다 보는 것만으로도 anomaly detection을 수행할 수 있습니다. 예를 들어, 팬에서 수집한 신호를 보여주는 아래 그림을 보면 팬 동작에서의 이상을 나타내는 급격한 신호 변화를 손쉽게 확인할 수 있습니다. 육안으로 이상을 감지할 수 있다면 findchangepts 또는 controlchart 같은 간단한 알고리즘을 사용할 수 있을 것입니다.

모터 전압, 팬 속도, 온도 데이터를 보여주는 anomaly detection의 MATLAB 플롯.

MATLAB plot 함수를 사용하여 만든 육안으로 쉽게 감지할 수 있는 이상을 보여주는 냉각 팬 데이터.

데이터 전처리 및 특징 엔지니어링

이상은 원시 데이터에서 시각적으로 감지하기 힘든 경우가 많습니다. 오늘날의 복잡한 기계들은 수천 개의 센서를 내장할 수 있으며, 때에 따라서는 다수의 센서를 한꺼번에 검토할 때만 이상이 명확해집니다. 레이블 지정 데이터가 있다면 시간 및 주파수 영역 특징의 통계적 분포를 살펴볼 수 있습니다. 정확한 시계열 anomaly detection 알고리즘을 훈련시킬 가능성이 가장 높은 기타 특징과 비교하여 분산이 가장 크거나 상관관계가 가장 낮은 특징을 식별하는 데에도 비지도 특징 순위 지정을 적용할 수 있습니다.

Predictive Maintenance Toolbox™진단 특징 디자이너를 사용하면 시계열 데이터에서 특징을 대화형 방식으로 추출하고 분석하며 순위를 지정할 수 있습니다.

Anomaly detection를 위한 앱 사용의 스크린샷으로, 특징 순위를 나타내는 막대 그래프와 확률을 나타내는 히스토그램이 표시되어 있습니다.

진단 특징 디자이너 앱을 사용한 정상 3축 진동 데이터의 특징 추출, 탐색 및 순위 지정. (MATLAB 코드 보기.)

Anomaly detection 알고리즘 설계

Anomaly detection 알고리즘은 과거 데이터에 통계적 방법 적용 또는 신규 데이터의 이상 감지를 위한 AI 모델 훈련을 수반할 수 있습니다. MATLAB은 통계 및 거리 기반 방법, 단일 클래스 AI 모델, 군집화의 세 가지 카테고리로 분류되는 다양한 시계열 anomaly detection 접근법을 제공합니다. 이 모두는 anomaly detection 알고리즘 설계 시 사용할 수 있는 툴이지만, 어디서 시작하는지는 보유하고 있는 데이터와 목표에 따라 다릅니다.

아래 표에는 서로 다른 다양한 카테고리의 anomaly detection 방법을 사용해야 할 시점에 대한 전반적인 개요와 MATLAB 함수의 예가 나와 있습니다. 이 표는 포괄적인 목록이 아니며 최상의 결과를 얻으려면 다양한 기법을 시도해야 합니다.

Anomaly detection 접근법

카테고리 함수의 예 사용 시점
통계 및 거리 기반 방법 isoutlier, findchangepts, matrixProfile, robustcov, mahal
  • 많은 양의 정상 데이터가 있고 이상이 일부 섞여 있는 경우.
  • 데이터에서 이상을 찾으려는 경우.
  • 간단하고 쉽게 설명할 수 있는 접근법을 원하는 경우.
단일 클래스 AI 모델

ocsvm, iforest, rccforest, lof, deepSignalAnomalyDetector

  • 많은 양의 정상 데이터가 있고 이상이 거의 없는 경우.
  • 새로운 데이터에서 이상을 감지하도록 AI 모델을 훈련시키려는 경우.
군집화 방법 kmeans, dbscan, clusterdata, fitgmdist
  • 정상 데이터와 이상이 균형 있게 섞여 있는 경우.
  • 데이터를 식별 가능한 군집으로 분류하려는 경우.

통계 및 거리 기반 방법

통계 및 거리 기반 anomaly detection 방법은 기본 데이터 분포에 대한 가정을 활용합니다. 이 방법에서는 예상 동작에서 크게 벗어나는 데이터 점을 파악하여 이상을 식별합니다. 이러한 방법에는 다음이 포함됩니다.

  • 이상값 및 변화 지점 감지: 이상값 감지는 예상 임계값을 벗어난 개별 데이터 점(예: 비정상적으로 높거나 낮은 값)에 플래그를 지정합니다. 변화 지점 감지는 평균이나 분산에서의 급격한 변동과 같이 데이터의 통계적 속성에서 변화를 식별합니다. 이는 점 또는 집단 anomaly detection에 유용한 방법으로, 데이터를 이해하거나 정리하는데 도움이 되지만, 미묘한 동작 변화를 포착할 만큼 강력하지 않을 수 있습니다.
  • 행렬 및 거리 프로파일링: 거리 프로파일행렬 프로파일 계산은 시계열 데이터를 분석하여 모티프(반복 패턴)와 디스코드(희귀 또는 이상 패턴)를 발견하는 anomaly detection 방법입니다. 이러한 기법은 데이터 세그먼트를 비교하여 장기 시계열의 집단 이상을 감지하는 데 특히 유용하며 매우 연산 효율적입니다.
  • 로버스트 공분산: 로버스트 공분산은 데이터의 분포를 모델링하여 등고선을 벗어난 점을 감지합니다. 이 기법에서는 변수 간 관계를 고려하므로 여러 특징의 편차로 다변량 이상이 동시에 발생하는 데이터셋의 anomaly detection에 효과적입니다.
  • 마할라노비스 거리: 마할라노비스 거리는 데이터 점이 다변량 분포의 중심에서 떨어져 있는 거리를 측정합니다. 이 기법은 특히 특징이 상관 관계에 있는 데이터셋의 다변량 이상을 감지하는 데 적합합니다.

Anomaly detection에 distanceProfile 적용. 거리 프로파일은 쿼리 서브시퀀스(빨간색)와 시계열의 기타 모든 서브시퀀스 간의 거리를 계산하여 가장 유사한 패턴(모티프)과 가장 상이한 패턴(디스코드)을 식별합니다. (MATLAB 문서 보기.)

단일 클래스 AI 모델

단일 클래스 모델은 대부분 또는 모든 데이터가 “정상”(이상 아님)인 비지도 anomaly detection를 위해 고안되었습니다. 이러한 단일 클래스 anomaly detection 모델은 머신러닝 기반 또는 딥러닝 기반일 수 있으며, 정상 데이터로 훈련되고, 정상에서 벗어난 모든 값은 이상으로 플래그가 지정됩니다. 단일 클래스 모델은 이상이 희소하거나 잘 정의된 패턴이 부족하고 훈련에 사용할 정상 데이터를 많이 보유한 경우에 가장 적합합니다. 이 기법은 점, 집단 또는 다변량 이상에 적용할 수 있습니다.

MATLAB에서 anomaly detection를 위해 가장 널리 사용되는 단일 클래스 AI 모델은 다음과 같습니다.

  • 격리 포레스트: 격리 포레스트는 각 관측값을 리프로 격리하는 트리를 구축하며, 이상 점수는 표본에 대한 평균 깊이로서 계산되고 이상 표본은 결정의 수가 정상 표본보다 적습니다. 이 anomaly detection 방법은 숫자형과 범주형이 혼합된 특징을 지원하며, 고차원 데이터에 효과적입니다.
  • 단일 클래스 서포트 벡터 머신: 단일 클래스 서포트 벡터 머신은 고차원 특징 공간에서 정상 데이터 점 주위에 경계를 만들어 경계 외부의 점과 구분하고 이를 이상으로 분류합니다. 이 접근법에는 입력값으로 숫자형 특징이 필요하며, 고차원 데이터에는 그다지 효과적이지 않습니다.
  • 오토인코더: 오토인코더는 정상 데이터로 훈련된 신경망으로서, 원래 입력값의 복원을 시도합니다. 훈련된 오토인코더는 정상 입력값을 정확하게 복원하지만, 입력값과 복원된 값 간 차이가 큰 경우에는 이상이 있는 것입니다. 오토인코더는 컨벌루션 신경망 또는 장단기 기억 신경망을 사용할 수 있습니다. Signal Processing Toolbox™는 이러한 딥러닝 방법을 적용할 수 있는 deepSignalAnomalyDetector 객체를 제공합니다.
3개 채널에 대한 진동 데이터의 이전과 이후를 보여주는 anomaly detection에 대한 MATLAB 플롯의 스크린샷.

3축 진동 데이터에서 감지된 다변량 이상의 예제. 여기에서 정비 직전에 수집된 데이터는 이상으로 식별되지만, 정비 직후에 수집된 데이터는 정상입니다. (MATLAB 코드 보기.)

군집화

데이터에 이상이 섞여 있지만 레이블을 지정할 수 없을 때는 anomaly detection에 비지도 군집화 접근법을 시도할 수도 있습니다. 군집화 알고리즘은 특성을 기반으로 유사한 데이터 점을 그룹화합니다. 일반적으로 군집화 방법은 주성분과 같은 시계열 데이터에서 추출한 특징에 적용됩니다. 때에 따라서는 정상 및 이상 데이터의 군집을 연결할 수 있지만, 데이터셋이 균형을 이루지 않으면(즉 동일 유형의 여러 이상이 포함되지 않으면), 단일 클래스 AI 방법이 유용한 결과를 도출할 가능성이 큽니다.

MATLAB을 사용한 손쉬운 k-평균 군집화

데이터 군집화 라이브 편집기 작업 기능으로 k-평균 군집화를 적용할 수 있습니다.

테스트 및 검증

테스트 및 검증을 통해 anomaly detection 모델이 처음 보는 데이터에 대해 정확하고 안정적으로 작업을 수행할 수 있습니다. 이 공정에는 일부 레이블이 지정된 이상 데이터가 필요하며 이러한 데이터는 구하기 어려울 수 있습니다. 이상 데이터가 부족한 경우 규칙 기반 방법(예: 잡음 또는 스파이크 추가)을 사용하거나, 시스템의 물리 기반 Simscape™ 모델로부터 합성 시계열 데이터를 생성할 수 있습니다. 또는 synthesizeTabularData를 사용하여 추가적인 테이블 형식 특징 데이터를 생성할 수 있습니다.

엔지니어는 일반적으로 데이터를 훈련 세트, 검증 세트, 테스트 세트로 나눕니다. 훈련 세트는 모델에 정상 동작을 가르치고, 검증 세트는 훈련 단계에서 모델을 조정하고, 테스트 세트는 최종 성능을 평가합니다. 정밀도, 재현율, F1 점수, ROC-AUC와 같은 성능 메트릭은 모델의 이상 감지 성능을 평가합니다. 강인성 테스트는 잡음이 있거나 불완전하거나 처음 보는 데이터 패턴에서 모델을 평가하여 신뢰성을 추가로 보장합니다.

배포

C/C++ 코드 또는 Simulink 블록을 생성하여 실시간 anomaly detection를 위한 임베디드 기기에 알고리즘을 배포할 수 있습니다. 모델이 새로운 데이터로부터 계속 학습하기를 원하는 경우 증분 anomaly detection를 적용할 수도 있습니다. 여기서 수신 데이터는 데이터에 대한 정보가 거의 또는 전혀 없는 상태에서 처리되며 알고리즘은 실시간으로 변경 사항에 맞게 조정됩니다.

전사적 데이터에서 운영하기 위해 anomaly detection 알고리즘을 원하는 클라우드 환경에 배포할 수도 있습니다.