Machine Learning/Algorithm

Anomaly detection - 1-SVM, SVDD

고슴군 2022. 7. 2. 15:09
  • SVM
    • 고차원의 함수로 매핑하여 분리할 수 있는 선형 식을 찾아서, original space로 project해서 비선형 식을 찾아내는 것

 

  • 정상 데이터만을 이용하여 학습
    • 정상데이터를 고차원 space로 변형하면, 정상 데이터들을 원점으로부터 멀리하는 decision boundary를 찾아내는 것
    • 고차원에서 최대한 떨어지면서, 정상데이터를 잘 아우를 수 있는 선형식을 찾아내는 것이다.
    • original로 project하면 비선형이 될 것이다.

 

  • Lagrangian primal problem 을 적용하고 미분하고 Lagrangian dual problem을 적용하여 최적화 해 계산 (강의 참조)

 

  • 최소 v*n개의 suppport vector 존재함. n은 컨트롤 못하고, v를 컨트롤해서 몇 개의 support vector를 만들지를 컨트롤 하는 것
    • regularization 하는 것이다. support vector가 아에 없도록 만들어 버리면, 실제로 불량 데이터가 들어왔을 때 감지 못할 확률 높다. 어느 정도는 에러를 허용하면서 robust한 모델 만들어주는 것

 

  • v 값을 작게 하면, 정상데이터를 다 포함해서 크사이 값이 없도록(에러가 없도록) 만듬
    • v 값이 크면 에러를 좀더 허용한다.
    • 그림은 original space인 것이고, transformed space에서 보면 직선의 모양일 것

 

  • SVDD는 고차원에서 정상데이터를 감싸는 '초구' 의 boundary를 계산하는 것
    • 어느정도 에러를 허용하기도 해서, overfitting 방지한다
    • 구가 모든 데이터를 포함하면, 나중에 어떤 데이터 들어왔을 때 항상 정상이라고 예측할 것
    • 따라서, 최대한 정상 데이터를 아우를 것인데 몇 %는 나가게 만들 것이다. 

 

 

 

  • 1-SVM과 동일한 방식으로 최적해 계산함

 

  • C가 크다는 것은 밖에 나가있는 것을 허용하지 않겠다는 뜻
  • C가 작다는 것은 어느 정도 에러를 허용하겠다는 것
  • sigma에 따라서는, sigma가 작으면 overfitting 된다. 분산이 커질수록 구의 형태라고 볼 수 있다. 

 

  • 결국 이상치냐 아니냐로 계산이 되긴 함
    • 여기서는 sign function 값을 이용하기 때문에, 이 값이 0보다 크면 정상, 0보다 작으면 비정상으로 decision 했다.
    • score가 나오지는 않지만, 여기서도 구할 수는 있다.
      • 다 거리 기반이니까, SVM-1(hyper-plane으로부터의 거리), SVDD(중심으로 부터의 거리) 를 통해서 score를 계산할 수 있다. 

 

 

 

[참조] 김성범 교수님의 https://www.youtube.com/watch?v=CjvMZmMTmQc (Anomaly Detection - 1-SVM, SVDD) 을 요약한 것입니다. 

반응형