MLE
샘플링 된 만 명의 신장 데이터가 있다고 가정해본다. 내가 알고 싶었던 것은 전국 사람들의 정규분포를 알고 싶었던 것이다. 즉, 모집단이 궁금해서 표본집단을 만개를 수집해 놓은 것이다. 이 모집단을 알기 위해서 아래 이미지처럼 평균과 분산을 랜덤하게 설정하여 각 샘플링에 대한 확률 값이 어떤지를 알아낸다
위처럼 랜덤하게 평균과 분산을 만들어 가면서 비교하던 도중
위 이미지처럼 가장 높은 확률값을 가지고 있다. 높은 확률값을 가지고 있다는 것은 빨간 점선이 길다는 것이다. 빨간 길이들의 곱을 구하면(Likelihood)세번째 분포가 가장 길다는 걸 알수있다. 그러면 이 초록색 분포가 Ground Truth 확률분포에 가장 근접한 분포가 될 것이다. 점선들의 곱 = Likelihood이다. 즉, Likelihood라는 function이 있을 때 μ, σ를 입력으로 넣으면 μ, σ의 가우시안 함수를 만든다. 그 후 준비해둔 샘플들을 넣어서 샘플들의 density의 곱의 값(길이의 곱)을 알아낸다.
위에서 언급된 파라미터는 μ, σ이며, 데이터를 얼마나 잘 설명하는지에 대한 기준은
Probability Density의 값이다.(클수록 잘 설명)
주사위를 20번 던졌을 때 위와 같이 나왔다고 가정하여 Likelihood를 구해본다.
랜덤하게 정한 μ, σ를 가지고 Theta1, Theta2를 만들었다. 가능도는 Probability Density이므로 위에서 설명한 것처럼 곱해주면 된다. 위 결과 theta1이 더 높기 때문에 theta2는 삭제하고 다른 μ, σ를 사용하여 다른 theta 분포를 계속해서 만들어 간다. 이 과정을 계속 반복해서 가능도가 가장 높은 값을 찾아 내도록 하는 것이 Maximum Likelihood Estimation이다. 이름 그대로 가능도를 최대로 하는 파라미터를 찾아내는 것이다.
곱셈으로 하면 underflow가 발생하기 때문에 log를 넣어서 곱셈을 덧셈으로 바꿔 해결 할 수 있을 뿐만 아니라 덧셈이 더 연산이 빠르다는 장점을 이용 할 수 있다.
무작정 랜덤하게 파라미터를 설정하기 보다는 Gradient Asent를 이용하여, 파라미터 Theta를 가장 최대화 하는 값을 찾으면 된다. Ascent는 Descent와 다르게 부호가 + 이다.
*진도를 더 나가기에 앞서 짚고 넘어가야 할 부분
-> theta라는 파라미터를 갖는 확률분포에서의 x의 확률값
->theta라는 파라미터를 갖는 확률분포의 x가 주어졌을 때 y의 확률값
*신경망과 MLE의 관계
어떤 확률분포 P(X)에서 샘플링한 x를 넣었을 때, c일 확률 값을 뜻하는 위 수식을 잘 숙지할 필요가 있다. 이 개념이 딥러닝과 관련이 있다.
위에서 배운 내용에서 MLE는 가능도를 최대화 하는 파라미터 μ, σ를 찾는 방법이리고 소개했다. 이는 가우시안 분포일 경우에 파라미터가 μ, σ라는 것이다. 그러면 딥러닝 신경망에서 μ, σ에 해당하는 부분은 무엇일까? 바로 위 그림처럼 weights와 bias다. 즉, 가능도를 최대화 하는 weights와 bias를 찾으면 되는 것이다.
딥러닝 신경망에 위 식을 접목 시킨다면, theta라는 파라미터(weights, bias)를 갖는 확률분포에서 x라는 값이 주어졌을 때의 y의 확률 값 구한다.
여기에 log를 붙이고 summation한 값이 최대화되는 값을 Gradient Ascent를 통해 log likelihood를 구한다. 보통의 딥러닝은 Gradient Descent만을 하는데 Descent와 Ascent의 차이점은 부호뿐 이기에 Descent에서 -1을 곱해주면 최대화 문제를 최소화 문제로 접근이 가능하다. Negative는 -1를 곱했음을 의미한다. 따라서 기존에 최대화 해야 했던 문제를 -1를 곱하여 최소화 하는 문제로 바꿀 수 있는 것이다.
그래서 NLL통해 argmax가 아닌 argmin을 구하게 되면 우리가 목표로 하는 함수를 모사하는 theta(weights bias)가 되는 것이다
'NLP > 패캠_자연어 입문' 카테고리의 다른 글
6. MAP(Maximum A Posterior) (0) | 2021.12.01 |
---|---|
5. MLE 수식 (0) | 2021.11.29 |
3. Probabilistic Perspective (0) | 2021.11.28 |
2. Auto Encoder (0) | 2021.11.27 |
1. Feature Vector (0) | 2021.11.27 |