이 시리즈는 포항공과대학교 옥정슬 교수님의 기계학습(CSED515) 수업과 [Probabilistic Machine Learning: Advanced Topics] 등을 참고로 하여 작성된 글입니다.
지난 포스팅에서는 MLE에 대해 알아보았습니다. 포스팅을 하면서 구체적인 수식 유도는 생략을 할 때도 있고 안할 때도 있긴 한데, 주관적인 경험으로 유도 과정이 난해하지 않다면 생략하겠습니다. 하지만 유도 과정에서 특정한 아이디어를 사용해야 하거나, 요청이 있는 경우 한 번 유도 과정도 작성해보도록 하겠습니다. numerical example의 경우에도 수식으로만 접하면 잘 이해가 안되는 경우가 있는데 이때 실제 값을 집어넣어 계산해보면 이해가 잘 되는 느낌입니다. 그런 측면에서도 가끔 이해가 난해한 부분은 numerical example을 작성하겠습니다.
최대 사후 확률 추정(Maximum a Posteriori, MAP)
MAP(Maximum a Posteriori) 추정은 주어진 데이터와 사전 정보(prior)를 활용하여 모수(parameter)를 추정하는 방법입니다. 베이즈 정리를 기반으로 하며, 관측된 데이터와 사전 확률 분포를 결합하여 사후 확률을 최대화하는 값을 찾습니다.
Bayes' Theorem
베이즈 정리를 상기해볼 필요가 있습니다.
P(θ∣x)=P(x)P(x∣θ)P(θ),
여기서
P(θ∣x): 사후 확률 (posterior probability),
P(x∣θ): likelihood (likelihood),
P(θ): 사전 확률 (prior probability),
P(x): 증거 (evidence, marginal likelihood)로 데이터 x에 대한 정규화 상수입니다.
MAP 추정에서는 P(x)가 θ에 독립적이므로, 최적의 θ는 다음과 같이 likelihood와 사전 확률(prior)의 곱을 최대화하는 값으로 정의됩니다.
θ^MAP=argθmaxP(x∣θ)P(θ).
로그를 취하면 계산이 단순해지며, 다음과 같이 log-likelihood를 사용한 식으로 변환할 수 있습니다.
θ^MAP=argθmax[logP(x∣θ)+logP(θ)].
MAP vs. MLE
MAP는 MLE(Maximum Likelihood Estimation)의 확장으로 볼 수 있습니다. MAP에서는 추가적인 사전 정보(prior)를 고려하여 모수를 추정합니다. 반면, MLE는 사전 확률 P(θ)를 고려하지 않고 단순히 likelihood P(x∣θ)만 최대화합니다.
MLE:
θ^MLE=argθmaxP(x∣θ).
MAP:
θ^MAP=argθmaxP(x∣θ)P(θ).
e.g., Bernoulli Trial
베르누이 시행에서 X∼Bernoulli(p)이고 xi∈{0,1}인 데이터 x={x1,x2,…,xn}가 관측되었다고 가정합니다.
Likelihood
likelihood는 다음과 같습니다.
P(x∣p)=i=1∏npxi(1−p)1−xi.
log-likelihood는 다음과 같습니다.
logP(x∣p)=i=1∑n[xilogp+(1−xi)log(1−p)].
Prior
사전 확률로 베타 분포 p∼Beta(α,β)를 사용하면, 확률 밀도 함수는 다음과 같습니다.
P(p)=B(α,β)pα−1(1−p)β−1,
여기서 B(α,β)는 정규화 상수입니다.
Posterior
사후 확률은 다음과 같습니다.
P(p∣x)∝P(x∣p)P(p).
로그 사후 확률은 다음과 같습니다.
logP(p∣x)=logP(x∣p)+logP(p)+constant.
MAP 추정값은 이를 최대화하는 p로, 다음과 같은 형태를 가집니다.
p^MAP=n+α+β−2∑i=1nxi+α−1.
이 식은 베타 분포의 효과를 반영하여 데이터를 조정한 결과입니다.
e.g., Gaussian Distribution
정규 분포에서 X∼N(μ,σ2)이고 관측된 데이터 x={x1,x2,…,xn}가 주어졌다고 가정합니다.
평균 μ에 대해 정규 분포를 사전 확률로 사용한다고 가정하면, P(μ)=N(μ0,τ2)입니다. 즉,
P(μ)=2πτ21exp(−2τ2(μ−μ0)2).
Posterior
사후 확률은 다음과 같습니다.
P(μ∣x)∝P(x∣μ,σ2)P(μ).
로그 사후 확률은 다음과 같습니다.
logP(μ∣x)=logP(x∣μ,σ2)+logP(μ)+constant.
MAP 추정값은 다음과 같은 형태를 가집니다.
μ^MAP=n/σ2+1/τ2nxˉ/σ2+μ0/τ2.
여기서 xˉ는 데이터의 평균입니다.
Conclusion
MAP 추정은 MLE에서 사전 정보를 추가한 확장된 형태로, 데이터만으로 추정하기 어려운 상황에서 사전 확률 분포를 활용하여 보다 안정적이고 신뢰할 수 있는 추정을 제공합니다. 특히, 데이터가 부족하거나 불확실성이 클 때 유용할 수 있습니다.
예시를 드는 과정에서 prior를 왜 하필 저 분포로 설정했는지에 대한 의문이 들 수 있습니다. 예를 들어 bernoulli에서 beta distribution을 prior로 사용한 것처럼, 사실 여기에는 정해진 짝이 있습니다. 이와 관련해서는 conjugacy라는 정해진 짝이 있습니다. 따로 포스팅을 작성하고자 합니다.
또한 posterior가 prior와 likelihood의 곱에 비례한다는 사실만을 가지고 논리를 전개했습니다. 비례한다는 것과 같다는 것은 다른데 어떻게 바로 쓸 수 있는지에 대해서는 evidence term(정규화 상수)를 고려하면 됩니다. 어짜피 posterior도 확률이니 0과 1 사이에 있을 것이고 그 역할을 정규화 상수가 해준다고 생각하면 단순히 prior와 likelihood만을 가지고도 posterior에서 충분한 정보를 뽑아낼 수 있다는 뜻입니다.
Statistics에서 MAP까지 다뤄보았습니다. 사실 이외에도 다양한 추정 방법이 있습니다. 이는 따로 통계학 시리즈에서 다뤄보도록 하겠습니다. Classical한 기계 학습을 다루는 데 이정도면 충분하다는 생각이 들어, 이제부터 Supervised Learning, Unsupervised Learning, Semi-supervised Learning 등을 다뤄보고자 합니다.