Anomaly Detection

예상외의 이벤트 및 정상 동작에서 벗어난 동작 식별

Anomaly detection은 예상 동작과 다른 이벤트 또는 패턴을 식별하는 공정입니다. Anomaly detection은 단순한 이상값 감지부터 수백 개의 신호에 걸쳐 숨겨진 패턴을 발견하도록 훈련된 복잡한 머신러닝 알고리즘까지 다양할 수 있습니다.

엔지니어와 데이터 과학자들은 anomaly detection을 사용하여 다음과 같은 이상을 식별합니다.

  • 예측 정비에서 기계의 결함
  • 제조업 생산 라인의 결함
  • 방사선 영상에서 암
  • 금융 거래에서 사기
  • 소매업계의 고객 이탈
  • 비디오 감시 동영상에서 특이한 움직임

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

Anomaly detection의 첫 단계는 현재 보유한 데이터를 점검하는 것입니다. 다음과 같은 질문을 고려해 보십시오.

원시 데이터에서 이상을 볼 수 있나요?

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

쉽게 발견할 수 있는 이상을 보여주는 냉각 팬 데이터의 MATLAB 플롯.

그림 1: 쉽게 발견할 수 있는 이상을 보여주는 냉각 팬 데이터의 MATLAB 플롯.

도출된 특징에서 이상을 볼 수 있나요?

이상은 원시 데이터에서 시각적으로 감지하기 어려운 경우가 많습니다. 아래 신호를 보면 어느 시간 영역 신호에 이상이 있는지를 파악하기가 쉽지 않습니다. 그러나 주파수 영역에서 데이터를 볼 수 있도록 파워 스펙트럼을 만들면 피크의 주파수 및 크기 차이를 통해 두 신호가 상당히 다르다는 사실이 명확히 보입니다. 이와 같은 경우에는 지도 학습 방법에 기반하여 이러한 피크를 anomaly detection 알고리즘에 대한 특징 입력값으로 사용할 수 있습니다.

원시 시계열 신호에서는 이상이 시각적으로 불분명하지만(왼쪽) 주파수 영역에서 데이터를 보면(오른쪽, MATLAB에서 주기도 사용) 피크 주파수의 차이가 명확합니다.

그림 2: 원시 시계열 신호에서는 이상이 시각적으로 불분명하지만(왼쪽) 주파수 영역에서 데이터를 보면(오른쪽, MATLAB에서 주기도 사용) 피크 주파수의 차이가 명확합니다.

정상 특징과 이상 특징을 통계적으로 분리할 수 있나요?

이상이 단일 신호에서 항상 명확한 것은 아닙니다. 오늘날의 복잡한 기계들은 수백 개의 센서를 내장할 수 있으며, 때에 따라서는 여러 센서를 한꺼번에 검토할 때만 이상이 명확해집니다. 레이블 지정 데이터가 있다면 그림 3에서처럼 시간 및 주파수 영역 특징의 통계적 분포를 살펴볼 수 있습니다. 또한 특징 변환과 순위 지정을 수행하여 두 그룹을 가장 잘 분리하는 특징을 식별할 수도 있습니다. 그 후에는 이러한 특징을 사용해서 anomaly detection 알고리즘을 레이블 지정 데이터에 대해 지도 학습으로 훈련시킬 수 있습니다.

왼쪽의 MATLAB 플롯은 정상 및 이상 데이터의 짝을 각각 파란색과 빨간색으로 나타냅니다. 오른쪽에서는 여기에 상응하는 진단 특징 디자이너의 특징 히스토그램은 어느 특징이 지도 anomaly detection 알고리즘에 쓰일 정상 및 이상 데이터를 명확히 분리하는지 식별하는 데 사용됩니다.

그림 3: 왼쪽의 MATLAB 플롯은 정상 및 이상 데이터의 짝을 각각 파란색과 빨간색으로 나타냅니다. 오른쪽에서는 여기에 상응하는 진단 특징 디자이너의 특징 히스토그램은 어느 특징이 지도 anomaly detection 알고리즘에 쓰일 정상 및 이상 데이터를 명확히 분리하는지 식별하는 데 사용됩니다.

이상이 어떤 모습인지 모를 때는 어떻게 해야 하나요?

기계 가동 중단 시간은 비용 소모가 크므로 운영자는 보수적인 정비 일정으로 문제를 예방하려는 경우가 많습니다. 이는 이상 발생이 드물어 anomaly detection 알고리즘 설계가 까다로움을 의미할 수 있습니다.

여러 anomaly detection 알고리즘 설계 접근법은 이상 데이터가 거의 또는 전혀 필요하지 않습니다. 이렇게 “정상값만 사용한” 방법은 정상 데이터에 대해서만 알고리즘을 훈련시키며, 이러한 정상 이외의 데이터를 이상으로 식별합니다.

