[Statistics] Density Estimation

qw4735·2022년 12월 20일
0

Statistics

목록 보기
2/5

Density Estimation(밀도 추정)이란?

확률 밀도 추정이란? 관측된 데이터로부터 변수가 가질 수 있는 모든 값의 확률을 추정하는 것.
확률 밀도 추정 방법은 Parametric과 Non-parametric 두 가지 방법으로 구분할 수 있다.

1. Parametric

관측된 데이터를 바탕으로 관심 대상인 확률 변수가 특정 분포를 따른다는 가정 하에 확률밀도를 추정하는 방법.(데이터에 대한 확률분포를 미리 정하고, 그 확률 분포의 모수를 추정하는 방법)

  • 첫번째, 관심 대상인 확률 변수의 분포를 우리가 이미 알고 있는 분포 중에서 하나를 가정
  • 두번째, 관측된 데이터로부터 앞에서 정한 분포의 모수를 추정

이처럼 데이터로부터 모수를 구함으로써 분포를 추정하는 방법을 '모수 추정법'이라고 한다.

=> 가우시안 밀도 추정, 혼합 가우시안 밀도추정(GMM)

2. Non-Parametric

비모수 추정법은 특정 분포를 가정하지 않기 때문에 모수를 구하지 않고도 확률밀도를 추정할 수 있는 방법. (데이터로 확률밀도함수를 추정하려는 방법)

  • 대표적인 방법으로, 히스토그램이 있다.
    데이터로부터 히스토그램을 구한 후 정규화하여 확률 밀도 함수를 도출한다. 그러나, 히스토그램 기반 밀도 추정 방법은 아래와 같이 한계점이 존재한다.
    • 계급구간(bin)의 경계가 불연속적(discrete)
    • 계급구간(bin)의 시작 위치에 따라 히스토그램(분포)가 달라짐
    • 계급구간(bin)의 크기에 따라 히스토그램(분포)가 달라짐
    • 고차원 데이터에 대해서는 메모리 문제 등으로 사용이 어려움

=> 커널 밀도 추정

reference : https://sungkee-book.tistory.com/2

1-1) Gaussian Density Estimation

데이터가 하나의 정규분포를 따른다고 가정하고 사용하는 방법론

<장점>

  • 1) 데이터를 스케일링하는데 민감하지 않음
  • 2) 식 자체가 주어져 있기 때문에 추가적인 분석이 가능
    즉, p(X)를 미분을 하는 등 여러 방법을 사용해 최적을 임계값을 분석적으로 계산 가능

reference : https://jayhey.github.io/novelty%20detection/2017/11/02/Novelty_detection_Gaussian/

1-2) Mixture of Gaussain Density Estimation

하나의 가우시안 분포만으로 설명하게에 데이터가 더 복잡한 경우, 가우시안 혼합 모델을 이용하여 분포를 추정한다.

<특정 데이터가 4개의 혼합 가우시안 분포를 따른다고 가정한 케이스>
만약 1개의 가우시안 분포로 추정한다고 하면, 혼합 가우시안 분포보다 더 설명력이 낮은 분포가 그려질 것을 알 수 있다.

  • Gaussian Mixture Model(GMM) : K개의 서로 다른 Gaussian 분포의 가중합

    p(x)p(x) = k=1KπkN(xμk,Σk),0πk1,  k=1Kπk=1\sum_{k=1}^{K}\pi_{k}N(x|\mu_{k}, \Sigma_{k}), \quad 0 \leq \pi_{k} \leq 1, \; \sum_{k=1}^{K}\pi_{k} = 1
    θ\theta = {πk,μk,Σk}\{\pi_{k}, \mu_{k}, \Sigma_{k}\} , πk\pi_{k} : 각 가우시안 분포의 가중치, 임의의 샘플이 k번째 가우시안 분포(k번째 cluster)에 속할 확률

  • 혼합 가우시안 분포의 특징
    - 여러 개의 가우시안 분포로 확정
    - 정규분포들의 선형 조합으로 만들어짐
    - 단일 가우시안 분포보다 작은 bias를 가지고 있음. 그러나, 학습에 더 많은 데이터가 필요.

  • 혼합 가우시안 모델의 분포 추정 방법?
    -> 단일 가우시안 분포는 convex하기 때문에 하기 때문에 최대가능도 추정법을 이용해 최적값을 찾아낼 수 있었다. 그러나 혼합 가우시안 모델은 convex하지 않아 정해진 최적값을 한 번에 찾을 수 없기 때문에 직접적으로 MLE를 적용하긴 어렵고, 휴리스틱 기법들로 풀어나가야 한다.

