ABOUT ME

-

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

    Density Estimation

     

     머신 러닝을 이용한 이상 탐지 문제에 대해 알아보겠습니다. 주로 비지도 학습 알고리즘에 속하지만, 지도 학습 문제와 유사한 면도 있습니다.

     

     항공기의 엔진을 제조한다고 생각해봅시다. 품질 보증 단계에서 테스트를 진행합니다. 엔진의 발열이나 진동같은 변수들을 측정합니다. 이상 탐지 문제는 엔진이 정상인지 비정상인지 탐지하는 것이 목적입니다. 녹색 데이터는 xtest로 새로운 데이터 셋입니다. 만약 다른 엔진들과 비슷한 위치에 있다면 문제가 없다고 생각해도 괜찮습니다. 반면에 xtest가 다른 엔진들과 멀리 떨어져 있다면 비정상입니다.  

     

     어떤 임의의 x 데이터가 비정상일 확률을 계산합니다. 이를 p(x)로 정의합니다. x의 확률이 어떤 특정값 엡실론보다 작다면 비정상이고 , 엡실론보다 크다면 정상입니다. p(x)가 중앙에서 멀리 떨어진다면 값은 작을 것 입니다. 이런 이상 탐지 기법의 핵심은 일반적이지 않은 변수의 위치나 행동을 포착하는 것 입니다. 대표적으로 사기 감지, 제조업, 데이터 센터 모니터링 등등의 분야에서 사용될 수 있습니다.

     

    Gaussian Distribution

     

     이번에는 이상 탐지 기법에서 사용될 가우시안 분포에 대해 알아봅니다. 정규 분포라고도 불립니다.

     

     위 그래프는 변수 x에 대한 가우시안 분포를 나타냅니다. 가우시안 분포는 종(bell) 형태의 그래프로 가운데 값이 x의 평균(μ)이고 표준편차(σ)는 곡선의 폭을 나타냅니다. 즉 x(1),x(2),,,,,x(n)과 같이 데이터 셋이 주어졌을 때, 데이터의 평균에 가까워질수록 확률이 높아집니다.  x가 평균에서 멀어지면 확률 또한 감소합니다.

     

     

     μ와 σ의 값을 알고 있다면 가우시안 분포 그래프를 그릴 수 있습니다. μ의 값이 그래프의 중심을 결정합니다. σ의 값은 중심에서 그래프가 얼마나 떨어져 있는 지를 알려줍니다. σ가 클수록 그래프의 폭은 넓어지고 높이는 낮아집니다. 이 그래프를 적분한 값은 1에 수렴합니다. 

     

     

     데이터 셋이 주어졌을 때 확률을 추론하는 법입니다. 먼저 파라미터인 μ와 σ를 구해야 합니다. μ는 평균이므로 모든 데이터 셋의 합을 데이터 셋의 크기로 나눈 값 입니다. 표준 편차 σ^2은 데이터 셋에서 평균을 빼고 제곱하여 데이터 셋의 크기로 나눈 값입니다. 이렇게 파라미터를 구한 후 가우시안 분포 그래프를 그릴 수 있습니다.

     

    Anomaly Detection Algorithm

     가우시안 분포를 적용하여 이상 탐지 알고리즘을 개발합니다.

     

     데이터 셋은 m개이고 n은 변수의 개수입니다. 각 변수별 확률 p(x)를 구합니다. p(x1),p(x2),p(x3)....p(xn). 모든 변수에 대한 확률을 구하고 곱합니다. 그 후 새로운 테스트 데이터가 비정상인지 확인하기 위해서 의심되는 변수 하나를 선택합니다. 값이 비정상적으로 크거나 작아서 비교할 수 있는 변수가 좋습니다. 그 다음 가우시안 파라미터의 값들을 최적화합니다. μ와 σ^2를 구합니다. 마지막으로 , 새로운 예제에 대한 확률 p(x)를 계산하여 엡실론과 비교합니다. 정상인지 비정상인지 판단합니다. 

     

     

     알고리즘을 적용한 예시입니다. x1에 대한 가우시안 파라미터 , x2에 대한 가우시안 파라미터를 모두 구했습니다. p(x1), p(x2) 가우시안 분포 그래프도 그릴 수 있습니다. 이 두 값을 곱한 p(x) 가 우하단의 3d 그래프입니다. 그래프의 높이가 확률을 의미합니다. 새로운 예제 x1test와 x2test에 대한 이상 탐지를 실행하고 싶습니다. 일단 엡실론은 0.02로 설정했다고 가정합니다. p(x1test)와 p(x2test)를 구하여 엡실론과 비교해봅니다. p(x1test)의 경우 엡실론보다 큰 0.0426이고 다른 예제들과 근접하여 정상일 확률이 높습니다. p(x2test)는 엡실론보다 작은 0.0021이고 다른 예제들과 떨어져 있어서 비정상일 확률이 높습니다.

     


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

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

    [Week 9] Recommender Systems  (0) 2022.02.09
    [Week 9] Buidling an Anomaly Detection System  (0) 2022.02.08
    [Week 8] Applying PCA  (0) 2022.01.30
    [Week 8] Principal Component Analysis  (0) 2022.01.30
    [Week 8] Motivation  (0) 2022.01.30

    댓글

Designed by Tistory.