본문 바로가기

시험/기본개념

cross-entropy

**Cross-Entropy(교차 엔트로피)를 한마디로 정의하면, "모델이 내놓은 답이 실제 정답과 얼마나 다른지에 대한 벌점(penalty)"**이라고 생각할 수 있습니다.


## 1. 핵심 아이디어: 날씨 예보로 이해하기

Cross-Entropy를 이해하기 가장 좋은 예시는 '날씨 예보'입니다.

  • 실제 정답: 오늘 비가 왔습니다. (비 올 확률 100%, 맑을 확률 0%)
  • 모델 A (일기예보 앱 A): "비 올 확률 90%, 맑을 확률 10%" 라고 예측.
  • 모델 B (일기예보 앱 B): "비 올 확률 60%, 맑을 확률 40%" 라고 예측.

두 모델 모두 "비"가 올 확률이 더 높다고 맞추긴 했지만, 모델 A가 훨씬 더 정답에 가깝게 예측했죠? Cross-Entropy는 바로 모델 A에게는 낮은 벌점을, 모델 B에게는 높은 벌점을 주는 역할을 합니다.

딥러닝 모델을 학습시킨다는 것은, 결국 이 Cross-Entropy 벌점을 최소화하는 방향으로 모델을 계속 업데이트하는 과정입니다.


## 2. 왜 이름이 '엔트로피'이고, 왜 log를 쓸까요?

이 개념은 **정보 이론(Information Theory)**에서 왔습니다.

  • 정보량(엔트로피) = 놀라움의 정도
    • "해가 동쪽에서 떴다" -> 확률이 100%인 사건. 놀랍지 않죠? -> 정보량 = 0
    • "길에서 5만원을 주웠다" -> 확률이 매우 낮은 사건. 엄청 놀랍죠? -> 정보량 = 매우 큼

수학에서는 이 '놀라움의 정도'를 -log(확률) 로 계산합니다.

  • 확률이 1에 가까우면 (당연한 일): -log(1) = 0 (놀라움 0)
  • 확률이 0에 가까우면 (놀라운 일): -log(0.001)은 매우 큰 양수가 됩니다. (놀라움 큼)

Cross-Entropy Loss는 바로 이 -log(확률)을 이용한 벌점 시스템입니다.

모델이 정답에 대해 예측한 확률값을 -log에 넣는 겁니다.

  • 모델 A: 정답('비')에 대해 90%(0.9) 확률로 예측 → 벌점: -log(0.9) ≈ 0.1 (벌점 낮음)
  • 모델 B: 정답('비')에 대해 60%(0.6) 확률로 예측 → 벌점: -log(0.6) ≈ 0.51 (벌점 높음)
  • 만약 틀린 모델 C가 정답('비')에 대해 1%(0.01)로 예측했다면? → 벌점: -log(0.01) ≈ 4.6 (벌점 폭발!)

이처럼 모델이 정답을 더 높은 확률로 확신할수록 벌점(Loss)은 0에 가까워지고, 정답을 낮은 확률로 예측할수록 벌점이 기하급수적으로 커집니다. 모델은 이 벌점을 줄이기 위해 필사적으로 정답 확률을 높이는 방향으로 학습하게 됩니다.


## ✏️ 주관식 예상 문제

문제: 머신러닝 분류 모델의 손실 함수(Loss Function)로 Cross-Entropy가 널리 사용되는 이유를 '확률'과 '벌점(penalty)'이라는 키워드를 사용하여 서술하시오.

모범 답안: Cross-Entropy는 모델이 예측한 확률 분포와 실제 정답 분포의 차이를 측정하는 손실 함수입니다. 모델이 정답 클래스에 대해 예측한 확률 값에 -log를 취하여 벌점을 계산하는데, 정답을 높은 확률로 예측할수록 벌점은 0에 가깝게 낮아지고, 낮은 확률로 예측할수록 벌점은 기하급수적으로 커집니다. 모델은 이 벌점을 최소화하는 과정에서 정답을 더 확신하도록 학습되기 때문에 분류 모델에 효과적입니다.

 

 

 

P(i)log(Q(i))는 Cross-Entropy 수식의 핵심 부품으로, **"실제 정답()을 기준으로, 모델의 예측()에 대한 놀라움(정보량)의 기댓값을 계산하는 부분"**을 의미합니다.

말이 조금 어려우니, 두 부분으로 나누어 설명해 드릴게요.


## 1. log(Q(i)): 모델 예측의 '놀라움'

앞서 설명했듯이, -log(Q(i))는 '놀라움의 정도' 또는 **'정보량'**을 의미합니다. 모델이 번째 클래스를 정답이라고 예측한 확률 $Q(i)$가 낮을수록(즉, 놀라운 예측일수록) 이 값은 커집니다.

(참고: Cross-Entropy 전체 수식에는 마이너스(-)가 붙어있어 $-\log(Q(i))$가 되지만, 여기서는 부분만 떼어서 보겠습니다.)


## 2. P(i) x log(Q(i)): '진짜' 놀라움만 골라내기

$P(i)$는 번째 클래스가 '실제 정답'일 확률입니다. 이게 왜 중요하냐면, 가중치(weight) 역할을 하기 때문입니다. 즉, 정답인 것의 놀라움만 중요하고, 정답이 아닌 것의 놀라움은 무시하도록 만듭니다.

다시 [개, 고양이, 말] 예시로 돌아가 봅시다.

  • 정답: 고양이
  • 정답 분포 (): [P(개)=0, P(고양이)=1, P(말)=0]
  • 모델 예측 (): [Q(개)=0.2, Q(고양이)=0.7, Q(말)=0.1]

이때 각 클래스별로 P(i) * log(Q(i))를 계산해 보면,

  • '개' 클래스: (실제 정답이 아니므로, 모델이 '개'에 대해 어떻게 예측했는지는 중요하지 않게 됨)
  • '고양이' 클래스 (⭐핵심⭐): (실제 정답이므로, 모델이 '고양이'를 예측한 것에 대한 놀라움()이 그대로 살아남음)
  • '말' 클래스: (실제 정답이 아니므로, 모델이 '말'에 대해 어떻게 예측했는지도 중요하지 않게 됨)

결국 P(i)를 곱해주는 행위는 '필터'처럼 작동합니다. 수많은 예측값() 중에서, 우리가 진짜 관심을 가져야 할 단 하나의 정답에 대한 예측()만을 콕 집어내고, 나머지는 모두 0으로 만들어 버리는 결정적인 역할을 하는 것입니다.

'시험 > 기본개념' 카테고리의 다른 글

XAI , cam, grad cam, lime, shap  (0) 2025.09.01
AI 시스템 설계  (1) 2025.09.01
MoE  (0) 2025.08.31
llm (Bert, RoBERTa, ALBERT,T5,BART)  (0) 2025.08.29
infoNCE loss  (1) 2025.08.29