Machine Learning/ 이상탐지

주의) 이 페이지에서는 공식의 유도 과정 같은 것은 정리하지 않는다. 공식의 유도 과정은 <코세라 강의> 참조.

이상탐지(Anormaly Detection)

https://www.coursera.org/learn/machine-learning/

  • 군집을 이루는 데이터 분포를 이용하여, 분포에서 멀어진 데이터를 이상(anormaly)이라고 판단하는 알고리즘.
    • 데이터에 오류가 있다는 뜻이 아니다. 군집과 멀어졌으므로 이상해 보이는 데이터를 의미한다.
  • 데이터가 이상한지 아닌지는 데이터의 밀도(Density estimation)를 추정하는 함수 P(x)를 통해 할 수 있다.
    • 이 함수는 가우시안 분포를 이용하여 계산한다. 아래 내용 참조

가우시안 분포(Gaussian Distribution)

https://www.coursera.org/learn/machine-learning/

  • 가우스 분포, 정규 분포(Normal Distribution)라고도 불린다.
  • 어떤 x 데이터에 대하여 데이터들이 가우스 분포를 따른다면, 데이터의 평균값 μ(mu)와 분산(Variance) σ2(sigma)으로 나타낼 수 있다. –분산에 루트를 씌운 σ는 표준편차(Standard Deviation)라고 한다.
    • \mu = \frac{1}{m} \sum_{i=1}^m x_i
    • \sigma^2 = \frac{1}{m} \sum_{i=1}^m (x_i - \mu)^2
  • 이것을 기호로 표현하면 다음과 같다.
    • X ~ N(\mu, \sigma^2)
  • 이것을 그래프로 그리면 위 그림과 같은데, 중심점은 μ이고 분포의 넓이는 σ가 된다.
  • 이것을 공식으로 표현하면 다음과 같다.
    • p(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi} \sigma} \exp (- \frac{(x - \mu)^2}{2 \sigma^2})
    • 그래프가 중심에서부터 exponential로 떨어지는 모습이 된다.

https://www.coursera.org/learn/machine-learning/

  • 가우스 분포에서 그래프 면적은 1이기 되기 때문에 평균값과 표준편차의 값에 따라 그래프의 모양이 달라진다.
    • σ는 기울기를 결정하는데, σ가 커지면 높이가 줄어들고, 작아지면 높아진다. 이는 전체 면적이 동일한 상태에서 기울기가 변하려면 –급격해졌다가 완만해졌다가– 높이가 달라져야 하기 때문.
      • (마치 빛의 속도가 동일하기 때문에 시간과 공간이 달라져야 하는 어떤 이론과 비슷하다)

https://www.coursera.org/learn/machine-learning/

  • 평균값과 그 차이를 구하면 분포를 그릴 수 있기 때문에, 선으로 된 데이터로도 분포를 그릴 수 있다.
    • 선으로 배치된 데이터들의 평균값과 평균값과 각 데이터의 차이를 통해 그리면 된다.
    • μ는 중심점이 되고, σ는 기울기가 된다.

이상탐지 알고리즘 절차

https://www.coursera.org/learn/machine-learning/

  • 데이터셋 x가 m개 있고, 각 x는 n개의 feature를 가지고 있다고 가정하자.
    • 이때 각 x의 동일한 feature들은 어떤 분포를 이루고 있을 것이다.
      • 예컨대 집 값이라는 데이터에서 방의 개수라는 feature는 1개, 2개, 3개 … n 개의 개수가 있을 것인데, 많은 집들은 어느 특정한 방의 개수 –예컨대 3개– 에 많이 분포해 있을 것이다.
    • 이 x의 각 feature들의 분포를 가우스 분포에 적용한 후, 모든 feature의 분포를 곱하면 최종적으로 이상을 탐지할 수 있는 분포 p(x)가 만들어진다.
      • p(x) = p(x_1; \mu_1, \sigma_1^2) p(x_2; \mu_2, \sigma_2^2)p(x_3; \mu_3, \sigma_3^2) ... p(x_n; \mu_n, \sigma_n^2)
      • p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2)
        • ∏는 모든 항의 곱을 의미하는 기호로, 모든 항의 합을 의미하는 Σ와 대비된다.
    • 이렇게 구해진 분포를 기준으로 새로운 데이터 x를 대입하여 그 값이 특정 기준 (ε) 보다 작으면 anormaly로 판단한다.
      • p(x) = \prod_{j=1}^n p(x_j; \mu_j, \sigma_j^2) = \\ \prod_{j=1}^n \frac{1}{\sqrt{2\pi} \sigma_j} \exp (- \frac{(x_j - \mu_j)^2}{2 \sigma_j^2}) < \epsilon
  • 요약하자면 이상탐지 알고리즘 절차는 다음과 같다.
    1. 평균값 μ를 구한다.
    2. 표준편차 σ를 구한다.
    3. 모든 데이터의 feature들을 가우스 분포에 적용한다.
    4. 적용한 함수를 모두 곱한 최종 p(x)를 만든다.
    5. 새로운 데이터를 p(x)에 적용하여 ε보다 작은지 아닌지를 기준으로 anormaly를 판단한다.

다변량 가우시안 분포(Multivariate Gaussian Distribution)

https://www.coursera.org/learn/machine-learning/

  • 만일 데이터의 분포가 위의 이미지와 같은 상태에서, 특정 데이터가 좌상단이나 우하단에 존재하는 경우, 일반적인 가우시안 분포로는 이상을 발견할 수 없다.
  • 이런 것을 해결하기 위해 다변량 가우시안 분포를 사용하는데, 여기서는 n x 1 벡터의 μ와, n x n 의 행렬인 Σ를 이용한다. 이때 Σ는 공분산 행렬을 의미한다.
    • 합을 나타내는 Σ가 아니니 유의. 강의에서도 자세한 설명은 안하고 이런 것이 있다고 하고 공식만 설명하므로 자세한 설명은 생략.
    • p(x; \mu, \Sigma) = \frac{1}{(2\pi)^{\frac{n}{2}} |\Sigma|^{\frac{1}{2}}} \exp (- \frac{1}{2} (x - \mu)^T \Sigma^{-1} (x - \mu))
  • 아래는 μ가 2 x 1, Σ가 2 x 2 일 때, 각 파라미터 값에 따른 변화를 나타내는 것이다.

  • Σ의 대각선 값이 1인 것이 기본인데, 그 값이 1보다 작아지면 뾰족해지고, 1보다 커지면 완만해진다.
    • 전체 면적의 합이 1이 되어야 하기 때문

  • Σ의 대각선 값의 크기에 따라 어느 축으로 넓어지느냐가 달라진다.

  •  Σ의 나머지 값들은 일종의 회전처럼 작용한다. 값이 양수냐 음수냐에 따라 회전 방향이 달라지고, 크기에 따라 뾰족함이 달라진다.

  • μ는 데이터 분포의 중심을 이동 시킨다.
[ssba]

The author

지성을 추구하는 디자이너/ suyeongpark@abyne.com

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.