ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Week 9] Buidling an Anomaly Detection System
    Courses/Andrew Ng - Machine Learning 2022. 2. 8. 22:44

    Developing and Evaluating an Anomaly Detection System

     저번 시간에 이상 탐지 알고리즘을 개발하였고 이번 시간에는 알고리즘을 평가하는 방법을 다룹니다. 알고리즘의 성능을 수치로 평가하는 것이 개발하는 과정에 있어서 훨씬 더 좋은 방법입니다.

     지금까지는 이상 탐지 문제를 비지도 학습 문제로 취급하였으나 사실 일반적인 방법은 이상 예제와 정상 예제를 구분하는 레이블이 있는 데이터를 사용하는 것입니다. y=0은 정상, y=1은 비정상 예제를 표시합니다. 레이블이 없다면 정상 예제로 간주합니다. 

     

     

     

     다음으로 교차 검증 셋과 테스트 셋을 정의합니다. 교차 검증 셋과 테스트 셋은 이상 예제를 포함합니다. 

     

     

     구체적으로, 10000개의 정상 예제, 20개의 비정상 예제가 있다고 합시다. 그렇다면 6000개의 학습 셋, 2000개의 교차 검증 셋, 2000개의 테스트 셋으로 분리할 수 있습니다. 결함이 있는 비정상 예제는 각각 10개 씩 교차 검증 셋과 테스트 셋에 부여합니다. 

     

     

     알고리즘을 개발하고 평가하는 방법에 대해 알아봅니다. 첫번째로 학습 셋을 사용하여 p(x) 모델을 구합니다. 두번째로 테스트 셋과 교차 검증 셋에서 예측합니다. p(x)가 엡실론보다 작으면 비정상 , 크면 정상으로 생각합니다.

     이상 탐지 알고리즘은 대부분 매우 치우친 데이터 셋일 확률이 높습니다. 실제로 비정상 데이터는 매우 극소수이기 때문입니다. 항상 y=0을 예측하면 정확도는 매우 높아집니다. F1-score같은 다른 평가 지표를 사용합니다.

     

     

    Anomaly Detection vs. Supervised Learning

     

    지금까지 설명을 보자면 지도 학습 분류 문제와 유사해 보입니다. 이번 시간엔 문제의 종류에 따른 적절한 알고리즘 선택법에 대해 알아봅니다.

     

     

     

      이상 탐지 지도 학습
    데이터 셋의 이상 예제 수 이상 예제에 비해 정상 예제가 훨씬 더 많다 이상/정상 예제 모두 많다
    이상 현상 유형 많은 종류의 "비정상" 유형이 있고 새로운 유형이 생길 수 있다 새로운 유형은 탐지하기 어렵다

     

    Choosing What Features to Use

     이상 탐지 알고리즘의 성능에 변수 선택은 큰 영향을 줍니다. 변수를 설계하거나 선택하는 방법에 대해 다룹니다.

     

     먼저 주어진 데이터 셋을 확인하여 가우시안 분포를 따르는지 확인합니다. 가우시안 분포 꼴이라면 괜찮지만 대부분의 경우 그렇지 않을 확률이 높습니다. 따라서 다양한 변환 방법을 사용합니다. log 함수를 적용하거나 세제곱근, 제곱근, 상수등을 활용하여 가우시안 분포 형태로 변환합니다.

     

     

     녹색 예제는 비정상 예제이지만 x1의 그래프에서 꽤 높은 확률이므로 비정상으로 분류하지 않습니다. 따라서 이 예제를 이상 예제로 검출하기 위한 새로운 변수가 필요합니다. x2를 새롭게 설계하고 도식화합니다. 이제 녹색 예제는 x1에서는 정상 범위이지만 x2에서는 비정상이므로 이상 예제로 분류됩니다. 이렇게 새로운 변수를 찾습니다.

     

     

     데이터 센터를 모니터링하는 예제입니다. 서버가 잘 작동하는지 확인하기 위해 여러 가지 변수를 사용합니다. 일반적으로 사용자가 많다면 웹서버는 cpu부하와 네트워크 트래픽 사용량이 둘 다 높습니다. 만약 무한 루프에 갇혀서 성능이 제대로 나오지 않은 이상 현상이 발생한다면 네트워크 트래픽은 그대로지만 cpu 부하는 계속 증가하게 됩니다. 이 이상을 감지하기 위해 새로운 변수를 설계합니다. x5 = cpu load / 네트워크 트래픽으로 무한 루프가 발생한다면 x5는 매우 큰 값을 가지게 되어 문제를 탐지하는데 도움이 됩니다.


    혼자서 강의를 듣고 정리한 것이니 틀린 점이 있다면 언제든지 지적 부탁드립니다 :)

    'Courses > Andrew Ng - Machine Learning' 카테고리의 다른 글

    [Week 10] Gradient Descent with Large Datasets  (0) 2022.02.23
    [Week 9] Recommender Systems  (0) 2022.02.09
    [Week 9] Anomaly Detection  (0) 2022.02.08
    [Week 8] Applying PCA  (0) 2022.01.30
    [Week 8] Principal Component Analysis  (0) 2022.01.30

    댓글

Designed by Tistory.