Machine Learning/Algorithm

Anomaly detection - 개요, 확률분포기반

고슴군 2022. 6. 25. 18:51
  • Novelty  vs  Anomaly  vs  Outlier
    • Novelty 데이터 : 데이터의 본질적인 특성은 같지만, 유형이 다른 관측치
      • 일반 호랑이가 정상 데이터라고 할 때 백호
      • 긍정의 의미를 가짐
    • Anomaly 데이터 : 대부분의 데이터와 특성이 다른 관측치
      • 일반 호랑이가 정상데이터라고 할 때 라이거 (호랑이의 특성은 갖고 있음)
      • 약간의 부정의 의미를 가짐
      • Novelty과 Anomaly를 구분하는 것은 어렵고, 이런 느낌의 차이가 있다는 것
    • Outlier 데이터 : 대부분의 데이터와 본질적인 특성이 다른 데이터
      • 일반 호랑이가 정상 데이터라고 할 때 사자
      • 큰 부정의 의미
      • 분석에 부정적 영향 미치기 때문에, 제거 후에 분석해야 함
    • 부정의 크기 : Novelty < Anomaly < Outlier
    • Novelty와 Anomaly는 detection의 대상이지, 분석할 때 제거하면 안되고, outlier의 최종 목적은 detection 후 제거하는 것
    • 굳이 나누자면 위와 같지만, 뉘앙스의 차이일 뿐이지 크게 다른 것 아님

 

  • 이상치 탐지 알고리즘
    • 이상치(Anomaly) 데이터를 탐지하기 위한 알고리즘
    • 활용 데이터는 일반적으로 다수의 정상데이터(99%, 99.99%, ...) 와 소수의 이상치 데이터로 구성 → 심한 불균형

 

  • 정확도는 높을 수 있으나 이상치 탐지에서의 올바른 지표가 아님
    • 정상을 정상으로 구분 : specification 
    • 불량을 불량으로 구분 : sensitivity → 중요할 것

 

  • 이상치 탐지 알고리즘
    • 정상 데이터로 boundary를 찾음 boundary를 찾을 때 class정보가 사용되지는 않기 때문에 unsupervised 
    • 목적은 classification
    • 이상치 탐지 알고리즘은 90%가 one-class classification 알고리즘이다. 
  • 이진 분류 알고리즘은 또 다른 class로 나누어 여러 class 로 분류 가능하지만, 이상치 탐지 알고리즘은 이상치의 유형은 알려주지 못함 → 정상이 아닌 것을 분류해내는 것

 

  • 이상치 탐지 알고리즘
    1. 정상 데이터만으로 이상치 탐지 알고리즘 학습 실행
    2. 주어진 정상 데이터의 범위를 결정하도록 학습
    3. 학습에 사용되지 않은 평가용 데이터 입력
    4. 평가용 데이터 중 정상 데이터의 범위 바깥에 위치한 관측치들은 이상치로 판별

 

  •  Type 1, Type 2 에러가 존재함. 적절하게 아울러야 함
    • 정상 데이터 중 몇 개는 외부에 있도록 허용하도록 함 → robust하게 만드는 것
    • 즉, train 데이터에서는 에러(1%, 5%, ...)가 있지만, unseen 데이터에 대비해서 너무 타이트하게 만들지 않을 것이다. 

 

  • 언제 이상치 탐지 알고리즘 사용?
    • 정상 데이터만 있고 이상치 데이터는 없는 경우 평가는 어렵고 이런 경우 많음.
      • 이상치를 인위적으로 생성해서 평가에 활용해볼 수 있을 것
      • 정상 데이터만 있으면 모델은 만들 수 있음
      • 평가는 이상치를 임의로 만들 수도 있고, 그리 멀지 않은 미래에 이상치가 나올 수도 있음
      • 포기하면 안된다는 것. 못할 이유를 찾지 말고, 할 수 있는 이유를 찾아보자.
    • 정상 데이터는 충분히 있으나 이상치 데이터가 극소수인 경우

 

  • 이상치 탐지 알고리즘 이슈
    • 정상 데이터를 정의하기 어려운 경우가 많음
    • 이상치는 탐지하나 어떤 종류의 이상치 인지는 모름 (이상치 종류 많음)
      별도의 사후분석 (post-hoc analysis) 필요
    • 해석의 문제. 이상치를 탐지 했는데, 어떤 변수 때문에 이상치로 탐지되었는지 중요 변수 찾는 것.

 

  • 이상치 탐지 사례
    • 스팸 메일 탐지
    • 차량 운행 중 수집되는 시계열 센서 데이터 중 이상 신호를 분류하는 문제
      • 여러 시점의 데이터가 하나의 데이터 포인트가 되는 경우가 많음.
      • 즉 10개의 시점, 10개의 데이터가 하나의 집합을 이루고, 그 집합이 하나의 관측치가 되는 것

  • 공사 장비의 센서 데이터를 기반으로 장비의 이상을 사전에 감지하는 문제

  • 생산 설비 간의 이동 과정에서 발생한 불량을 탐지하고, 불량의 원인을 설명하는 문제

 

  • 밀도 기반 이상치 탐지 알고리즘
    • Score : 어느 정도 이상치인지. degree
    • Threshold : 이 정도면 이상치라고 판단할 것
    • 위의 두 가지가 있어야 함

 

  • 확률분포 : 히스토그램이 연속형인 것
    • 어떠한 값이 많이 발생하고 덜 발생하는지 한 눈에 볼 수 있음
    • 정규분포 형태라고 한다면, 양 끝단은 빈도수가 적을 것이다. 
      • 확률분포의 y값 (확률값) 이 어느 정도 이하이면 outlier다 라고 할 수 있다.
      • 데이터가 우리가 알고 있는 확률분포로 표현이 된다면, 통계적으로 threshold 지정하거나 가설검정 등 할 수 있어서 좋은 경우이다. 그러나 이러한 케이스는 교과서 외에는 없다. 이론적인 이야기이다. 
      • 조금더 현실적인 경우 Mixture of GD
      • 혹은 분포 사용하지 말고, outlier 스코어링하는 LOF

 

  • 현실적으로 이렇게 나오는 데이터도 많다. 
    • 똑같은 정상이라도, 이론적으로는 같아야 하는데 설비의 브랜드 따라서, 설비가 설치된 시기에 따라서, 설비를 가동한 사람에 따라서 데이터가 다른 경우도 존재함. 
    • 모두다 정상이다. 
    • 하나의 정규 분포로 모델링 할 수 없고, 세 개의 정규 분포로 모델링

  • 중간의 살짝 낮아지는 부분도 어떻게 보면 이상치라고 할 수도 있고, 아닐 수도 있다. 이 부분에 대해서 고려할 필요가 있다
  • 뮤와 covariance matrix 추정해야함. EM알고리즘과 같은 방식들 있다. 

 

 

 

 

[참조] 김성범 교수님의 https://www.youtube.com/watch?v=TqSwuCX7Lds&t=1038s (Anomaly detection - 개요, 확률분포 기반) 을 요약한 것입니다.  

반응형

'Machine Learning > Algorithm' 카테고리의 다른 글

Anomaly detection - 1-SVM, SVDD  (0) 2022.07.02
Anomaly detection - Local Outlier Factor (LOF)  (0) 2022.06.28
Time-series forecasting at UBER  (0) 2021.03.03
Prophet  (0) 2021.02.25
Ensemble learning (Stacking)  (0) 2020.05.06