MLE(Maximum Likelihood Estimation)
가상의 확률 분포를 모사하는 확률 분포의 파라미터(θ)를 찾고 싶다.
→ 목표 확률 분포로부터 데이터를 수집
→ Likelihood function에 θ를 입력하고, 데이터들의 θ에 대한 확률 값의 곱을 통해 Likelihood를 최대화 하는 파라미터 찾기
▪Likelihood라는 값을 통해 데이터를 얼마나 잘 설명하는지 알 수 있음
▪Gradient Ascent를 통해 찾을 수 있음
Likelihood Function
- 입력으로 주어진 확률 분포(파라미터: μ, σ)가 데이터를 얼마나 잘 설명하는지 나타내는 점수(Likelihood)를 출력하는 함수
입력: 확률 분포를 표현하는 파라미터
출력: 데이터를 설명하는 정도 - 데이터를 잘 설명하는지 알 수 있는 방법
데이터가 해당 확률 분포에서 높은 확률 값을 가져야 잘 설명한다고 볼 수 있다.
: Probability Density ↑
Log Likelihood
- Likelihood는 확률의 곱으로 표현하기 때문에 underflow의 가능성이 있다.
→ log을 취하여 곱셈을 덧셈으로 바꾸어 계산한다.
Maximnum Likelihood Estimation
- Likelihood를 최대화 하는 파라미터를 찾아나가는 과정
MLE via Gradient Ascent
- Gradient Ascent를 통해 likelihood값을 최대로 만드는 파라미터(θ)를 찾는다.
Neural Networks는 확률 분포 함수이므로 MLE를 통해 파라미터를 찾을 수 있다.
Negative Log Likelihood (NLL)
대부분의 딥러닝 프레임워크는 Gradeint Descent만 지원한다.
→ maximization 문제에서 minimization 문제로 접근하면 된다!
→ Gradient Descent를 수행하기 위해서는 파라미터에 대한 미분을 거쳐야 함 : ∴Back propagation
MLE의 수식
DNN에 적용하여 생각해본다면, softmax 결과를 확률 분포로 볼 수 있다.
마지막 수식은 Cross Entropy Loss에서도 볼 수 있다.
Classification에서 softmax를 취한다음 Cross Entropy로 최적화를 수행하는 과정을 MLE를 하는 과정이라고 볼 수 있다!
즉, Neural Network는 θ(Layer weight)라는 확률 분포 함수의 파라미터를 갖고 있다고 볼 수 있으므로
수집한 데이터를 잘 설명하기 위한 파라미터를 찾는 과정이라고 볼 수 있다.
그래서 MLE를 하기 위해 Cross Entropy를 사용한 것이다.