교차엔트로피가 틀린 확신에 더 큰 벌점을 줍니다 | DAKER 커뮤니티
분류 모델을 학습할 때 가장 자주 만나는 손실이 교차엔트로피입니다. 이름은 어렵지만, 말하는 바는 단순합니다. 정답 클래스에 높은 확률을 주면 손실이 작고, 틀린 쪽에 확신을 주면 손실이 큽니다. 이 글은 확률·기댓값·가능도 단어를 빌더용 문장으로 풀고, 교차엔트로피가 왜 그 목표와 맞는지 설명합니다.

모델의 마지막 층이 클래스마다 점수(로짓)를 내면, 소프트맥스가 그 점수를 합이 1인 확률 분포로 바꿉니다. 정답 라벨이 개라면, 우리는 개 자리의 확률 p_개 가 커지기를 바랍니다. 교차엔트로피 손실은 대략 L = −log p_정답 입니다. p가 1에 가까우면 log가 0에 가까워 손실이 작습니다. p가 0.01처럼 작으면 −log가 커져 벌점이 큽니다. 틀린 확신일수록 더 크게 혼낸다는 직관이 수식에 그대로 들어 있습니다.
확률은 믿음을 숫자로 적은 것입니다
확률은 0과 1 사이의 숫자로, 어떤 사건이 얼마나 그럴듯한지를 나타냅니다. 분류에서는 이 이미지가 개일 확률 0.7처럼 읽습니다. 모든 클래스 확률의 합은 1이어야 합니다. 소프트맥스가 그 제약을 강제합니다. 로짓이 커질수록 해당 클래스 확률이 커지고, 다른 클래스 확률은 상대적으로 줄어듭니다.
기댓값은 확률로 가중한 평균입니다. 주사위에서 각 면이 나올 확률과 면의 숫자를 곱해 더하면 평균 점수가 나옵니다. 학습에서도 손실의 기댓값을 줄인다고 말합니다. 데이터 분포에서 샘플을 뽑아 평균 손실을 계산하는 미니배치 평균이, 곧 그 기댓값의 실용적 근사입니다. 기댓값이라는 단어가 나와도, 빌더는 가중 평균이라고 읽으면 됩니다.
가능도는 정답이 나올 법함입니다
가능도(likelihood)는 모델이 정한 확률 분포 아래에서, 관측된 정답이 얼마나 나올 법한지를 말합니다. 분류에서는 정답 클래스 확률 자체가 그 샘플의 가능도에 해당합니다. 학습의 한 가지 목표는 가능도를 키우는 것입니다. 가능도를 키우는 방향과, −log 가능도(음의 로그가능도)를 줄이는 방향은 같습니다. 로그를 취하는 이유는 곱셈을 덧셈으로 바꾸고, 최적화 곡선을 다루기 쉽게 만들기 위함입니다.
여러 샘플이 독립이라고 가정하면, 전체 가능도는 각 샘플 가능도의 곱입니다. 로그를 취하면 합이 됩니다. 그래서 배치 손실이 샘플별 −log p_정답 의 평균으로 자연스럽게 나옵니다. 프레임워크의 CrossEntropyLoss가 내부에서 하는 일도 이 계산에 가깝습니다. 로짓에서 로그소프트맥스까지를 한 번에 안정적으로 계산하는 구현일 뿐입니다.

