티스토리 뷰

실생활문제를 해결하기위해 머신러닝, 딥러닝 모델이 많이 활용되고 있다. 이번 글에서는 분류(Classification)문제에서 자주사용되는 Loss Function인 Cross Entropy에 대해서 알아보려고 한다.

 

먼저 알아야될 개념인 정보량과 엔트로피에 대해서 간단하게 알아보자

 

1. 정보량

$H = -\log p(x)$로 구할 수 있으며 여기서 $p(x)$ 는 어떤 사건 $x$의 확률을 의미한다. 예를 들어 이해해보자

'해가 동쪽에서 뜬다'라는 사건에 대해서 지구의 공전, 자전 등이 바뀌지 않는 이상 확률값은 1이다. 따라서 $H = 0$ 이다. 합리적이다. why? 너무나 당연한거라 우리가 얻을 정보가 없기 때문이다.

'내일 서울에 비가 온다.'라는 사건에 대해서 우리가 확률 값을 계산할 수 있다고 하자 (실제로 기상청 슈퍼컴퓨터가 계산한다.) 그 확률값을 0.5라고 하면 $H = -\log 0.5 $이다. 그만큼 내일 비가 많이 온다는 사건에 대해서 얻을 정보를 수치적으로 나타냈다고 보면된다.

 

2. 엔트로피

엔트로피는 물리에서는 불확실성, 불안정도 개념으로 사용된다. 그렇다면 정보이론 관점에서는?? Average Information 즉, 정보량의 기댓값으로 정의한다. 다음과 같은 $E = - \sum_{i = 1}^N p(x_i)\log{p(x_i)}$ 식으로 계산한다. 어떤 사건 A, B가 각각 0.5의 확률을 갖는다고 할때 $E = - 0.5 * \log 0.5 - 0.5 * \log 0.5 $ 로 계산할 수 있다. 

 

3. Cross Entropy

정보량, 엔트로피 개념을 가져와서 사용하는 것이 Cross Entropy이다.

$$ CE(p, q) = -\sum_{i = 1}^N q(x_i)\log p(x_i) $$

수학적으로 좀 더 복잡한 설명이 필요하지만 여기서는 간단하게 p가 label q가 예측값이라 할 때 p와 q의 분포간 entropy를 구한다고 보면된다. 이 entropy가 높으면 그만큼 두 분포간 불확실성, 정보량이 높은 것이므로, 서로 다르다는 것을 수치적으로 표현할 수 있다.

예를 들어보자. 어떤 데이터에 대해서 class 1 , class 2 예측 값 q = (1 , 0) 이고 실제 값 p = (1 , 0) 이라 할 때, $ CE(p, q) = - 1 \log 1 - 0 \log 0 = 0 $ 이 된다. 반대로 q = (0, 1), p = (1, 0) 이라 예측하면 $ CE(p, q) = - 0 \log 1 - 1 \log 0 = \infty $ 값이 된다. 즉, 잘 예측하면 entropy가 0에 가깝고, 잘못 예측하면 값이 커지므로 분류문제에서 Loss로 사용하기 적합한 수식이라 볼 수 있다. 이에 대한 수학적인 설명은 따로 게시하도록 하겠다.