Probability Distributions
이번 포스팅에서는 가장 기본적이지만 놓치기 쉬운 probability distribution에 대해 간단히 정리해봤습니다! 각 distribution에서의 pdf식 및 MLE로 optimize했을 때 얻는 결과값들을 정리하고, 마지막으로는 각 distribution의 conjugate prior에 대해 정리해봤습니다. 맨 아래 references 블로그에서 PRML책에 대해 정리해놓았는데, 대부분 이 내용 및 PRML 책을 참조했습니다. 저도 공부하면서 정리한 내용이라 부족한 점이 있다면 댓글로 달아주신다면 감사하겠습니다~ :)
목차:
- Discrete variables
- Bernoulli distribution
- Multinomial distribution
- Continuous variables
- Uni-variate/Multi-variate gaussian distribution
- Conditional gaussian distribution
- Marginal gaussian distribution
- Gaussian mixtures
- Conjugate priors
1. Discrete variables
1.1 Bernoulli distribution
(1) Bernoulli distribution의 PMF(Probability mass function)
먼저 biased coin의 앞/뒷면 확률을 재는 것과 같이 binary variable에 대한 확률 분포를 측정한다고 생각해보자.
즉 x가 0 또는 1 (head 또는 tail) 두 가지 값만 갖는 binary variable일 경우 p(x)를 위와 같이 나타낼 수 있다. 이 분포가 bernoulli distribution이며, p(x)는 bernoulli distribution의 PMF이다.
PMF를 이용해 전체 data의 distribution을 모델링하면:
(2) Bernoulli distribution의 MLE 해
MLE (maximum log likelihood)는 앞서 정의한 data distribution p(D)를 maximize하도록 학습한다. MLE에 대한 자세한 설명은 이 포스팅을 참조하면 좋을 것 같다. 따라서 MLE의 loss function인 log p(D)를 먼저 정의하면:
위 loss function을 model parameter ϕ에 대해 미분했을 때 값이 0이 되는 지점이 MLE의 해이다. 구해보면:
결과적으로 sample 평균이 나온다. 즉 100개 데이터 중 동전 앞면이 60번, 뒷면이 40번 나왔다면 MLE로 optimize했을 때 p(head) = 60/100이 된다.
1.2 Multinomial distribution
(1) Multinomial distribution의 PMF(Probability mass function)
위의 bernoulli distribution이 binary variable에 관한 것이었다면, multinomial distribution은 이를 K개 값을 가질 수 있는 discrete variable로 확장한 것이다. 즉 아래와 같은 세팅이 된다:
x는 k차원의 vector이며, ϕ_k는 k번째 요소가 선택될 확률이다. 즉 parameter ϕ도 k차원의 vector가 된다. k개 요소 중 하나를 선택하므로 ∑x = 1이 된다. 결과적으로 multinomial distribution에서의 PMF는 다음과 같다:
이를 기반으로 전체 data에 대한 distribution p(D)를 구해보면:
m_k는 전체 data중 category k의 발생 횟수를 의미한다.
(2) Multinomial distribution의 MLE 해
MLE에서 loss function인 log p(D)를 구해보면:
k개 class에 대한 확률값이므로 오른쪽에 ∑ϕ=1이라는 제약조건이 붙은 것을 볼 수 있다. λ는 라그랑지안 승수이다.
똑같이 ϕ에 대해 미분 = 0으로 두고 MLE에서의 해를 구해보면:
결과적으로 전체 data의 수 N중 class k의 출연 횟수 mk의 비율이 됨을 볼 수 있다. 즉 bernoulli distribution의 multi-class로의 확장판이다.
2. Continuous variables
1.1 Uni-variate/Multi-variate gaussian distribution
(1) Gaussian distribution의 PDF(Probability density function)
Univariate Gaussian.
Univariate Gaussian은 입력 변수가 scalar인 경우 gaussian distribution이다. Gaussian 분포에서 흥미로운 점은, binomial distribution에서 관찰 데이터의 수 N이 무한대가 되면 gaussian distribution이 된다는 것이다. 추가적으로 gaussian 분포는 softmax와 유사하게 entropy를 최대화 하는 분포라고 한다 (softmax 관련 설명은 PGM 포스팅 2편 참조). 아마 이유는 continuous space에서의 binomial distribution이 gaussian이 되기 때문이 아닐까 유추해본다(?). 어쨌든 univariate gaussian의 PDF는 다음과 같다:
Multivariate Gaussian.
Multivariate Gaussian은 입력 변수가 d차원 vector인 경우에 대한 gaussian distribution이다. 즉,
이다. 만약 이 gaussian distribution에서 z를 하나 샘플링하면, 즉 z ~ N(x;μ,∑)이면 z역시 d차원의 vector가 될 것이다. μ와 ∑의 정의는 다음과 같다:
μ는 잘 알다시피 평균을 의미하고, ∑는 z의 공분산을 의미한다. 따라서 ∑는 항상 symmetric한 행렬이며, symmetric하므로 이 공분산 행렬을 eigen decomposition할 수 있다고 한다. (언제 쓰는지는 잘 모르겠지만 PCA처럼 guassian 분포의 구성 요소를 분해할 때 사용될 수 있을 것 같다.) 어쨌든 multivariate gaussian의 PDF는 다음과 같이 정의된다:
|∑|는 ∑의 행렬식(determinant)이며, d는 앞서 언급한대로 vector의 차원을 의미한다. exponential 안의 (x-μ)∑(x-μ)는 μ에서 x까지의 mahalanobis distance라고 한다. 만약 ∑ = I이면 euclidean distance가 된다고 한다. 즉 mahalanobis distance의 경우 평균 μ와 데이터 point간의 거리를 고려할 때 분산도를 고려한다는 의미이고, euclidean distance의 경우 ∑ = I이므로 기존에 우리가 구하던 대로 (x-μ)^2을 통해 두 점 간 거리를 연산한다는 것을 알 수 있다.
어쨌든 multivariate gaussian의 복잡한 PDF식에 대해 살펴보았는데, 이 식이 어떻게 동작하는지 그림을 통해 살펴보자.
위 그림에서 맨 왼쪽은 μ=0이고 ∑ = I인 standard normal distribution이다. 가운데 distribution은 똑같이 μ=0이지만 ∑ = 0.6 * I로 1보다 작은 숫자를 공분산 행렬에 곱한 경우이다. 분산이 작아지므로 분포가 더 compressed되는 것을 볼 수 있다. 맨 오른쪽은 μ=0, ∑ = 2 * I인 경우로, 공분산에 1보다 큰 숫자를 곱하니 분산의 크기가 더 커져 분포가 더 spread-out되는 것을 볼 수 있다.
그렇다면 만약 ∑ != I인 경우는 어떻게 될까? 아래 그림은 각각의 분포 모양 및 이 때의 공분산 행렬 값이다. 모두 μ=0인 경우를 가정한다.
그림에서 보듯이, 가운데 그림의 경우 기존의 대각 행렬에서 0이었던 값이 0.5로 변한 것을 볼 수 있다. 즉 ∑는 공분산 행렬이므로 multivariate guassian의 요소 x = [x1, x2]에 대해, x1과 x2간의 correlation이 0에서 0.5로 증가했다는 것이다. 따라서 왼쪽의 경우 두 변수는 독립이라 gaussian이 치우치치 않았지만 가운데의 경우 x1과 x2가 더 positively correlated된 모습을 보이며, 이 경우 correlation 값이 0.5이므로 치우친 각도는 45도가 될 것이다. 맨 오른쪽의 경우 correlation이 더 커지므로 치우침의 정도가 더 커진다.
이번에는 각각의 guassian 분포를 위에서 살펴본 모습이다. 첫번째 및 두번째 그림의 경우, 앞선 예시와 달리 x1과 x2간의 correlation이 음수값을 가진다. 따라서 치우친 방향이 바뀐 것을 볼 수 있다. 맨 오른쪽 그림의 경우, Cov[x1]이 추가적으로 1에서 3으로 증가한 것을 볼 수 있다. 따라서 x1축에 대해 더 넗게 분포한 모습으로 바뀌고 그림과 같이 타원형의 모습을 가지게 된다.
(2) Gaussian distribution의 MLE 해
이제 gaussian distribution의 PDF를 정의했으므로, 이를 기반으로 log p(x)수식을 정리해보면:
앞서 정의한 PDF식을 전체 data요소에 대해 곱하고 log를 취한 것이다. n은 data의 개수, d는 input의 dimension을 의미한다. 앞서 MLE의 해를 구했던 방식과 같이 parameter μ, ∑에 대해 미분하고 0이 되는 지점을 찾으면 MLE의 해가 된다. 구한 해는 다음과 같다:
결과적으로 μ는 bernoulli에서와 똑같이 전체 data point의 평균이 되며, ∑는 전체 data point들의 분산이 된다.
1.2 Conditional gaussian distribution
두 random variable xa, xb가 있을때, 이들의 결합 분포 p(xa, xb)가 gaussian이라면 conditional distribution p(xa|xb) 또한 gaussian이 된다. 자세한 유도 과정은 PRML 책이나 블로그를 참조하면 좋을 것 같다. 여기서는 p(xa, xb)를 gaussian으로 두고 p(xa|xb)의 μ, ∑를 구했을 때의 결과만 간단히 정리해보도록 하겠다.
먼저 위의 식은 결합분포 p(xa, xb)에 대해 x, μ, ∑를 각각의 variable에 해당하는 요소로 분해한 것이다. 이렇게 분해한 이유는 p(xa|xb)의 μ, ∑가 각각의 요소로 표현될 것이기 때문이다. 결과적으로 p(xa|xb)의 μ, ∑는:
가 된다. 결과적으로 μ_a|b가 xb에 대한 선형 함수로 표현되는 것을 볼 수 있는데, 이는 conditional gaussian distribution p(xa|xb)가 input x_b에 dependent함을 의미한다. 반면 ∑는 input x_b에 independent하다. 즉 아래와 같이 표현할 수 있다:
이를 linear gaussian model이라고 하며, 동적으로 변하는 시스템을 모델링하는 Kalman filters를 유도하는데 사용된다고 한다.
linear gaussian model에 대해 설명된 ppt를 참고 자료로 가져와봤다. 즉 어떤 latent variable z의 값이 바뀌면 x 또한 선형 형태로 바뀌는데, 이 때 그림을 보면 단순 linear regression이 아닌 x = z + gaussian noise로 구성되었음을 볼 수 있다. 이런 방법으로 partially observable model(latent variable model)에 사용된다는데, latent variable model에 대한 설명은 PGM 포스팅 3-2편에 자세히 설명되어 있다.
1.3 Marginal gaussian distribution
앞서 정의한 joint distribution p(xa, xb)를 xb에 대해 marginalize하면 어떻게 될까? 결론적으로는 똑같이 gaussian이 된다고 한다. 자세한 유도 과정은 PRML 책이나 블로그를 참조하면 좋을 것 같다. 여기서는 marginalize했을 때 μ, ∑ 결과에 대해서만 간단히 정리해 보겠다.
신기한 점은 위에서 joint distribution p(xa, xb)의 각 구성 요소를 나눴던 것 중 딱 random variable x_a에 관련된 값만 남는다는 것이다.
1.4 Gaussian mixtures
gaussian mixture는 PGM 포스팅 3-2편의 Section 1.1에 자세히 설명되어 있고, 이 모델의 learning 방식까지 Section 1.4에 자세히 설명되어 있으니 생략하도록 하겠다!
3. Conjugate priors
conjugate prior가 무엇이고 언제 필요한지는 PGM 포스팅 3-1편의 Section 2.1에 자세히 설명되어 있다. 또는 아래 [references]에 첨부한 블로그를 참조해도 좋을 것 같다. 여기서는 각 distribution에 대해 해당하는 conjugate prior가 뭔지만 간단히 정리해보도록 하겠다!
Distribution | Conjugate Prior |
Bernoulli distribution | Beta distribution |
Multinomial distribution | Dirichlet distribution |
Gaussian distribution | Gaussian distribution |
[References]:
PRML: https://norman3.github.io/prml/docs/chapter02/0
0. Probability Distributions
norman3.github.io
conjugate prior: https://untitledtblog.tistory.com/188
Conjugate Prior의 정의와 예제
1. Conjugate Prior의 정의 베이지안 머신러닝 (Bayesian machine learning)에서는 주어진 데이터셋 $\mathcal{D}$에 대해 모델 매개변수 $\theta$의 사후 확률 (posterior probability) $p(\theta|\mathcal{D})$를 최대화하도록
untitledtblog.tistory.com
gaussian distribution: https://github.com/maxim5/cs229-2018-autumn/tree/main
GitHub - maxim5/cs229-2018-autumn: All notes and materials for the CS229: Machine Learning course by Stanford University
All notes and materials for the CS229: Machine Learning course by Stanford University - maxim5/cs229-2018-autumn
github.com