AL,ML 학부연구생/논문 분석

Cross Entropy Loss는 무엇인가?

김형준 2026. 5. 20. 16:12
반응형

1. 정의

Cross Entropy Loss는 모델이 예측한 확률 분포와 실제 정답 분포가 얼마나 다른지를 측정하는 손실 함수입니다.

분류 문제에서 가장 많이 사용되는 손실 함수이며, 특히 다음 상황에서 핵심적으로 사용됩니다.

이미지 분류
텍스트 분류
음성 분류
CNN 분류기
Transformer
LLM next-token prediction
 

한 문장으로 정의하면 다음과 같습니다.

Cross Entropy Loss = 정답 클래스에 모델이 얼마나 높은 확률을 부여했는지 평가하는 손실 함수
 

조금 더 정확히 말하면 다음입니다.

Cross Entropy Loss = 실제 정답 분포를 기준으로 예측 확률 분포가 얼마나 비효율적인지 측정하는 함수
 

즉, 단순히 “맞았다 / 틀렸다”만 보는 것이 아닙니다.

정답을 맞혔는가?
정답에 얼마나 높은 확률을 줬는가?
틀렸다면 얼마나 확신하면서 틀렸는가?
 

까지 함께 평가합니다.


2. Cross Entropy Loss의 핵심 직관

Cross Entropy는 다음 원리로 동작합니다.

정답 클래스 확률이 높으면 loss가 작다.
정답 클래스 확률이 낮으면 loss가 크다.
정답 클래스 확률이 거의 0이면 loss가 매우 커진다.
 

예를 들어 정답이 “고양이”라고 하겠습니다.

모델 예측정답 클래스 확률평가
고양이 0.99 매우 높음 loss 매우 작음
고양이 0.70 높음 loss 작음
고양이 0.30 낮음 loss 큼
고양이 0.01 매우 낮음 loss 매우 큼

즉, Cross Entropy는 모델에게 다음과 같이 학습시킵니다.

정답 클래스 확률을 최대한 높여라.
오답 클래스 확률은 낮춰라.
틀린 예측을 확신하지 마라.
 

3. Entropy란 무엇인가

Cross Entropy를 이해하려면 먼저 Entropy를 이해해야 합니다.

Entropy는 정보이론에서 나온 개념이며, 의미는 다음과 같습니다.

Entropy = 불확실성의 크기
 

또는 다음처럼 이해할 수 있습니다.

Entropy = 어떤 결과가 나올지 예측하기 어려운 정도
 

3.1 동전 예시

공정한 동전이 있다고 하겠습니다.

앞면: 50%
뒷면: 50%
 

이 경우 앞면이 나올지 뒷면이 나올지 예측하기 어렵습니다.

불확실성 큼
Entropy 큼
 

반대로 다음과 같은 동전이 있다고 하겠습니다.

앞면: 99%
뒷면: 1%
 

이 경우 거의 앞면이 나올 것이라고 예측할 수 있습니다.

불확실성 작음
Entropy 작음
 

따라서 Entropy는 다음처럼 정리할 수 있습니다.

결과가 예측하기 어려울수록 entropy가 크다.
결과가 거의 확실할수록 entropy가 작다.
 

4. Cross Entropy란 무엇인가

Entropy가 “실제 분포 자체의 불확실성”을 나타낸다면, Cross Entropy는 다음을 측정합니다.

실제 정답 분포를 기준으로 했을 때,
모델의 예측 분포가 얼마나 비효율적인가
 

즉, 다음 질문에 답합니다.

정답 기준에서 봤을 때 모델의 예측은 얼마나 나쁜가?
 

예를 들어 정답이 고양이인데 모델이 다음처럼 예측했다고 하겠습니다.

고양이: 0.01
강아지: 0.89
자동차: 0.10
 

이 경우 모델은 정답인 고양이에 거의 확률을 주지 않았습니다.

Cross Entropy는 이를 매우 나쁜 예측으로 판단합니다.

정답 클래스 확률이 낮음
→ loss 큼
→ 강한 벌점
 

5. Cross Entropy Loss 수식

5.1 Multi-Class Classification 수식

