estimating의 방법들입니다. 약간... Stat/Prob 쪽이랑 겹치는 내용이기도 하겠지만, 일단 데이터를 바탕으로 학습하는 machine learning 측면에서 최대한 설명해보려고 노력하겠음
일단 이 두 개념을 공부하려면 Bayes' Rule에 대해 잘 숙지하고 있어야 합니다. 주어진 데이터 $\mathcal{D}$와 우리가 찾고 싶은 파라미터를 $\theta$라고 하면,
\begin{equation}\label{bayes}\tag{*}
P(\theta|\mathcal{D}) = \dfrac{P(\mathcal{D}|\theta)P(\theta)}{P(\mathcal{D})}
\end{equation}
$\theta$의 개념은 그냥 parametric model에서 사용하는 유한한 개수의 parameter set이라고 생각하면 될 거 같음! 주어진 데이터에서 유도할 수 있는 파라미터를 어떻게 찾는지에 대한 규칙인데요, $P(\mathcal{D}|\theta)$ (likelihood) 와 $P(\theta)$ (prior)의 곱으로 표현할 수 있다는 것이에요. 음.. 파라미터 자체의 확률분포 —e.g. $\theta=A$일 확률— & 그 파라미터를 가질 때 현재 데이터 분포를 가질 확률로 표현할 수 있다?! 뭐 그렇게 해석할 수 있을 듯..
Parametric vs Non-parametric
*ChatGPT의 설명을 빌림ㅎㅎ
통계적 모델링을 할 때 유한한 개수의 parameter를 사용해 모델을 만들면 parametric, 딱히 그렇지 않는다면 non-parametric이라고 합니다. 여기서 말하는 parameter는 hyper-parameter가 아님!
예를 들어, k-NN이나 k-Means clustering은 distance metric만 필요하잖아요? 이런 애들은 non-parametric이고, neural network나 linear/logistic regression 같은 것들은 파라미터 수가 정해져 있고 이걸 계속 업데이트하는 알고리즘이니까 parametric이라고 할 수 있죠.
통계적 추정으로서 MLE와 MAP는 모두 같은 목적을 가지고 있습니다: 바로.. posterior 확률인 $P(\theta|\mathcal{D})$을 최대화하자! 즉 주어진 데이터가, 우리가 만든 통계적 모델을 가장 잘 뒷받침하게끔 파라미터를 찾아보자! 하는 것이 이 추정의 목표가 되시겠다~ 똑같은 목적을 가지고 있지만 접근 방식은 약간 다른데요, 한번 살펴봅시다.
MLE (Maximum Likelihood Estimate)
Likelihood를 최대화한다 = $P(\mathcal{D}|\theta)$를 최대화한다! 얘는 사실 수학적으로 막 이런저런 증명을 할라면 할 수 있는데, 거기까진 넘 딥하니까 스킵..
MLE는 심플합니다:
\begin{equation}\label{mle}\tag{1} \hat{\theta} = \arg\max_\theta P(\mathcal{D}|\theta)\end{equation}
= "이 데이터분포를 가장 잘 설명하는 파라미터는 뭐야?" 입니다.
자 동전 1000번 던졌다고 하자구요, 근데 이 동전이 약간 기형이라서 앞면 나올 확률이 0.5가 아닌 것임. 그러면 1000번 던졌을 때의 결과를 데이터 $\mathcal{D}$라고 하고, 이 동전을 한 번 던졌을 때 앞면이 나올 확률을 파라미터 $\theta$라고 합시다. 우리가 알고 싶은 건 $\theta$인 것임! 동전을 던지니까 앞면이 630번 나왔대요. 그럼 $\hat{\theta}$은, 이 데이터를 가장 잘 설명하는 파라미터니까 $\hat{\theta}=\frac{630}{1000}=0.63$이네요? 상당한 기형..
어때 쉽지
진짜 직관적인 추정방법입니다. 왜 $\theta$라 안 쓰고 $\hat{\theta}$라고 쓰냐면, 데이터로부터 유도한 것이라 이론상 확률인 $\theta$랑 구분해줄 필요도 있고, 언제나 불가피한 노이즈가 있기 때문에 $\theta$를 구할 수는 없다는 이유도 있답니다..
MAP (Maximum A Posteriori)
얘는 또 왜 영어가 아닌건데..ㅋㅋ
MAP는 다른 요소도 필요합니다. 바로 prior 확률인 $P(\theta)$!
\begin{equation}\label{map}\tag{2} \hat{\theta} = \arg\max_\theta P(\theta|\mathcal{D}) = \arg\max_\theta P(\mathcal{D}|\theta)P(\theta) \\ \because P(\theta|\mathcal{D} \propto P(\mathcal{D}|\theta)P(\theta)) \end{equation}
이때는 $P(\mathcal{D}|\theta)$, $P(\theta)$를 각각 고려해줘야 합니다. 사실 우리가 동전을 던질 때 $P(\mathcal{D}|\theta)$는 원래 이항분포로 구하는 게 정석이잖아요? $P(\mathcal{D}|\theta) = {1000\choose 630}\theta^{630}(1-\theta)^{370}$ 이렇게! 그리고 prior라는 확률은 뭐냐면.. 파라미터 $\theta$의 분포가 어떠한지에 대한 '사전적' 지식이에요. 만약 $\theta$가 베타 분포를 따른다고 하면, 마치 정규분포표에서 $P(Z>0.7)$ 찾듯이 $\theta=x$일 확률을 베타분포에 따라 계산해주면 됨. 그게 prior 확률!
이 두 개를 곱한 걸 최대로 만들어주는 값이 바로 $\hat{\theta}$인데, 계산하면 이런 느낌이래요:
$$\hat{\theta} = \dfrac{\text{# of heads}+\text{# of halluncinated heads}}{\text{total toss}+\text{# of halluncinated heads}+ \text{# of halluncinated tails}}$$
그렇다구 함
Conjugate Prior
likelihood $P(\mathcal{D}|\theta)$가 주어졌을 때 Posterior 확률인 $P(\theta|\mathcal{D})$와 Prior P(\theta)의 확률 분포 꼴이 같으면 (the same probability distribution family), Posterior와 Prior는 서로 conjugate prior 관계에 있다고 한다. 지금 위의 경우가 딱 그 경우임!
https://en.wikipedia.org/wiki/Conjugate_prior
'math4ai > Machine Learning and Deep Learning' 카테고리의 다른 글
M4AI) Unsupervised Learning: Clustering (1) | 2024.07.28 |
---|---|
M4AI) Bias-Variance Decomposition, Perceptron (1) | 2024.07.27 |
M4AI) Logistic Regression & Linear Regression (0) | 2024.07.26 |
M4AI) Naïve Bayes (5) | 2024.07.24 |
M4AI) Decision Tree (1) | 2024.07.22 |