교차엔트로피가 말하는 벌점의 모양
p_정답 = 0.9 이면 L ≈ 0.105 입니다. p = 0.5 이면 L ≈ 0.693 입니다. p = 0.2 이면 L ≈ 1.609 입니다. p = 0.05 이면 L ≈ 3.0 근처입니다. 확률이 절반일 때보다, 아주 낮은 확률로 틀릴 때 벌점이 가파르게 커집니다. 이 성질 때문에 모델은 정답을 대충 맞히는 것을 넘어, 정답에 확률 질량을 모으도록 강하게 밀립니다.
원-핫 라벨이 아닌 부드러운 라벨(label smoothing)을 쓰면, 정답에 1.0을 두지 않고 약간 분산합니다. 과도한 확신을 줄여 일반화에 도움이 되는 경우가 있습니다. 그래도 손실의 뼈대는 같습니다. 목표 분포와 모델 분포가 얼마나 다른지를 재는 일입니다. KL 다이버전스와의 관계도 같은 가족 이야기입니다. 지금은 이름보다, 정답 확률을 키우면 손실이 줄어든다는 문장만 단단히 잡으면 됩니다.
회귀의 MSE와 무엇이 다른가
숫자 예측(회귀)에서는 평균제곱오차(MSE)처럼 거리 기반 손실을 자주 씁니다. 분류에서는 클래스라는 이산 선택에 확률을 붙이므로, 거리보다 가능도·교차엔트로피가 잘 맞습니다. 물론 예외도 있습니다. 로짓을 직접 맞추는 실험적 손실, 대비 학습, 랭킹 손실 등이 있지만, 입문 경로의 중심은 여전히 교차엔트로피입니다.
불균형 데이터에서는 다수 클래스만 맞춰도 평균 손실이 낮아 보일 수 있습니다. 클래스 가중치·포컬 로스·샘플링 전략은 그 치우침을 보정하는 도구입니다. 기본 교차엔트로피가 틀렸다기보다, 기댓값을 어떤 분포 기준으로 취할지를 다시 정하는 일에 가깝습니다. 메트릭(F1·AUROC)과 손실이 어긋날 때도, 최적화 목표와 평가 목표가 다르다는 점을 먼저 확인합니다.
빌더가 실무에서 만나는 장면
소프트맥스 없이 로짓에 교차엔트로피를 바로 넣는 API가 많습니다. 내부에서 로그소프트맥스를 합쳐 계산하므로, 직접 소프트맥스를 한 뒤 다시 로그를 취하면 불안정해질 수 있습니다. 문서의 권장 경로를 따르는 편이 안전합니다. 다중 라벨 분류에서는 시그모이드와 이진 교차엔트로피 조합이 흔합니다. 클래스마다 독립적으로 있을법함을 모델링하기 때문입니다.
언어모델의 다음 토큰 예측도 거대한 다중 클래스 분류입니다. 어휘 크기만큼의 클래스에 대해 −log p_정답토큰 을 최소화합니다. 퍼플렉서티는 그 가능도를 읽기 쉬운 스케일로 바꾼 지표입니다. 즉, LLM 학습 이야기도 같은 확률·가능도 문장 위에 있습니다. 339+ 대회의 분류 트랙에서 보이던 손실 선택이, 생성 모델에서도 연속됩니다.
소프트맥스 온도와 확신의 조절
소프트맥스에 온도 T를 넣어 로짓을 T로 나누면, 분포의 날카로움이 바뀝니다. T가 작으면 분포가 더 뾰족해져 확신이 커지고, T가 크면 분포가 평평해집니다. 지식 증류에서는 선생님 모델의 부드러운 확률을 학생에게 전달하기 위해 높은 온도를 쓰기도 합니다. 서비스를 위한 추론 단계에서도, 샘플링 온도는 같은 가족의 조절입니다. 손실 학습과 생성 샘플링이 다른 장면처럼 보여도, 확률 질량을 어떻게 퍼줄지라는 질문은 공유됩니다.
보정이 안 된 모델은 확률 숫자와 실제 빈도가 어긋날 수 있습니다. 예를 들어 0.9라고 예측한 케이스의 실제 정답 비율이 0.7일 수 있습니다. 온도 스케일링·플래토 스케일링 같은 보정은 그 간격을 줄이려는 후처리입니다. 경진대회에서는 종종 랭킹 메트릭만으로도 충분하지만, 위험도가 큰 도메인에서는 확률의 의미가 더 중요합니다. 손실을 줄였다고 해서 항상 보정이 좋아지지는 않습니다.
기댓값을 어떤 분포로 취할지가 설계입니다
학습 목표를 기댓값으로 쓴다는 말은, 어떤 데이터 분포의 평균 손실을 줄이겠다는 선언입니다. 학습 데이터가 실제 서비스 분포와 다르면, 그 기댓값을 잘 줄여도 현장에서 실패할 수 있습니다. 도메인 적응·재가중·커리큘럼 학습은 모두 기댓값을 취하는 분포를 바꾸는 전략으로 읽을 수 있습니다. 클래스 불균형에서 가중 손실을 쓰는 이유도 같습니다.
강화학습의 보상 기댓값, 자기지도 학습의 대비 손실, 확산 모델의 노이즈 예측 손실도, 겉모습은 달라도 ‘어떤 분포 아래의 평균 목표를 줄이는가’라는 뼈대를 공유합니다. 교차엔트로피는 그 중 가장 많이 보는 분류용 사례일 뿐입니다. 새 손실 함수를 만나면 수식의 기호보다 먼저, 무엇을 평균 내고 무엇을 벌주는지를 한국어 문장으로 다시 적어 보십시오.
로그가 만드는 수치 안정성
확률을 직접 곱하면 아주 작은 숫자들의 곱이 되어 언더플로가 납니다. 로그 가능도로 바꾸면 합이 되어 다루기 쉽습니다. 프레임워크가 로그소프트맥스를 한 커널로 제공하는 이유도, 지수와 정규화를 안정적인 순서로 계산하기 위함입니다. 손으로 소프트맥스를 만든 뒤 다시 로그를 취하면, 큰 로짓에서 inf가 나기 쉽습니다. 문서가 로짓을 그대로 넣으라고 하는 이유를 여기로 이해하면 됩니다.
라벨 스무딩·클래스 가중치·샘플 가중치는 모두 −log p 항에 곱하거나 목표 분포를 살짝 바꾸는 변형입니다. 기본 식의 뼈대는 유지한 채, 어떤 오류를 더 비싸게 만들지 조절합니다. 실무에서는 손실 값을 다른 실험과 직접 비교할 때 이 변형이 켜져 있는지 먼저 확인해야 합니다. 같은 이름 CrossEntropy라도 옵션이 다르면 스케일이 달라집니다.
오늘 빌더가 가져갈 체크리스트
- 확률은 합이 1이 되도록 믿음을 나눈 숫자입니다.
- 기댓값은 확률로 가중한 평균이며, 배치 평균 손실이 그 근사입니다.
- 가능도는 정답이 모델 아래에서 나올 법함입니다.
- 교차엔트로피는 대략 −log p_정답 이며, 틀린 확신에 큰 벌점을 줍니다.
- 가능도를 키우는 일과 교차엔트로피를 줄이는 일은 같은 방향입니다.
- 소프트맥스+CE는 분류의 기본 조합입니다.
- 불균형·다중라벨·생성 모델은 같은 가족의 변형입니다.
- 메트릭과 손실이 다르면 최적화 목표를 먼저 점검합니다.
- 다음 글에서는 선형층만으로 부족한 이유, 활성화 함수와 비선형성으로 이어갑니다.
이 글이 아닌 것
이 글은 정보이론 교재의 엔트로피 증명을 대신하지 않습니다. 학습 코드에 필요한 해석만 제공합니다.
이 글은 모든 손실 함수의 비교표가 아닙니다. 교차엔트로피·가능도 축만 다룹니다.
한 줄로 줄이면 이렇습니다. 교차엔트로피가 틀린 확신에 더 큰 벌점을 줍니다. 그 벌점을 줄이는 방향이 곧 정답 가능도를 키우는 방향입니다.