MATLAB을 사용하면 다음과 같이 정상값만 사용한 anomaly detection 접근법을 데이터에 적용할 수 있습니다.

  • 임계값 적용. 임계값 적용은 데이터가 통계 메트릭의 임계값을 초과할 때 이상을 식별합니다. 그러한 예로는 시계열 데이터의 최근 윈도우에 대한 표준편차, 신호에 대한 관리도 사용, 변화 지점 감지로 신호의 급격한 변화 찾기, 또는 데이터 분포의 견고한 추정치 얻기 및 분포의 가장자리에서 표본으로 이상 식별하기 등을 꼽을 수 있습니다. 통계 메트릭의 임계값 적용은 분명 괜찮은 첫걸음일 수 있지만, 이 접근법은 다변량 데이터에 적용하기가 더 어렵고 anomaly detection에 머신러닝으로 접근할 때보다 덜 견고합니다. 이상값에 대해 견고한 통계 추정치는 로버스트 공분산처럼 더 나은 결과를 생성합니다.

  • 단일 클래스 서포트 벡터 머신. 단일 클래스 서포트 벡터 머신은 클래스 간의 거리를 극대화하는 분리 초평면을 식별합니다. 1개 클래스만 훈련시키면 정상으로 간주될 수 있는 하나의 데이터 모델이 생성되며, 따라서 훈련에 사용할 레이블 지정된 이상 없이도 이상을 감지할 수 있습니다. 이 접근법과 그 외의 거리 기반 방법은 숫자형 특징이 입력값으로서 필요하며, 고차원 데이터에는 그다지 효과적이지 않습니다.

  • 격리 포레스트. 격리 포레스트는 각 관측값을 리프로 격리하는 트리를 구축하며, 이상 점수는 표본에 대한 평균 깊이로서 계산되고 정상 표본은 결정의 수가 이상 표본보다 적습니다. 이 방법은 숫자형과 범주형이 혼합된 특징을 지원하며, 고차원 데이터에 효과적입니다.

  • 오토인코더. 오토인코더는 정상 데이터에 대해 훈련되는 신경망으로서, 원래 입력값의 복원을 시도합니다. 훈련된 오토인코더는 정상 입력값을 정확히 복원합니다. 입력값과 복원된 값의 차이가 크면 이상이 발생한 것일 수 있습니다. 오토인코더는 신호 및 영상 데이터 모두에 대해 사용될 수 있습니다.

오토인코더는 입력값을 복제하기 위해 훈련됩니다. 입력값과 복원된 값의 차이는 신호 또는 영상 데이터의 anomaly detection에 사용될 수 있습니다.

그림 4: 오토인코더는 입력값을 복제하기 위해 훈련됩니다. 입력값과 복원된 값의 차이는 신호 또는 영상 데이터의 anomaly detection에 사용될 수 있습니다.

데이터에 이상이 있지만 레이블을 지정할 수 없을 때는 anomaly detection에 비지도 군집화 접근법을 시도할 수도 있습니다. 때에 따라서는 군집을 정상 및 이상 데이터에 연결할 수 있지만, 데이터셋이 균형을 이루지 않으면(동일 유형의 여러 이상이 포함되지 않으면) 정상값만 사용한 방법이 유용한 결과를 도출할 가능성이 큽니다.

Anomaly detection 알고리즘을 적용하기 전에는 원시 데이터로부터 특징을 추출해야 하는 경우가 많습니다. MATLAB은 신호, 영상 및 텍스트 데이터로부터 특징을 추출할 때 수작업 방법과 자동화된 방법을 모두 지원합니다. Predictive Maintenance Toolbox™진단 특징 디자이너를 사용하면 여러 유형의 신호로부터 특징을 추출할 수 있습니다.

요점

  • Anomaly detection은 이상값, 정상에서 벗어난 동작 및 예상외의 동작을 식별하는 데 유용합니다.
  • 이상을 포함한 레이블 지정 데이터가 충분하다면 지도 학습을 anomaly detection에 적용할 수 있습니다.
  • 보유한 데이터가 대부분 정상 데이터라면 정상값만 사용하는 특화된 anomaly detection 접근법 중 하나를 적용할 수 있습니다.

MATLAB을 사용한 영상의 객체 결함 검출

영상 기반 anomaly detection 알고리즘을 구축하기 위해서는 다음을 할 수 있습니다. 1) 사전 훈련된 AlexNet 컨벌루션 신경망을 통해 영상 입력, 2) 첫 번째 계층 이후의 신경망 활성화를 특징으로 사용, 3) fitcsvm으로 단일 클래스 서포트 벡터 머신 훈련 단일 클래스 SVM은 정상 영상에 대해 훈련되며, 음성 분류 점수는 이상을 나타냅니다. 아래 예제에서는 훈련된 모델이 표면 결함이 있는 육각 너트 4개를 올바로 식별한 모습을 볼 수 있습니다. 이 예제에서 시도해 보십시오.

MATLAB을 사용한 영상의 객체 결함 검출

참조: Statistics and Machine Learning Toolbox™, Predictive Maintenance Toolbox™, Image Processing Toolbox™, Deep Learning Toolbox™, 오토인코더, 특징 선택, 특징 엔지니어링, 머신러닝 모델, 머신러닝이란?, SVM (서포트 벡터 머신), 예측 정비, 상태 모니터링, 컴퓨터 비전