Deeper Learning

MLE(Maximum Likelihood Estimation), MAP(Maximum A Posterior) 본문

AI/Machine Learning & Data Science

MLE(Maximum Likelihood Estimation), MAP(Maximum A Posterior)

Dlaiml 2022. 11. 25. 23:59

https://dlaiml.tistory.com/entry/Bayes-theorem

 

Bayes' theorem

농어와 연어를 분류하는 문제 생선의 길이를 기준으로 농어, 연어를 분류 길이를 x, 물고기의 종류를 w 라고 하자 물고기가 농어면 w=w1, 연어면 w=w2로 정의 Prior 사전확률인 Prior는 사전

dlaiml.tistory.com

(Bayes theroem 포스팅에 이어서)

 

Introduction

 

물고기의 길이 x, 물고기의 무게 k, 물고기의 길이로 물고기의 무게를 예측하는 회귀 문제를 예시로 들겠다.

필요로 하는것은 모든 x에 대해서 모든 k를 아는 함수 k=g(x) (물고기의 길이에 따른 무게의 확률 밀도 함수)

 

이 함수를 parameter set w를 사용하여 근사하는 f

k^=f(x|w)

 

물고기 길이가 xi로 같아도 물고기의 무게 k 는 Real world에서 하나가 아닌 여러 실수값을 가질 수 있음

그러므로 Error term ϵ을 사용하여 불확실성을 아래와 같이 식에 녹여낼 수 있다.

k=k^+ϵ=f(x|w)+ϵ

 

Error term을 평균이 0이고 분산이 σ2 인 가우시안 분포로 가정한다면

kN(f(x|w),σ2)

p(k|x,w,σ)=12πσe(kf(x|w))22σ2

 

아래 그림과 함께 추가로 설명하면

  • 실제 데이터는 빨간색 점
  • parameter set w 로 구성되었고 x를 받아 k^ 를 도출하는 approximation function f (linear regression model, neural net, etc.)의 예측 결과 k^=f(x|w)는 파란색 선 (하지만 실제 데이터는 모두 파란 점 위에 있지 않기 때문에 이러한 Error(noise)를 표현하기 위한 error term)
  • x=5 지점에서의 모델의 예측값은 초록 점, 해당 x 에서 실제 데이터 분포에 대한 예측은 검은 선
    • x가 5일 때, 실제 데이터의 분포는 초록점(3.8 정도)를 평균으로, 분산을 σ2 로 하는 가우시안 분포를 따르겠구나”라는 예측
    • 분산은 예측의 정확도와 연관된 값이 아닌 데이터 자체의 특성에 따라 설정되는 불확실성을 나타내는 값

 

MLE

관측한 데이터셋을 식으로 표현하면 D={(x1,k1),...,(xn,kn)}와 같다.

각 데이터 포인트가 독립이면 데이터셋이 관측될 확률 p(D)는 길이가 xi일 때 무게가 ki일 확률의 곱과 같기 때문에 아래와 같이 표현이 가능하다. (parameter 생략)

P(D)=i=1np(ki|xi)=i=1n12πσe(kif(xi|w))22σ2

 

무게를 가장 잘 예측하는 모델은 길이가 xj일 때 무게가 kj라고 답할 수 있도록 하는 parameter set w를 가지는 모델로 이는 p(D|w)가 최대가 되도록 하는 모델과 동치

 


Likelihood, Prior, Posterior의 구분

https://stats.stackexchange.com/questions/596658/why-use-parameter-set-theta-in-bayes-rule

주어진 대상이 물고기의 피부 x, 구하고자 하는 대상이 물고기의 무게 k 일 때 베이즈 정리 식,

주어진 대상이 데이터 셋 D={(x1,k1),...,(xn,kn)}, 구하고자 하는 대상이 xk로 매핑하는 함수의 parameter set w 일 때를 잘 구분해야 한다.

 

Bayestheorem은 어느 대상에 적용 하느냐에 따라 여러 관점으로 해석 가능(확률변수, 데이터셋, 조건부 확률, 사건 등)

