Machine Learning/Algorithm

Anomaly detection - 밀도 기반 이상치 탐지 (Gauss, MoG, Parzen window)

고슴군 2022. 7. 5. 12:13
  • 목적
    • 주어진 데이터를 바탕으로, Gaussian을 가정하여, 각 객체들이 생성될 확률을 추정
    • 새로운 데이터가 생성될 확률이 낮을 경우 이상치로 판단
    • 학습 : 주어진 정상 데이터들을 통해 가우시안 분포의 평균 벡터와 공분산 행렬을 추정
    • 테스트 : 새로운 데이터에 대하여 생성 확률을 구하고 이 확률이 낮을수록 이상치에 가까운 것으로 판정함

 

 

  • 장점
    • 추정이 간단하며 학습시간이 짧음 (mu와 sigma만 추정하면 됨)
    • 적절한 기준치(cut-off)를 분포로부터 정할 수 있음
      • 정상 데이터의 95% 를 정상이라고 판단하기 위해서, cut-off를 어떻게 가져가야 하는지에 대해서 정확하게 대답할 수 있음
    • 각 변수의 측정 단위에 영향을 받지 않음
      • 어떤 센서는 100단위, 어떤 센서는 0.0x 단위일 때
      • 공분산 행렬을 사용해서 자동적으로 정규화되기 때문에 굳이 정규화하지 않아도 됨

 

  • Gaussian Density Estimation
    • 정상 데이터 생성 확률을 최대화 하도록 평균과 분산을 계산하는 것이 가능 (Analytically tractable)
    • 최대 우도 추정법을 이용
    • 다변량인 경우 평균 벡터와 공분산 행렬을 계산

 

  • Mixture of Gaussian (MoG) Density Estimation
    • Gaussian Density Estimation
      • 데이터의 분포에 대해 매우 강한 가정을 가지고 있음 - Unimodal Gaussian
    • MoG
      • 데이터는 여러 개의 가우시안 분포의 혼합으로 이루어져 있음을 허용
      • 이 가우시안 분포들의 선형 결합으로 전체 데이터의 분포를 표현

 

  • 공분산 행렬에 따른 MoG 모양

 

  • 실습 예제 : 변수 4개인 경우 (bearing 1~4)
  • Gaussian Density estimation
    • Shape of mu : (4,)
    • Shape of cov : (4,4)
    • 봉우리 한개인 gaussian density 를 추정함. 그러기 위해서 각 변수마다 mu가 있어야 하고, 각 변수끼리 covariance 있어야 함
  • Mixture of Gaussian Density Estimation
    • hyper-parameter : 가우시안 분포의 개수. 봉우리의 개수를 지정하는 것이다
    • 가우시안 분포 개수를 3이라고 했을 때
      • Shape of mu : (3, 4)
      • Shape of cov : (3, 4, 4)
      • 각 봉우리마다 mu 4개와 covariance (4, 4) 가 존재함

 

  • 센서값이 여러 개의 stage를 갖고 있는 경우에는 mixture가 바람직 할 것이다.
    • 하지만 stage가 몇 개일지에 대해서 가우시안 분포의 개수를 정해주어야 한다.
  • 센서값이 정적이다가 한번 튀기는 것을 detect하기 위해서는 가우시안 1개도 충분할 것. 

 

  • Kernel-density Estimation
    • 데이터가 특별한 분포(예: 가우시안)을 갖는다는 가정 없이 주어진 데이터로부터 주변부의 밀도를 추정하는 방식

 

 

[참조] 강필성 교수님의 https://fastcampus.co.kr/data_academy_kps1 강의 자료를 참조했습니다. 

반응형