다중 클래스 분류에서 Cross Entropy Loss는 다음과 같습니다.

L = -Σᵢ yᵢ log(pᵢ)
 

각 항의 의미는 다음과 같습니다.

기호의미
L loss 값
C 클래스 개수
yᵢ 실제 정답 분포, 보통 one-hot
pᵢ 모델이 예측한 i번째 클래스 확률
log 로그 함수

정답이 one-hot이면 대부분의 yᵢ는 0이고, 정답 클래스만 1입니다.

따라서 실제로는 다음만 남습니다.

L = -log(정답 클래스 확률)
 

즉, Cross Entropy는 사실상 다음을 봅니다.

모델이 정답 클래스에 몇 % 확률을 줬는가?
 

6. One-Hot Encoding과 Cross Entropy

예를 들어 클래스가 다음과 같다고 하겠습니다.

[고양이, 강아지, 자동차]
 

정답이 고양이면 one-hot label은 다음입니다.

y = [1, 0, 0]
 

모델 예측이 다음과 같다고 하겠습니다.

p = [0.7, 0.2, 0.1]
 

Cross Entropy는 다음처럼 계산됩니다.

L = -(1 × log(0.7) + 0 × log(0.2) + 0 × log(0.1))
 

0이 곱해진 항은 사라집니다.

L = -log(0.7)
 

즉, 정답 클래스인 고양이의 확률만 loss 계산에 직접 남습니다.

따라서 핵심은 다음입니다.

Cross Entropy는 정답 클래스 확률을 직접 평가한다.
 

7. 왜 log를 사용하는가

Cross Entropy에서 log를 사용하는 이유는 정답 확률이 낮을 때 강한 패널티를 주기 위해서입니다.

수식은 다음과 같습니다.

L = -log(p_true)
 

여기서 p_true는 정답 클래스에 대한 예측 확률입니다.

7.1 정답 확률이 높을 때

p_true = 0.99
-log(0.99) ≈ 0.01
 

loss가 매우 작습니다.

7.2 정답 확률이 중간일 때

p_true = 0.5
-log(0.5) ≈ 0.69
 

loss가 어느 정도 있습니다.

7.3 정답 확률이 낮을 때

p_true = 0.01
-log(0.01) ≈ 4.61
 

loss가 매우 큽니다.

7.4 정답 확률이 거의 0일 때

p_true → 0
-log(p_true) → ∞
 

loss가 폭발적으로 커집니다.

즉, log의 역할은 다음입니다.

정답인데 확률을 거의 0으로 예측한 경우 매우 강하게 벌점 부여
 

8. Softmax와 Cross Entropy의 관계

Cross Entropy는 보통 Softmax와 함께 사용됩니다.

신경망의 마지막 layer는 보통 확률을 바로 출력하지 않습니다.
대신 각 클래스에 대한 raw score를 출력합니다.

이 raw score를 logit이라고 합니다.

예:

logits = [2.1, 1.3, 0.2]
 

이 값은 아직 확률이 아닙니다.

합이 1이 아님
음수도 가능
범위 제한 없음
 

Softmax는 이 logits를 확률 분포로 바꿉니다.

softmax(logits) = [0.62, 0.28, 0.10]
 

그 다음 Cross Entropy가 정답 클래스 확률을 기준으로 loss를 계산합니다.

전체 흐름은 다음과 같습니다.

CNN / Transformer 출력
→ logits
→ Softmax
→ class probability
→ Cross Entropy Loss
 

9. Softmax + Cross Entropy가 중요한 이유

Softmax와 Cross Entropy를 함께 쓰면 gradient가 매우 단순해집니다.

logit을 zᵢ, softmax 확률을 pᵢ, 정답 one-hot을 yᵢ라고 하면 다음이 됩니다.

∂L / ∂zᵢ = pᵢ - yᵢ
 

이 식이 매우 중요합니다.

예를 들어 예측이 다음과 같다고 하겠습니다.

p = [0.7, 0.2, 0.1]
 

정답은 첫 번째 클래스입니다.

y = [1, 0, 0]
 

그러면 gradient는 다음과 같습니다.

p - y = [0.7 - 1, 0.2 - 0, 0.1 - 0]
      = [-0.3, 0.2, 0.1]
 

