본문 바로가기
Mathematics/Information Theory

[Information Theory] Cross-Entropy 톺아보기

by holy_jjjae 2023. 10. 5.

2023.10.05 - [분류 전체보기] - [Information Theory] Entropy 톺아보기

 

[Information Theory] Entropy 톺아보기

Entropy의 정의 확률변수 X가 이산확률변수이고 그 확률밀도함수가 다음과 같이 주어져있다고 하자. 그러면 X의 엔트로피인 H(X)는 다음과 같이 정의된다. 여기서 log는 밑이 2인 로그이고, 0log0 = 0이

holy-jjjae.tistory.com

 

이번 피드에서는 딥러닝에서 Loss function으로 많이 쓰이는 Cross Entropy 개념에 대해 알아보자.

 

먼저, 지난 피드인 'Entropy 톺아보기' 에서 들었던 예시를 들고와보겠다.

 

예를 들어, 문자열을 출력하는 2개의 기계 X와 Y가 있다고 하자.

 

기계 X

  • A, B, C, D를 각각 0.25의 확률로 출력 (동일한 확률)

기계 Y

  • A : 0.5
  • B: 0.125
  • C: 0.125
  • D: 0.25

의 확률로 출력한다.

 

 두 기계가 출력하는 문자를 알아보기 위해 다음과 같은 전략을 사용한다.

 

기계 X
기계 Y

 기계 X의 Entropy 값은 

기계 Y의 Entropy 값은

확률이 랜덤할수록 Entropy가 더 높다. 결국 Entropy는 최적화된 전략 하에서의 질문개수에 대한 기댓값이라고 정리했다.

 

하지만, 만약 최적화된 전략이 아닌 다른 전략을 사용한다면 어떨까?

 위의 기계 X에 사용했던 전략을 기계 Y에 적용해보자. 그러면 기계 Y의 Entropy 값은

가 되고, 기존의 Entropy 보다 0.25 증가한 2가 될 것이다. 이것이 바로 이번 피드의 주제인 Cross-Entropy이다.

 

Cross-Entropy

 Cross-Entropy는 어떤 문제에 대해 특정 전략을 쓸 때 예상되는 질문개수에 대한 기댓값이다. 여기서 전략은 확률분포로 표현된다는 것을 기억해야한다. 위의 기계 X에 사용했던 전략은 A, B, C, D가 등장할 확률이 모두 0.25로 같은 확률분포이다.

 

 결국 Cross-Entropy 값은 해당 문제에 대한 최적의 전략을 사용할 때 최소가 된다.

 

 정리해보면, 확률분포로 된 어떤 문제 p에 대해 확률분포로 된 어떤 전략 q를 사용할 때의 질문개수의 기댓값이 바로 Cross-Entropy이다. 

 

$$H(p,q) = - \sum_{i} p_i \log q_i$$

 

 대개 Machine Learning에서 Cross-Entropy를 사용할 때는 pi가 특정 확률에 대한 참값(label)을 나타내고, qi가 우리가 현재 학습한 확률값을 나타낸다. 따라서 우리가 어떤 qi를 학습하고 있는 상태라면 pi에 가까워질수록 Cross-Entropy 값은 작아지게 된다. 

 

 연속형일 경우에는 시그마 대신 integral을 써주면 된다. 

 

$$H(p, q) = \int p(x) \log q(x) dx $$

Binary classification과 Cross-Entropy

 

 

우리가 Logistic regression에서 보는 Cost function인데, 사실 이는 정확하게 Cross-Entropy 식이다. 톺아보면, Binary classification에서는 0 또는 1로 두 가지 class를 구분한다. 이를 수식으로 표현하면 

이다. 우리가 어떤 대상이 1이라고 예측하는 확률을

 그렇다면 어떤 대상을 0으로 예측하는 확률은 1 또는 0 두 가지 결과만 있으므로

가 된다. 그리고 실제로 어떤 대상이 0 또는 1일 확률은 

 

가 된다. 결국 Logistic regression은 문제 p와 전략 q가 다음과 같은 확률분포를 띄고 있는 것이다.

 

 

따라서, logistic regression의 cost function은 단순히 우리가 위에서 봤던 Cross-Entroy의 sigma를 풀어쓴 것에 불과했다.

 

Cross entropy와 Log loss

 Cross- Entropy는 log loss로 불리기도 한다 왜냐하면 Cross-Entropy를 최소화하는 것은 log likelihood를 최대화하는 것과 같기 때문이다. 어떤 데이터가 0 또는 1로 예측될 확률은 

 

 

이므로 그 데이터의 likelihood 식을 이렇게 세워볼 수 있습니다. 

 

 

y=1일 때 앞의 term을 최대화시켜야 하고, y=0일 때는 뒤의 term을 최대화시켜야 한다. 여기에 log를 씌워보면

 

 

가 되고, 최적화를 할 때 우리는 보통 최소화를 하므로

 

 

 최소화 해야 하는 식은 우리가 방금 살펴본 Cross-Entropy 와 똑같은 식이다. 이런 이유로 Cross-Entropy를 log loss라고 부르기도 한다. 또 나아가 자연스럽게 Cross-Entropy 는 negative log likelihood로 불린다. 왜냐하면 Cross-Entropy 값이 커지면 log likelihood가 작아지기 때문에 Cross-Entropy 값을 작게 해야하기 때문이다.

'Mathematics > Information Theory' 카테고리의 다른 글

[Information theory] KL-divergence  (0) 2023.11.07
[Information Theory] Entropy 톺아보기  (2) 2023.10.05