negative log likelihood loss
negative log likelihood loss
- 특정 인스턴스에 대해 모델이 예측한 각 클래스의 확률분포 $x$와 인스턴스의 $class$가 주어졌을 때의 negative log likelihood loss는 다음과 같다.
$$loss(x, class) = -log(x[class]) $$
- 위 수식에서 $x = (x[0], x[1], ... x[k])$ 로 $x[i]$는 i번째 클래스에 대한 모델의 예측값이다.
- 위 수식에서 인스턴스의 정답 클래스가 $i$번째 클래스인 경우, $class$는 $i$와 같다.
- 위 수식에서 $ 0 \leq x[i] \leq 1$이고, $\sum_i x[i] = 1$이다.
- $x$가 확률 분포가 아니라면, 아래와 같이 softmax를 이용해서 negative log likelihood loss를 계산할 수 있다.
$$\begin{align} loss(x, class) &= -log(softmax(x[class])) \\ &= -log( \frac{exp(x[class]) }{\sum_j exp(x[j]) } ) \end{align} $$
- 위 수식에서 $softmax$는 $x[i]$를 확률로 만들기 위함이고, $ 0 \leq x[i] \leq 1$이고, $\sum_i x[i] = 1$이 되게끔한다.
- N개의 인스턴스가 있는 경우, loss는 다음과 같다.
- 각 instance의 negative log likelihood loss의 합이다.
$$loss = \sum_i^N loss(x_i, class[i]) $$
- 위 수식에서 $x_i$는 $i$번째 instance 이다.
- 위 수식에서 $class[i]$는 $x_i$의 정답 클래스를 의미한다.
댓글