의미는 다음입니다.

클래스gradient의미
정답 클래스 -0.3 확률을 더 올려야 함
오답 클래스 1 0.2 확률을 낮춰야 함
오답 클래스 2 0.1 확률을 낮춰야 함

즉, Softmax + Cross Entropy는 모델에게 매우 직접적인 학습 신호를 줍니다.

정답 클래스는 올려라.
오답 클래스는 내려라.
 

10. 역전파에서 Cross Entropy의 역할

Cross Entropy는 학습의 출발점입니다.

모델이 예측을 하면 loss가 계산됩니다.

예측 확률 p
정답 y
→ Cross Entropy Loss L
 

그 다음 역전파는 loss를 기준으로 gradient를 계산합니다.

∂L / ∂W
 

이 gradient는 다음을 의미합니다.

어떤 weight를 어느 방향으로 바꾸면 loss가 줄어드는가?
 

그 후 optimizer가 weight를 업데이트합니다.

W ← W - η ∂L/∂W
 

따라서 Cross Entropy의 역할은 단순한 점수 계산이 아닙니다.

모델이 어떤 방향으로 학습해야 하는지 결정하는 기준
 

입니다.


11. Cross Entropy의 진짜 목적

Cross Entropy는 단순히 “틀린 정도”를 계산하는 함수가 아닙니다.

진짜 목적은 다음입니다.

예측 확률 분포를 실제 정답 분포에 가깝게 만드는 것
 

즉, 모델이 단순히 정답을 맞히는 것만이 아니라, 올바른 확률 체계를 배우도록 만듭니다.

예를 들어 같은 정답이라도 다음 두 예측은 다르게 평가됩니다.

예측 A: 정답 클래스 0.51
예측 B: 정답 클래스 0.99
 

둘 다 argmax 기준으로는 정답일 수 있습니다.
하지만 Cross Entropy는 B를 더 좋은 예측으로 봅니다.

이유는 다음입니다.

B가 정답에 더 높은 확신을 주었기 때문
 

12. MSE 대신 Cross Entropy를 쓰는 이유

분류 문제에서는 보통 MSE보다 Cross Entropy가 더 적합합니다.

12.1 이유 1. Cross Entropy는 분류에 특화되어 있다

분류 문제의 목표는 정답 클래스 확률을 높이는 것입니다.

Cross Entropy는 바로 이 목표를 직접 최적화합니다.

정답 클래스 확률 p_true를 높이면 loss가 감소
 

반면 MSE는 확률 분포의 숫자 차이를 제곱해서 봅니다.

MSE = (예측값 - 정답값)²
 

분류 문제에서는 정답 클래스 확률을 직접 밀어올리는 Cross Entropy가 더 자연스럽습니다.


12.2 이유 2. Cross Entropy는 틀린 예측에 강한 패널티를 준다

정답 확률이 매우 낮으면 Cross Entropy는 loss를 크게 만듭니다.

예:

정답 확률 = 0.01
Cross Entropy = -log(0.01) ≈ 4.61
 

즉, 모델이 정답을 거의 불가능하다고 예측하면 강하게 벌점을 줍니다.

반면 MSE는 상대적으로 패널티가 약할 수 있습니다.


12.3 이유 3. Softmax와 결합 시 gradient가 깔끔하다

Softmax + Cross Entropy는 gradient가 다음처럼 단순합니다.

∂L / ∂zᵢ = pᵢ - yᵢ
 

이 식은 역전파를 안정적이고 효율적으로 만듭니다.

즉, 모델이 다음 방향으로 바로 학습할 수 있습니다.

정답 클래스 확률 증가
오답 클래스 확률 감소
 

12.4 이유 4. MSE는 gradient가 작아질 수 있다

MSE를 sigmoid 또는 softmax와 함께 사용하면 gradient가 작아져 학습이 느려질 수 있습니다.

특히 모델이 매우 틀렸는데도 gradient가 충분히 강하지 않을 수 있습니다.

결과적으로:

weight 업데이트 약함
학습 속도 느림
수렴 어려움
 

이 발생할 수 있습니다.


