
크로스 엔트로피 - 정답과 예측 사이의 거리
왜 딥러닝은 $L^p$ norm 대신 로그를 선택했을까?
지난 글에서는 섀넌 엔트로피를 다루었다. 엔트로피는 한마디로, 하나의 확률분포가 품고 있는 불확실성의 크기였다. 어떤 사건이 일어날지 예측하기 어려울수록 엔트로피는 커지고, 거의 확실하다면 엔트로피는 작아진다. 정보이론은 바로 이 “불확실성의 정량화”에서 출발한다. 그런데 딥러닝으로 넘어오면 질문이 조금 달라진다. 이제 궁금한 것은 단지 “세계가 얼마나 불확실한가?”가 아니다. 실제로 더 중요한 질문은 이것이다.
“내 모델의 예측은 정답과 얼마나 어긋나 있는가?”
여기서부터 엔트로피의 세계는 크로스 엔트로피의 세계로 확장된다. 엔트로피가 하나의 분포를 바라보는 개념이었다면, 크로스 엔트로피는 두 개의 분포 사이의 관계를 다루는 개념이다. 하나는 실제 세계의 분포이고, 다른 하나는 모델이 믿고 있는 분포다. 딥러닝의 학습은 결국 이 둘 사이의 간극을 줄여가는 과정이라고 볼 수 있다.
오늘은 이 크로스 엔트로피가 정확히 무엇인지, 그리고 왜 딥러닝은 $L^p$ norm 같은 익숙한 거리 대신 로그를 사용하는지 차근차근 이야기해보려 한다.
1. 엔트로피는 정보 하나, 크로스 엔트로피는 두 정보 사이의 관계다.
먼저 엔트로피부터 다시 떠올려 보자. 섀넌 엔트로피는 다음과 같이 정의된다.
$H(P) = - \displaystyle \sum_{x} P(x) \log P(x)$
처음 보면 다소 인위적인 정의처럼 보이지만, 사실 이 식은 꽤 자연스럽다.
어떤 사건 $x$가 일어났을 때 그 사건의 정보량을
$I(x) = - \log P(x)$
라고 정의하면, 엔트로피는 그 정보량의 평균값이 된다. 즉, 그 분포가 우리를 평균적으로 얼마나 놀라게 하는가를 나타내는 양이다.
확률이 작은 사건이 실제로 일어나면 더 놀랍고, 따라서 더 많은 정보를 준다. 확률이 큰 사건은 상대적으로 덜 놀랍다. 이 직관을 수식으로 붙잡아 놓은 것이 정보량이고, 그것을 평균낸 것이 엔트로피다. 그런데 딥러닝에서는 보통 “세계 자체의 불확실성”보다 더 직접적인 질문을 던진다.
예를 들어 모델이 어떤 이미지를 보고
개일 확률 $0.85$
고양이일 확률 $0.10$
여우일 확률 $0.05$
라고 예측했다고 하자. 이때 정말 궁금한 것은 “이 예측 분포 자체의 엔트로피가 얼마인가?”보다, 이 예측이 정답과 얼마나 잘 맞는가이다. 그래서 두 개의 분포를 구분해서 생각하게 된다.
$P$ : 실제 정답의 분포
$Q$ : 모델이 예측한 분포
이제 질문은 이렇게 바뀐다.
“현실은 $P$를 따르는데, 모델은 $Q$를 믿고 있다. 이 오차를 어떻게 측정할 것인가?”
그 대답이 바로 크로스 엔트로피다.
$H(P,Q) = - \displaystyle \sum_{x} P(x) \log Q(x)$
겉모습은 엔트로피와 매우 비슷하다. 차이는 단 하나다. 원래는 $\log P(x)$가 들어가던 자리에 이제 $\log Q(x)$가 들어간다. 하지만 바로 그 차이가 본질이다.
엔트로피 $H(P)$는 현실 세계가 가진 본래의 불확실성을 말한다. 반면 크로스 엔트로피 $H(P,Q)$는 현실이 $P$를 따를 때, 내가 $Q$라는 잘못된 세계관으로 그것을 해석하면서 치러야 하는 평균 비용을 뜻한다. 즉, 크로스 엔트로피는 정답의 입장에서 모델을 평가하는 방식이다.
2. 크로스 엔트로피의 핵심 - 모델은 정답을 얼마나 뜻밖으로 여겼는가
크로스 엔트로피의 핵심은 $-\log Q(x)$에 있다. 이 항은, 실제로 사건 $x$가 일어났을 때 모델이 그 사건을 얼마나 뜻밖으로 여겼는지를 나타낸다. 모델이 어떤 사건에 높은 확률을 주었다면, 그 사건이 실제로 일어나도 별로 놀랍지 않다. 손실도 작다. 반대로 낮은 확률을 준 사건이 실제로 일어나면, 모델은 큰 충격을 받는다. 손실이 커진다. 그리고 크로스 엔트로피는 이런 놀라움을 $P(x)$로 가중 평균한 값이다. 즉, 실제로 일어나는 사건들을 기준으로 보았을 때, 모델이 평균적으로 얼마나 놀라는가를 측정하는 양이다.
이것을 분류 문제의 언어로 바꾸면 더 직관적이다.
크로스 엔트로피는, 정답 라벨이 주어졌을 때 모델이 정답에 얼마나 높은 확률을 주었는지를 평가하는 손실 함수다.
예를 들어 어떤 사진의 정답이 ‘개’라고 하자. 모델이 개일 확률을 $0.9$라고 예측했다면 손실은 $-\log 0.9$가 된다. 이 값은 작다. 정답을 꽤 잘 맞혔기 때문이다. 반대로 모델이 개일 확률을 $0.01$이라고 예측했다면 손실은 $-\log 0.01$가 된다. 이 값은 훨씬 크다. 모델이 정답을 거의 배제했기 때문이다.
여기서 중요한 것은 손실이 선형적으로 증가하지 않는다는 점이다. 정답 확률을 조금 깎는 것과, 거의 0에 가깝게 만들어버리는 것은 전혀 다른 수준의 잘못이다. 크로스 엔트로피는 이 둘을 뚜렷하게 구분한다. 단순한 오차가 아니라, 정답을 얼마나 강하게 외면했는가까지 반영한다. 이것이 바로 (음의)로그가 만들어내는 효과다.
3. One-hot 정답에서는 손실 함수가 놀랄 만큼 단순해진다
Ont-hot 벡터는 (사과, 오렌지, 딸기) = ( 0.1, 0.5, 0.4)처럼 모든 클래스에 대해 확률이 아닌 정확하게 ( 0, 1, 0 )으로 답이 정해진 벡터를 말한다.
실제 분류 문제에서 정답 분포 $P$는 종종 one-hot 벡터로 주어진다. 예를 들어 세 개의 클래스 중 두 번째가 정답이면
$P=(0,1,0)$처럼 표현된다. 이 경우 크로스 엔트로피는
$\displaystyle H(P,Q)=-\sum_x P(x)\log Q(x)$
에서 정답 클래스 하나만 남게 된다. 나머지 클래스는 $P(x)=0$이기 때문에 모두 사라진다. 결국 손실은 $-\log Q(\text{정답 클래스})$가 된다. 이 결과는 매우 중요하다. 분류 문제에서 크로스 엔트로피가 널리 쓰이는 이유가 여기에 잘 드러난다. 모델이 잘해야 할 일은 결국 하나다.
정답 클래스에 충분히 높은 확률을 주는 것.
정답 클래스에 $0.99$를 주면 손실은 작고, $0.1$을 주면 손실은 크다. 표현은 수학적으로 보이지만, 내용은 놀라울 정도로 직관적이다. 딥러닝의 분류 문제가 복잡해 보일 때도, 손실 함수의 입장에서 보면 목표는 아주 선명하다. 정답에 대한 믿음을 키우는 것. 그것이 바로 크로스 엔트로피 최소화다.
4. 그런데 왜 하필 로그인가?
이제 가장 흥미로운 질문으로 들어가 보자. 확률분포 두 개의 차이를 재고 싶다면, 가장 먼저 떠오르는 도구는 보통 거리다. 예를 들어 $L^2$ norm이나 더 일반적인 $L^p$ norm을 생각할 수 있다.
$\|P-Q\|_p$
이런 방식은 분명 익숙하다. 두 벡터의 차이를 측정하는 데는 꽤 자연스러워 보인다. 그렇다면 이런 질문이 충분히 가능하다.
“정답 분포와 예측 분포의 차이를 그냥 norm으로 재면 안 되나? 왜 굳이 로그가 들어간 크로스 엔트로피를 써야 하지?”
이 질문은 매우 중요하다. 그리고 여기에 답하려면, 확률의 세계에서는 무엇이 정말 중요한지를 생각해야 한다.
5. 확률의 세계에서 중요한 것은 차이보다 비율이다
실수 두 개를 비교할 때는 보통 차이를 본다. $5$와 $7$의 차이는 $2$이고, $100$과 $102$의 차이도 $2$다. 산술적으로는 같은 차이다. 하지만 확률에서는 상황이 조금 다르다.
예를 들어 어떤 사건에 대해 모델이 $0.01$의 확률을 주었다고 하자. 그리고 다른 모델은 같은 사건에 $0.0001$의 확률을 주었다고 하자. 두 값의 차이는 $0.0099$에 불과하다.
하지만 의미는 전혀 다르다. 후자는 전자보다 100배 더 작은 확률이다. 즉, 같은 사건을 훨씬 더 강하게 배제한 것이다. 확률의 세계에서는 단순한 뺄셈보다 몇 배 더 그럴듯한가, 몇 배 더 말이 안 되는가가 더 중요할 때가 많다. 그리고 로그는 바로 그 비율 구조를 가장 자연스럽게 다루는 함수다.
$\log \dfrac{a}{b} = \log a - \log b$
이 식이 의미하는 바는 분명하다. 로그는 곱셈과 비율의 세계를 덧셈의 세계로 번역해준다. 확률은 원래 곱해지는 양이다. 독립 사건의 결합 확률이 그렇고, 데이터 전체의 likelihood도 그렇다. 그런데 로그를 취하면 그 복잡한 곱셈 구조가 합으로 바뀐다. 이 때문에 정보이론도, 통계학도, 딥러닝도 로그를 매우 사랑하게 된다. 즉, 로그는 단순한 편의가 아니라 확률이 가진 구조에 맞는 언어다.
6. 정답을 $0$으로 놓는 모델은 왜 특별히 더 위험한가?
로그가 중요한 또 하나의 이유는, 정답을 완전히 무시한 모델에게 무한한 벌점을 줄 수 있다는 점이다. 어떤 사건 $x$가 실제로 일어날 수 있는데, 모델이 그 사건에 대해
$Q(x)=0$
이라고 예측했다고 하자. 그러면 손실 항은
$-\log Q(x) = -\log 0$
이 되어 무한대로 발산한다. 이것은 수학적으로만 극적인 것이 아니다. 의미상으로도 매우 적절하다. 모델이 어떤 사건에 작은 확률을 주는 것과, 아예 0을 주는 것은 다르다. 작은 확률은 “거의 안 일어날 것 같다”는 뜻이지만, 0은 “절대 일어나지 않는다”는 선언이다. 그런데 실제로 그 사건이 일어났다면, 그건 단순한 실수가 아니라 모델이 세계를 아주 잘못 이해하고 있었다는 뜻이다.
크로스 엔트로피는 이 점을 분명히 드러낸다. 정답을 거의 놓친 모델보다, 정답 가능성을 아예 지워버린 모델을 훨씬 더 가혹하게 벌한다. 반면 $L^p$ norm은 이런 차이를 충분히 표현하지 못한다. $0.001$과 $0$의 차이는 숫자로 보면 작아 보일 수 있다. 하지만 정보이론적으로는 그 차이가 매우 크다. 로그는 바로 그 간극을 놓치지 않는다.
7. 크로스 엔트로피는 결국 무엇을 측정하는가
이제 다시 크로스 엔트로피 식을 보자.
$H(P,Q) = - \displaystyle \sum_{x} P(x) \log Q(x)$
이 식의 해석을 한 문장으로 압축하면 이렇다.
“실제 세계는 $P$를 따르는데, 모델이 $Q$라는 세계관을 가지고 있을 때 치르는 평균 정보 비용.”
모델이 현실을 잘 이해하고 있다면, 실제로 자주 일어나는 사건에 높은 확률을 줄 것이다. 그러면 $-\log Q(x)$는 작아지고, 평균 비용도 작아진다. 반대로 모델이 현실을 잘못 이해하고 있다면, 실제로 일어나는 사건에 낮은 확률을 줄 것이다. 그러면 평균 비용이 커진다. 즉, 크로스 엔트로피는 단순한 오차 함수가 아니다. 그것은 정답의 세계에서 모델의 믿음을 평가하는 함수다.
딥러닝의 학습은 결국 이 비용을 낮추는 방향으로 진행된다. 조금 더 철학적으로 말하면, 모델이 세계를 덜 오해하도록 만드는 과정이라고 할 수 있다.
8. 정리
엔트로피는 하나의 분포를 다루는 개념이었다. 하지만 크로스 엔트로피는 두 분포의 관계를 다룬다. 이 점이 결정적으로 중요하다.
① 엔트로피는 세계의 불확실성을 말하고
② 크로스 엔트로피는 세계와 모델 사이의 어긋남을 말한다.
그래서 딥러닝을 공부하다 보면 엔트로피보다 크로스 엔트로피가 더 자주 등장하게 된다. 모델링이라는 작업 자체가 본질적으로 “세계를 얼마나 잘 흉내 내고 있는가”의 문제이기 때문이다. 그런데 여기서 자연스럽게 다음 질문이 생긴다.
“크로스 엔트로피와 KL divergence는 정확히 어떤 관계일까?”
사실 크로스 엔트로피는 혼자 있는 개념이 아니다. 그 뒤에는 더 근본적인 구조가 숨어 있다.
$H(P,Q) = H(P) + D_{KL}(P\|Q)$
이 짧은 식 속에는, 엔트로피와 크로스 엔트로피와 KL 발산의 관계가 모두 들어 있다. 그리고 딥러닝에서 왜 크로스 엔트로피를 최소화하는 것이 중요한지도 이 식이 설명해준다. 다음 글에서는 바로 이 식을 해부해보려 한다. 크로스 엔트로피가 “전체 비용”이라면, KL 발산은 그중에서도 모델이 틀렸기 때문에 추가로 부담하는 비용이라는 사실을 보게 될 것이다.
'단편 강의' 카테고리의 다른 글
| EM 알고리즘의 수렴성 (0) | 2026.04.09 |
|---|---|
| 크로스 엔트로피와 KL Divergence(2) (0) | 2026.04.08 |
| 엔트로피(Entropy) 이야기(3) - 섀넌 (0) | 2026.04.06 |
| 엔트로피(Entropy) 이야기(2) - 볼츠만 (0) | 2026.04.06 |
| 엔트로피(Entropy) 이야기(1) - 클라우시우스 (1) | 2026.04.06 |