일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- RNN
- WBP
- GAN
- 언리얼엔진
- inductive bias
- cv
- motion matching
- Generative Model
- CNN
- multimodal
- Stat110
- animation retargeting
- Diffusion
- 딥러닝
- deep learning
- BERT
- 생성모델
- Unreal Engine
- dl
- ddpm
- UE5
- NLP
- 디퓨전모델
- 폰트생성
- ue5.4
- Few-shot generation
- Font Generation
- WinAPI
- 모션매칭
- userwidget
- Today
- Total
Deeper Learning
MLE(Maximum Likelihood Estimation), MAP(Maximum A Posterior) 본문
MLE(Maximum Likelihood Estimation), MAP(Maximum A Posterior)
Dlaiml 2022. 11. 25. 23:59https://dlaiml.tistory.com/entry/Bayes-theorem
(Bayes theroem 포스팅에 이어서)
Introduction
물고기의 길이 $x$, 물고기의 무게 $k$, 물고기의 길이로 물고기의 무게를 예측하는 회귀 문제를 예시로 들겠다.
필요로 하는것은 모든 $x$에 대해서 모든 $k$를 아는 함수 $k=g(x)$ (물고기의 길이에 따른 무게의 확률 밀도 함수)
이 함수를 parameter set $w$를 사용하여 근사하는 $f$
$$ \hat k = f(x|w) $$
물고기 길이가 $x_i$로 같아도 물고기의 무게 $k$ 는 Real world에서 하나가 아닌 여러 실수값을 가질 수 있음
그러므로 Error term $\epsilon$을 사용하여 불확실성을 아래와 같이 식에 녹여낼 수 있다.
$$ k = \hat k + \epsilon = f(x|w) + \epsilon $$
Error term을 평균이 0이고 분산이 $\sigma^2$ 인 가우시안 분포로 가정한다면
$$k \sim N(f(x|w), \sigma^2)$$
$$p(k|x,w,\sigma) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(k-f(x|w))^2}{2\sigma^2}} $$
아래 그림과 함께 추가로 설명하면
- 실제 데이터는 빨간색 점
- parameter set $w$ 로 구성되었고 $x$를 받아 $\hat k$ 를 도출하는 approximation function $f$ (linear regression model, neural net, etc.)의 예측 결과 $\hat k = f(x|w)$는 파란색 선 (하지만 실제 데이터는 모두 파란 점 위에 있지 않기 때문에 이러한 Error(noise)를 표현하기 위한 error term)
- $x=5$ 지점에서의 모델의 예측값은 초록 점, 해당 $x$ 에서 실제 데이터 분포에 대한 예측은 검은 선
- “$x$가 5일 때, 실제 데이터의 분포는 초록점(3.8 정도)를 평균으로, 분산을 $\sigma^2$ 로 하는 가우시안 분포를 따르겠구나”라는 예측
- 분산은 예측의 정확도와 연관된 값이 아닌 데이터 자체의 특성에 따라 설정되는 불확실성을 나타내는 값
MLE
관측한 데이터셋을 식으로 표현하면 $D = \{(x_1,k_1),...,(x_n,k_n)\}$와 같다.
각 데이터 포인트가 독립이면 데이터셋이 관측될 확률 $p(D)$는 길이가 $x_i$일 때 무게가 $k_i$일 확률의 곱과 같기 때문에 아래와 같이 표현이 가능하다. (parameter 생략)
$$ P(D) = \prod_{i=1}^{n} p(k_i|x_i) = \prod_{i=1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(k_i-f(x_i|w))^2}{2\sigma^2}} $$
무게를 가장 잘 예측하는 모델은 길이가 $x_j$일 때 무게가 $k_j$라고 답할 수 있도록 하는 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 = \{(x_1, k_1), ...,(x_n,k_n)\}$, 구하고자 하는 대상이 $x$를 $k$로 매핑하는 함수의 parameter set $w$ 일 때를 잘 구분해야 한다.
Bayes' theorem은 어느 대상에 적용 하느냐에 따라 여러 관점으로 해석 가능(확률변수, 데이터셋, 조건부 확률, 사건 등)
지금까지 다룬 예시(데이터셋 $D$가 주어지고 $w$를 구하고자 하는 상황)에 Bayes theorem를 적용해보면
- Posterior: $p(w|D)$
- Likelihood: $p(D|w)$
- Prior: $p(w)$
- evidence: $p(D)$
다시 돌아와서 지금까지 다룬 예시(데이터셋 $D$가 주어지고 $w$를 구하고자 하는 상황)에 Bayes theorem를 적용해보면
무게를 가장 잘 예측하는 모델은 길이가 $x_j$일 때 무게가 $k_j$라고 답할 수 있도록 하는 parameter set $w$를 가지는 모델로 이는 $p(D|w)$가 최대가 되도록 하는 모델과 동치
위 문장을 다시 해석하면 Likelihood인 $p(D |w)$를 최대화하는 Maximum Likelihood Estimation
$p(D|w)$를 최대화 하는 $w^*$를 구하는 것이 MLE의 목표
$$ P(D|w) = \prod_{i=1}^{n} p(k_i|x_i) = \prod_{i=1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(k_i-f(x_i|w))^2}{2\sigma^2}} $$
언더플로우를 방지하고 다루기 쉬운 함수형태로 바꾸기 위해 단조 증가함수인 log를 양변에 적용하면
$$ \log(P(D|w)) = \sum _{i=1}^{n}\{-\log({\sqrt{2\pi}\sigma}){-\frac{(k_i-f(x_i|w))^2}{2\sigma^2}}\} $$
현재 state에서 정해진 상수인 $\pi,\sigma$를 제거하고 -1을 곱해 최소화 문제로 바꾸면 결국 아래 식을 최소화 하는 것이 목표가 된다
$$ \sum _{i=1}^{n} {(k_i-f(x_i|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) = \frac{P(D|w)P(w)}{P(D)}$ 에서 $P(w|D)$를 최대로 하는 $w^*$를 구하는 것이 MAP의 목표
분모인 $P(D)$는 normalizing constant로 argmax 문제에서 빼고 생각하겠다.
$$ P(w|D) \propto P(D|w)P(w) $$
Prior $P(w)$를 평균이 0인 Gaussian distribution으로 정하면
$$ p(w) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{w^2}{2\sigma^2}} $$
위에서 구했던 값들을 활용하여 식을 전개해보자
$$ \log(P(D|w)P(w)) =\sum {i=1}^{n}\{-\log({\sqrt{2\pi}\sigma}){-\frac{(k_i-f(x_i|w))^2}{2\sigma^2}} \log({\sqrt{2\pi}\sigma{weight}})-\frac{w^2} {2\sigma_{weight}^2}\} $$
MLE 수식 전개와 마찬가지로 상수 term을 제거하고 -1을 곱해 최소화 문제로 만들면 아래와 같은 식으로 정리가 가능
$$ \sum {i=1}^{n} {(k_i-f(x_i|w))^2} + \frac{w^2}{2\sigma{weight}^2} $$
앞 항은 MLE와 같지만 마지막 항을 보면 $w$의 L2 norm을 규제하는 L2 Regularization Weight Decay의 수식이 나타난다.
즉, L2 penalty weight decay를 사용하는 것은 weight가 Gaussian Distribution을 따른다는 Prior를 활용하여 MAP 방식으로 최적의 $w$를 구하는 것과 같다
Reference
[1] https://stats.stackexchange.com/questions/367485/map-estimation-as-regularisation-of-mle
[2] https://machinelearningmastery.com/maximum-a-posteriori-estimation/
'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 |