12.5 이유 5. Cross Entropy는 확률 분포 자체를 학습한다

Cross Entropy는 단순한 숫자 차이가 아니라, 예측 분포와 정답 분포의 차이를 최소화합니다.

즉, 다음을 학습합니다.

모델이 얼마나 올바른 확률 체계를 배우고 있는가
 

그래서 classification 문제에서 더 좋은 성능을 내는 경우가 많습니다.


13. Binary Cross Entropy, BCE

Binary Cross Entropy는 이진 분류에 사용하는 Cross Entropy입니다.

예:

스팸 / 정상
암 / 정상
사기 / 정상
relevant / irrelevant
 

수식은 다음과 같습니다.

L = -[y log(p) + (1-y) log(1-p)]
 

각 항의 의미는 다음입니다.

기호의미
y 실제 정답, 0 또는 1
p positive class 예측 확률
1-p negative class 예측 확률

13.1 y = 1일 때

L = -log(p)
 

positive가 정답이므로 p가 높아야 합니다.

13.2 y = 0일 때

L = -log(1-p)
 

negative가 정답이므로 p가 낮아야 합니다.

BCE는 보통 Sigmoid와 함께 사용됩니다.

logit
→ sigmoid
→ probability
→ BCE Loss
 

14. Categorical Cross Entropy

Categorical Cross Entropy는 다중 클래스 분류에서 사용됩니다.

예:

고양이
강아지
자동차
비행기
 

이 경우 보통 Softmax와 함께 사용합니다.

logits
→ softmax
→ class probability distribution
→ categorical cross entropy
 

정답은 보통 one-hot encoding입니다.

예:

정답 = 강아지
classes = [고양이, 강아지, 자동차]
one-hot = [0, 1, 0]
 

15. Sparse Categorical Cross Entropy

Categorical Cross Entropy와 같은 목적이지만, 정답 표현 방식이 다릅니다.

15.1 Categorical Cross Entropy

정답을 one-hot으로 표현합니다.

[0, 1, 0]
 

15.2 Sparse Categorical Cross Entropy

정답을 class index로 표현합니다.

1
 

둘은 본질적으로 같은 loss를 계산합니다.

차이는 정답 label 형식입니다.

방식정답 표현
Categorical Cross Entropy one-hot vector
Sparse Categorical Cross Entropy class index

16. Weighted Cross Entropy

데이터가 불균형할 때 사용합니다.

예를 들어 암 진단 데이터가 다음과 같다고 하겠습니다.

정상: 99%
암: 1%
 

이 경우 모델이 모든 샘플을 정상이라고 예측해도 accuracy는 99%가 될 수 있습니다.

하지만 암을 놓치면 매우 큰 문제입니다.

Weighted Cross Entropy는 소수 클래스에 더 큰 weight를 줍니다.

암 class weight ↑
정상 class weight ↓
 

수식 개념은 다음과 같습니다.

L = -Σᵢ wᵢ yᵢ log(pᵢ)
 

여기서 wᵢ는 클래스별 가중치입니다.

즉, 중요한 클래스나 희귀 클래스가 틀렸을 때 더 큰 벌점을 줍니다.


17. Cross Entropy의 장점

장점설명
분류 문제에 적합 정답 클래스 확률을 직접 최적화
확률 기반 학습 모델이 확률 분포를 학습
강한 패널티 정답 확률이 낮을 때 loss가 크게 증가
Softmax와 궁합 좋음 gradient가 p - y로 단순해짐
학습 효율 좋음 역전파가 안정적
정보이론 기반 이론적으로 해석 가능
CNN/Transformer/LLM에서 표준 실무적으로 매우 널리 사용

18. Cross Entropy의 단점

단점설명
noisy label에 취약 잘못된 정답 label도 강하게 학습
outlier에 민감 확신 있게 틀린 샘플에 큰 loss 발생
class imbalance 문제 다수 class에 편향될 수 있음
overconfidence 가능 모델이 지나치게 확신하는 확률을 출력할 수 있음
calibration 문제 예측 확률이 실제 확률과 맞지 않을 수 있음

19. Cross Entropy와 LLM

LLM도 본질적으로 Cross Entropy를 사용합니다.

