파라미터 $\theta = (\theta_{1}, ..., \theta_{m})$ 으로 구성된
어떤 확률밀도함수 $P(x|\theta)$ 에서 관측된 (확률밀도함수를 모르는 상태)
표본 데이터 집합을 $ x = (x_{1}, x_{2}, ... , x_{n})$이라 할 때,
이 표본들에서 파라미터 $\theta =(\theta_{1}, ..., \theta_{m})$를 추정하는 방법이다.
likelihood
Likelihood : 지금 얻은 데이터가 이 분포로부터 나왔을 가능도
수치적으로 가능도를 계산하는 방법은 각 데이터 샘플에서 후보 분포에 대한 높이(likelihood 기여도)를 계산해서 곱하는 것이다. (계산된 높이를 더해주지 않고 곱해주는 것은 모든 데이터들의 추출이 독립적으로 연달아 일어나는 사건이기 때문이다.)
likelihood function
$$ P(x|\theta) = \prod_k^n P(x_{k}|\theta) $$
주어진 데이터 x에 대해서 모수 $\theta$ 를 변수로 둔 함수이다. 데이터가 주어진 상태에서 $\theta$ 를 변형시킴에 따라 값이 바뀌는 함수이다. → 모수 $\theta$ 를 따르는 분포가 x를 관찰할 가능성 ($\theta$에 대해서 적분을 하거나 다 더해줄 때 1이 되는 개념이 아니기 때문에 확률로 해석하면 안된다!)
해당 데이터들은(주황색 점들) 어떤 분포로부터 추출되었을 가능도가 더 높을까
log likelihood function
데이터 집합 X가 독립적으로 추출되었을 경우 조건부확률들의 곱으로 MLE를 계산할 수 있는데, 이 경우 로그가능도를 최적화한다. → 로그의 성질을 이용하여 전체에 로그를 씌워주면 곱을 합으로 변환할 수 있기 때문이다.
카테고리 분포는 베르누이 분포(2개의 값 중 하나를 선택하는 확률분포)를 d차원으로 확장한 것으로 d개의 각 차원에서 하나의 값을 선택하는 확률분포이다.
카테고리 분포의 모수 $p_{1}, ..., p_{d} $는 각각의 차원에서 값이 1또는 0이 될 확률로 각각의 모수를 모두 더해주었을 때 1이 되어야 한다.
딥러닝에서의 MLE
MLE를 이용해서 기계학습 모델을 학습할 수 있다.
딥러닝 모델 가중치를 $\theta = ({W}^{1}, ..., {W}^{L})$이라고 했을 때, 분류 문제에서 가중치를 거친 데이터가 소프트맥스 벡터에 대입이 되면 카테코리분포의 모수 $(p_{1}, ..., p_{k})$를 모델링한다. 원핫벡터로 표현한 정답레이블 $y=(y_{1}, ..., y_{k})$을 관찰데이터로 이용해 확률분포인 소프트맥스 벡터의 로그가능도를 최적화할 수 있다.
KL Divergence
분류문제에서 정답레이블을 P, 모델예측을 Q라고 두면 MLE는 KL Divergence를 최소화하는 것과 같다.(거리를 최소화하는 것이 발산을 최소화하는 것이다.)
Q. MLE 와 KL divergence가 결론적으로 같은가?
조교님의 답변
: 네, 맞습니다. 물론, 같아지기 위해서는 KL divergence 값을 구할 때 인자로 들어가는 두 개의 확률 분포 p, q가 있을 때. p가 "데이터의 실제 분포"라는 조건이 필요합니다(이 때 q는 모델이 추정한 값 or 분포). 즉, 데이터의 실제 분포를 알고있다고 가정하는 것이죠.
그리고 MLE가 KL과 같아지는 이유는, MLE도 "충분한" 데이터가 주어진다면, 모델의 추정은 결국은 p분포(위에서 말한 실제 분포)와 같아지기 때문입니다. 왜냐하면, 최대가능도를 가지고 학습하면 실제 분포에 가까이 가기 때문입니다.