지금까지 다룬 예시(데이터셋 D가 주어지고 w를 구하고자 하는 상황)에 Bayes theorem를 적용해보면

  • Posterior: p(w|D)
  • Likelihood: p(D|w)
  • Prior: p(w)
  • evidence: p(D)

다시 돌아와서 지금까지 다룬 예시(데이터셋 D가 주어지고 w를 구하고자 하는 상황)에 Bayes theorem를 적용해보면

 

무게를 가장 잘 예측하는 모델은 길이가 xj일 때 무게가 kj라고 답할 수 있도록 하는 parameter set w를 가지는 모델로 이는 p(D|w)가 최대가 되도록 하는 모델과 동치

 

위 문장을 다시 해석하면 Likelihood인 p(D|w)를 최대화하는 Maximum Likelihood Estimation

p(D|w)를 최대화 하는 w를 구하는 것이 MLE의 목표

 

P(D|w)=i=1np(ki|xi)=i=1n12πσe(kif(xi|w))22σ2

 

언더플로우를 방지하고 다루기 쉬운 함수형태로 바꾸기 위해 단조 증가함수인 log를 양변에 적용하면

log(P(D|w))=i=1n{log(2πσ)(kif(xi|w))22σ2}

 

현재 state에서 정해진 상수인 π,σ를 제거하고 -1을 곱해 최소화 문제로 바꾸면 결국 아래 식을 최소화 하는 것이 목표가 된다

i=1n(kif(xi|w))2

 

위 식은 prediction과 label의 차의 제곱으로 딥러닝의 L2 loss 식과 동일

 

즉, L2 loss를 최소화 하도록 모델을 학습 시키는것은 데이터가 Gaussian distribution에서 drawn 되었다는 가정(noise(error) term이 zero-mean Gaussian distribution이라는 가정)하에 MLE 방식으로 문제를 푸는 것

 

MAP

Maximum A Posterior는 posterior인 p(w|D)를 최대화 하는 전략으로 관측값(데이터셋)만 사용하는 MLE와 다르게 사전지식인 Prior를 활용할 수 있다.

P(w|D)=P(D|w)P(w)P(D) 에서 P(w|D)를 최대로 하는 w를 구하는 것이 MAP의 목표

 

분모인 P(D)normalizing constant로 argmax 문제에서 빼고 생각하겠다.

P(w|D)P(D|w)P(w)

 

Prior P(w)를 평균이 0인 Gaussian distribution으로 정하면

p(w)=12πσew22σ2

 

위에서 구했던 값들을 활용하여 식을 전개해보자

log(P(D|w)P(w))=i=1n{log(2πσ)(kif(xi|w))22σ2log(2πσweight)w22σweight2}

 

MLE 수식 전개와 마찬가지로 상수 term을 제거하고 -1을 곱해 최소화 문제로 만들면 아래와 같은 식으로 정리가 가능

i=1n(kif(xi|w))2+w22σweight2

 

앞 항은 MLE와 같지만 마지막 항을 보면 w의 L2 norm을 규제하는 L2 Regularization Weight Decay의 수식이 나타난다.

 

즉, L2 penalty weight decay를 사용하는 것은 weight가 Gaussian Distribution을 따른다는 Prior를 활용하여 MAP 방식으로 최적의 w를 구하는 것과 같다

 

Reference

[0] https://stats.stackexchange.com/questions/450865/in-bayesian-inference-why-is-pd-sometimes-called-the-evidence

[1] https://stats.stackexchange.com/questions/367485/map-estimation-as-regularisation-of-mle

[2] https://machinelearningmastery.com/maximum-a-posteriori-estimation/

[3] https://hyeongminlee.github.io/post/bnn002_mle_map/

[4] https://chuanting.github.io/blogs/post/mmse/

'AI > Machine Learning & Data Science' 카테고리의 다른 글

직관과 MLE, MAP(2)  (0) 2023.06.27
직관과 MLE, MAP (1)  (0) 2023.06.22
Generative modeling  (0) 2021.08.16
Netflix Challenge - Recommendation System  (0) 2021.02.25
Feature Engineering  (0) 2020.11.27