77. 크로스 엔트로피 오차 (Cross-Entropy Error / Log Loss)

⚠️ 이 문서는 "이 사진은 고양이인가 강아지인가?"처럼 인공지능이 정답의 클래스(Class)를 고르는 **분류(Classification) 문제에서, 모델의 확률적 확신도와 실제 정답 사이의 불일치(오차)를 수학적으로 계산하는 가장 핵심적인 손실 함수인 '크로스 엔트로피'**를 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 모델이 "이 사진이 개일 확률은 80%야"라고 확률적($\hat{y}$)으로 대답했을 때, 실제 정답이 '개(1.0)'라면 정답의 확률 분포와 모델이 찍은 확률 분포 사이의 **'정보량의 차이(엔트로피 격차)'**를 점수로 매기는 공식이다.
  2. 가치: MSE(평균제곱오차)를 분류 문제에 쓰면 오차 그래프가 울퉁불퉁해져 학습이 멈춰버리는(Local Minima) 치명적 문제가 발생하지만, CEE는 로그(Log) 함수를 씌워 그래프를 부드러운 밥그릇 모양(Convex)으로 만들어주어 경사하강법이 완벽하게 작동하게 해준다.
  3. 기술 체계: 두 가지를 고르는 문제에서는 이진 교차 엔트로피(BCE)와 Sigmoid 함수를 짝꿍으로 쓰고, 여러 개 중 하나를 고르는 다중 분류 문제에서는 범주형 교차 엔트로피(CCE)와 Softmax 함수를 한 세트로 사용한다.

Ⅰ. 분류 문제에서 뺄셈(MSE)이 통하지 않는 이유

숫자(집값)를 맞히는 것과 정체(고양이)를 맞히는 것은 수학적으로 완전히 다르다.

  1. 분류 모델의 출력 형태:
    • 분류 AI는 "사과", "바나나"라고 글자로 대답하지 않는다. Softmax 함수를 통과시켜 [사과 0.8, 바나나 0.1, 포도 0.1] 처럼 합이 1이 되는 '확률값' 배열을 뱉어낸다. 정답(사과)은 [1.0, 0.0, 0.0]이다.
  2. MSE(제곱 오차)의 비효율성:
    • 확률 0.8과 정답 1.0의 차이(0.2)를 제곱해서 벌점을 매기는 MSE 방식을 써도 되긴 한다.
    • 하지만 이렇게 하면 모델의 미분(기울기) 계산 시 중간에 평평한 고원(Plateau)이나 울퉁불퉁한 골짜기 구간이 많이 생겨서, 오차가 더 이상 줄어들지 않고 학습이 완전히 멈춰버리는 현상(Vanishing Gradient)이 발생한다.

📢 섹션 요약 비유: 과녁 맞히기(집값 예측)는 중심에서 몇 cm 빗나갔는지 뺄셈(MSE)으로 자를 대고 재면 되지만, "당신 혈핵형이 A형일 확률이 몇 %인가요?"라는 주관식 질문(분류 예측)의 오차는 자로 잴 수 없기 때문에 다른 차원의 채점 방식이 필요한 것입니다.


Ⅱ. 크로스 엔트로피의 수학적 원리 (로그 함수의 마법)

정보이론(Information Theory)에서 빌려온 이 수식은 확률에 로그(log)를 씌운다.

  1. 수식 (단일 데이터 기준):
    • $ \text{CEE} = - \sum y_i \log(\hat{y}_i) $
    • ($y_i$는 실제 정답 0 또는 1, $\hat{y}_i$는 모델이 예측한 확률 0.0~1.0)
  2. 수식이 작동하는 직관적 과정:
    • 정답 배열이 [1, 0, 0]이라면, 오직 1인 곳(정답 항목)에 대해서만 $-\log(\text{예측확률})$을 계산한다. 나머지(0)는 곱해져서 무시된다.
    • 정답(사과)에 대해 모델이 "사과일 확률 99%(0.99)"라고 예측했다면, $-\log(0.99) \approx 0.01$ (벌점 거의 없음).
    • 반대로 "사과일 확률 1%(0.01)"라고 완전히 헛다리를 짚었다면, $-\log(0.01) \approx 4.6$ (엄청난 폭탄 벌점 부여).
  3. 가혹한 패널티 메커니즘:
    • 로그 함수의 그래프 특성상, 정답(1.0)에서 멀어질수록 벌점 곡선이 하늘 무서운 줄 모르고 수직으로 치솟는다(무한대). 모델이 오답을 강하게 확신할수록 극도로 가혹한 철퇴를 내리는 구조다.

📢 섹션 요약 비유: 학생이 사지선다 시험에서 "확실히 1번입니다!(100%)"라고 찍었는데 오답일 경우, "겸손하지 못하게 오답을 확신하다니 괘씸하다!"며 벌점을 제곱 오차보다 훨씬 끔찍하게 무한대로 때려버려, AI가 헛다리를 짚을 때 절대 확신(교만)하지 못하게 강력히 교정하는 채점표입니다.


Ⅲ. 활용 체계: BCE와 CCE의 구분

문제의 성격에 따라 수식의 변형이 일어난다.

  1. 이진 분류 (Binary Cross-Entropy, BCE):
    • 스팸 메일인가 아닌가? (Yes/No 문제)
    • 출력층 노드가 1개이고, Sigmoid 활성화 함수를 통해 0~1 사이의 확률값 1개를 도출한다.
    • 수식에 $(1-y)\log(1-\hat{y})$ 항이 추가되어 0일 때와 1일 때의 오차를 한 줄로 완벽히 커버한다.
  2. 다중 클래스 분류 (Categorical Cross-Entropy, CCE):
    • 이 숫자가 0부터 9 중 무엇인가? (여러 개 중 하나 고르기)
    • 출력층 노드가 여러 개(예: 10개)이고, Softmax 함수를 통해 모든 확률의 합이 1이 되도록 맞춘다.
    • 정답 라벨은 반드시 원-핫 인코딩(One-Hot Encoding, [0,0,1,0,...]) 형태로 변환되어 있어야 수식이 성립한다.

📢 섹션 요약 비유: 동전 던지기(앞/뒤) 내기를 할 때는 심판(BCE)이 한 명만 있으면 결과를 바로 판정할 수 있지만, 10마리 말이 달리는 경마(다중 분류)에서 돈을 걸었을 때는 10마리 말의 확률을 모두 계산해 주는 전문 배당사(CCE)와 베팅 표(원-핫 인코딩)가 필요한 원리입니다.