reference: https://jayhey.github.io/novelty%20detection/2017/11/03/Novelty_detection_MOG/

EM algorithm

  • 주어진 데이터 : 훈련집합 X={x1,x2,...,xn}X = \{x_{1}, x_{2}, ..., x_{n}\}, 가우시안 개수 k(사용자가 설정한다고 가정)
  • 추정해야 할 매개변수 집합 : θ={π=(π1,π2,...,πk),(μ1,Σ1),...,(μk,Σk)}\theta = \{\pi =(\pi_{1}, \pi_{2},...,\pi_{k}),(\mu_{1},\Sigma_{1}),...,(\mu_{k},\Sigma_{k})\}

[가우시안 혼합을 위한 EM 알고리즘]
input : 훈련집합 X={x1,x2,...,xn}X = \{x_{1}, x_{2}, ..., x_{n}\}, 가우시안 개수 k
output : 최적의 가우시한 혼합계수 θ={π=(π1,π2,...,πk),(μ1,Σ1),...,(μk,Σk)}\theta = \{\pi =(\pi_{1}, \pi_{2},...,\pi_{k}),(\mu_{1},\Sigma_{1}),...,(\mu_{k},\Sigma_{k})\}

  1. θ\theta를 초기화 (난수로 설정하고 출발)
  2. While(!멈춤조건)
  3. \quad θ\theta를 이용하여 소속확률 행렬 Z를 추정 (E-step)
  4. \quad ZZ를 이용하여 θ\theta를 추정 (M-step)

ZZ : k*n 크기의 행렬 (zjiz_{ji} : 샘플 xix_{i}가 j번째 가우시안에 속할 확률)
ex) k=2라 했을 때, ZZ = (0.070.81...0.590.930.19...0.41)\begin{pmatrix}0.07&0.81&...&0.59\\0.93&0.19&...&0.41\\ \end{pmatrix}x1x_{1}이 첫 번째 가우시안에 속할 확률은 0.07, 두 번째 가우시안에 속할 확률은 0.93이라는 사실을 뜻함.

  • 2개의 가우시안이 자신에 속하는 샘플이 어느 것인지 알면, 소속된 샘플을 이용하여 평균과 공분산 행렬을 다시 추정하여 자신을 개선할 수 있다.
  • (E-step) 가우시안이 자신의 매개변수(θ\theta)를 개선하면, 개선된 가우시안으로 샘플의 소속정보(ZZ)를 개선할 수 있다.
  • (M-step)개선된 소속정보(ZZ)는 가우시안(θ\theta)을 더 정확하게 개선한다.
  • 이처럼 두 과정을 번갈아 가며 반복함으로써 수렴점에 도달하는 방법을 EM 알고리즘이라 한다.

reference : 오일석의 기계학습

2-1) Kernel density estimation

  • Kernel Function : 커널함수란 다음 3가지 조건을 모두 만족하는 함수를 의미
    (1) K(u)du=1\int_{-\infty}^{\infty}K(u)du = 1
    (2) K(u)=K(u)K(-u) = K(u) for all values of u.
    (3) Non-negative

  • Kernel Density Estimation이란?
    커널 함수와 데이터를 바탕으로 연속성 있는 확률 밀도 함수를 추정하는 것.
    - 관측된 데이터마다 해당 데이터를 중심으로 하는 커널함수를 생성한 후, 해당 커널 함수를 모두 더하고 데이터 개수로 나누면 KDE로 도출된 확률 밀도함수를 구할 수 있다.
    f^h(x)\hat{f}_{h}(x) = 1n\frac{1}{n}i=1n\sum_{i=1}^{n}Kh(xxi)K_{h}(x - x_{i}) = 1nh\frac{1}{nh}Kh(xxih)K_{h}(\frac{x-x_{i}}{h})

    - h: 대역폭(bandwidth)를 결정하는 파라미터, 대역폭은 확률밀도함수를 smoothing하는 역할을함 ( 대역폭 값이 작을수록 KDE 모양은 뾰족하고, 클수록 완만한 형태를 띠게 됨)

ex) 다음과 같이 6개의 데이터를 바탕으로 밀도를 추정한다고 하자.
x1x_{1} = -2.1, x2x_{2} = -1.3, x3x_{3} = -0.4, x4x_{4} = 1.9, x5x_{5} =5.1, x6x_{6} = 6.2
커널함수는 정규분포로, h = 1로 정한다.

  • h(smoothing parameter) 변화에 따른 KDE 결과
    아래는 동일한 데이터와 커널함수(정규분포)일 때, h값에 따른 KDE 결과를 나타낸다.

reference: https://sungkee-book.tistory.com/2

0개의 댓글

관련 채용 정보