우리가 머신러닝 모델을 만드는 이유는 여태까지 있었던 데이터 를 가지고 목적하는 task의 Ground truth 확률 분포 함수 에 근사 한 확률 분포 함수를 통해 미래에 들어올 데이터 에 대한 태스크를 정확히 수행하기 위해서이다.
Ground truth 확률분포함수에 근사한 확률분포함수의 파라미터 θ를 찾기 위해Likelihood function 에 목표확률분포로부터 수집한 데이터를 입력하여 θ에 대한 확률 값의 곱을 통해 Likelihood를 최대화 하는 파라미터 θ를 찾는다.
이 Likelihood 를 최대화 하는 파라미터를 찾아나가는 과정을 MLE (Maximum Likelihood Estimation)이라고 한다.
+ Likelihood function
더보기
입력 으로 주어진 확률 분포를 표현하는 파라미터 가 데이터를 얼마나 잘 설명하는지 나타내는 점수인 Likelihood 를 출력 하는 함수
Likelihood 값을 최대화하는 파라미터 θ를 찾기 위해서 gradient ascent를 수행하면 되지만
대부분의 딥러닝 프레임워크는 Gradeint Descent를 지원하기 때문에 maximization 문제에서 minimization 문제로 접근하여야 한다.
따라서 (- )값을 붙이고, Likelihood는 확률의 곱으로 표현하기 때문에 underflow의 가능성이 있어 log 을 취하여 곱셈을 덧셈 으로 바꾸어 계산할 수 있는 NLL(Negative Log Likelihood) 값을 최소화 하는 파라미터 θ 를 찾는 gradient descent 를 수행한다.
+ information(정보량)
더보기
불확실성을 나타내는 값이다.
확률이 높아질 수록 0에 가까워진다. 확률이 낮아질 수록 ∞에 가까워진다.
즉, "불확실" 하다는 것은 "일어날 확률이 낮다."
∴ 확률이 낮을 수록 큰 정보량을 갖고 있다.
EX) 올 여름 대한민국의 평균 여름 기온은 3도 이다.
→ 이럴 경우는 거의 0에 가깝다. 그러나 만약 사실이라면 이 것은 큰 정보가 된다.
$$ I(x) = \frac{1}{P(x)} $$
위의 식이 정보량의 식인데 log를 취해주어야 linear하게 증가해서 분석하기가 쉬워서 log를 취해준다.
$$ I(x) = log( \frac{1}{P(x)}) = -logP(x) $$
+ Entropy
더보기
평균 정보량 으로, 분포의 평균적인 불확실성을 나타내는 값이다.
예를 들어 아래 식 중 첫번째는 동전 던지기를, 두번째는 주사위 던지기의 entropy를 계산한 것이다.
주사위 던지기의 엔트로피 값이 더 크다는 것을 확인할 수 있는데 이는 즉, 주사위의 경우가 무엇이 나올지 예측이 더 어렵다고 해석할 수 있다.
+ Cross Entropy
더보기
Entropy와 식이 유사해보이지만 $p(x_{i})$가 $q(x_{i})$로 바뀐 것을 확인할 수 있다.
즉, 분포 q의 관점에서 본 분포 p의 정보량의 평균값이라고 볼 수 있다.두 분포가 비슷할 수록 작은 값을 갖는다.
모델의 파라미터가 θ 일 때, 모델이 표현하는 확률 분포 $Q(y∣X,θ)$ , 데이터의 실제 분포 를 $P(y∣X)$라고 하고
Cross Entropy 를 구해보면 아래 식과 같다.
X와 y는 데이터셋에 의해 결정되는 값이기 때문에 모델의 식이 바뀌어도 변하지 않으며 $Q(y∣X,θ)$는 데이터셋과 파라미터가 주어졌을 때 예측값의 분포를 나타내므로 모델의 likelihood 와 같다.
즉, Cross Entropy를 최소화하는 파라미터를 구하는 것 은, NNL(negative log likelihood)를 최소화하는 파라미터를 구하는 것 과 같다 .
+ 또한 KL-Divergence와 Cross Entropy를 파라미터 θ로 미분하면 같기 때문에 cost를 무엇으로 잡든 같다고 볼 수 있다.
정보 이론 관점에서 본다면 Cross Entropy는 두 분포가 비슷할 수록 작은 값을 갖기 때문에,
Cross Entropy를 최소화하는 파라미터를 찾도록 학습하는 과정은 ground truth 확률분포와 모델이 표현하는 확률분포를 비슷하게 만드는 과정이라고 볼 수 있다.