LLM은 다음 token을 예측합니다.

예:

Patient has chest
 

다음 token 정답이 pain이라면, 모델은 vocabulary 전체에 대해 확률 분포를 만듭니다.

pain: 0.35
cough: 0.10
fever: 0.05
...
 

Cross Entropy는 정답 token인 pain의 확률을 기준으로 loss를 계산합니다.

L = -log P(pain)
 

즉, LLM 학습은 기본적으로 다음을 반복합니다.

정답 다음 token의 확률을 높인다.
오답 token의 확률을 낮춘다.
 

20. Cross Entropy와 CNN

CNN 이미지 분류에서도 마지막 단계는 보통 다음과 같습니다.

image
→ convolution layers
→ feature vector
→ linear layer
→ logits
→ softmax
→ cross entropy loss
 

예를 들어 클래스가 다음과 같다고 하겠습니다.

고양이
강아지
자동차
 

CNN이 이미지를 보고 logits를 출력합니다.

z = [2.1, 1.3, 0.2]
 

Softmax가 확률로 바꿉니다.

p = [0.62, 0.28, 0.10]
 

정답이 고양이면 loss는 다음입니다.

L = -log(0.62)
 

이 loss를 기준으로 CNN의 filter weight와 linear weight가 업데이트됩니다.


21. Cross Entropy 계산 예시

정답 클래스가 첫 번째 클래스라고 하겠습니다.

y = [1, 0, 0]
 

모델 예측이 다음과 같습니다.

p = [0.7, 0.2, 0.1]
 

Cross Entropy:

L = -log(0.7)
 

자연로그 기준으로:

L ≈ 0.357
 

다른 예측을 보겠습니다.

p = [0.1, 0.8, 0.1]
 

정답 클래스 확률은 0.1입니다.

L = -log(0.1)
L ≈ 2.303
 

즉, 정답 확률이 낮을수록 loss가 커집니다.


22. Cross Entropy의 본질

Cross Entropy의 본질은 다음입니다.

정답 클래스 확률을 최대화하도록 모델을 학습시키는 함수
 

더 깊게 말하면 다음입니다.

예측 확률 분포를 실제 정답 분포와 최대한 같게 만드는 최적화 목표
 

즉, Cross Entropy는 모델에게 다음을 요구합니다.

정답에는 높은 확률을 줘라.
오답에는 낮은 확률을 줘라.
확신 있게 틀리지 마라.
확률 분포를 올바르게 만들어라.
 

23. 핵심 암기 표

개념설명
Cross Entropy Loss 예측 확률 분포와 정답 분포의 차이를 측정하는 loss
Entropy 불확실성의 크기
Cross Entropy 정답 분포 기준에서 예측 분포의 비효율성
핵심 수식 L = -Σ yᵢ log(pᵢ)
one-hot일 때 L = -log(p_true)
Softmax logits를 확률 분포로 변환
BCE 이진 분류용 Cross Entropy
Categorical CE 다중 클래스 분류용 Cross Entropy
Weighted CE 클래스 불균형 보정
Gradient Softmax와 결합 시 p - y
목적 정답 클래스 확률 최대화
주요 사용처 CNN, Transformer, LLM, 분류 모델

24. 최종 요약

Cross Entropy Loss는 분류 문제에서 가장 핵심적인 손실 함수입니다.

모델 예측 확률 분포와 실제 정답 분포가 얼마나 다른지 측정한다.
 

실제 one-hot 정답에서는 거의 다음과 같이 작동합니다.

정답 클래스 확률이 높으면 loss 작음
정답 클래스 확률이 낮으면 loss 큼
정답 클래스 확률이 거의 0이면 loss 매우 큼
 

Softmax와 결합하면 다음 gradient가 나옵니다.

∂L / ∂zᵢ = pᵢ - yᵢ
 

이 식은 모델에게 명확한 학습 방향을 제공합니다.

정답 클래스 확률은 올리고,
오답 클래스 확률은 내린다.
 

따라서 Cross Entropy는 단순한 오차 계산식이 아니라, 모델이 올바른 확률 분포를 학습하도록 만드는 핵심 최적화 목표입니다.

반응형