AI는 무엇을 기준으로 스스로를 고칠까

우리가 모델을 학습시킨다고 말할 때 실제로 모델이 하는 일은 하나입니다.
정답과 예측의 차이를 줄이는 방향으로 파라미터를 계속 수정하는 것입니다.

그렇다면 질문이 생깁니다.
얼마나 틀렸는지를 누가, 어떤 기준으로 판단할까요?

그 역할을 담당하는 핵심이 바로 손실 함수(Loss Function)입니다. 손실 함수는 모델의 오답 정도를 숫자로 바꿔 주는 채점 규칙입니다. 이 값이 작아질수록 모델은 더 나은 방향으로 학습되었다고 볼 수 있습니다.

1. 손실 함수는 학습의 나침반입니다

모델은 손실 함수가 알려주는 방향으로만 움직일 수 있습니다.
즉, 손실 함수를 어떻게 정의하느냐가 모델의 성격을 결정합니다.

같은 데이터, 같은 아키텍처라도 손실 함수를 다르게 두면 결과가 달라집니다.

  • 오차의 평균을 줄이고 싶은가
  • 큰 오차를 더 강하게 벌주고 싶은가
  • 확률 분포 자체를 맞추고 싶은가

이 질문에 따라 손실 함수가 바뀌고, 그에 따라 학습 궤적도 바뀝니다. 그래서 손실 함수는 단순한 수식이 아니라 학습 목표의 명세서라고 보는 편이 정확합니다.

2. 회귀 문제의 기본 MSE와 MAE

연속적인 숫자를 예측하는 회귀에서는 MSE와 MAE가 가장 대표적입니다.

MSE (Mean Squared Error)

예측과 정답의 차이를 제곱해 평균낸 값입니다.

  • 큰 오차에 매우 민감합니다
  • 이상치(outlier)가 있으면 손실이 크게 튑니다
  • 미분이 부드러워 최적화가 안정적인 편입니다

즉, 큰 실수를 강하게 벌주고 싶을 때 적합합니다.

MAE (Mean Absolute Error)

오차의 절댓값 평균입니다.

  • 이상치에 MSE보다 덜 민감합니다
  • 해석이 직관적입니다
  • 일부 구간에서 기울기 특성이 단순해 학습이 느려질 수 있습니다

데이터에 이상치가 많고, 평균적인 절대 오차 자체가 중요할 때 주로 사용합니다.

3. 분류 문제의 표준 Cross Entropy

분류 문제에서는 정답 레이블을 맞추는 것뿐 아니라 정답 클래스에 얼마나 높은 확률을 주는지가 중요합니다. 이때 가장 널리 쓰이는 손실이 Cross Entropy입니다.

Cross Entropy는 모델이 정답 클래스 확률을 낮게 줄수록 큰 패널티를 부여합니다.
즉, "맞췄다/틀렸다"만 보지 않고 확신의 품질까지 채점합니다.

  • 다중 분류: CrossEntropyLoss
  • 이진 분류: BCEWithLogitsLoss

실무에서 자주 발생하는 실수는 다음과 같습니다.

  • 로짓(logit) 입력이 필요한데 softmax/sigmoid를 중복 적용하는 경우
  • 레이블 인코딩 형식(class index vs one-hot)을 잘못 맞추는 경우
  • 클래스 불균형을 무시해 다수 클래스만 잘 맞추는 모델이 되는 경우

4. 분포를 맞추는 손실 KL Divergence

생성 모델, 지식 증류, 확률 분포 정렬에서는 값 하나가 아니라 분포 전체의 차이를 줄여야 합니다. 이때 자주 쓰는 지표가 KL Divergence입니다.

KL은 "기준 분포 대비 현재 분포가 얼마나 다른가"를 측정합니다.
특히 teacher-student 구조나 VAE 같은 확률 모델에서 중요한 역할을 합니다.

다만 KL은 방향성이 있어 KL(P || Q)KL(Q || P)가 다릅니다. 수식은 비슷해 보여도 학습 성질이 달라질 수 있으므로 구현 시 방향을 반드시 확인해야 합니다.

5. 손실 함수 선택은 문제 정의에서 시작합니다

손실 함수는 유행으로 고르는 것이 아니라 문제 정의에서 출발해야 합니다.

  1. 예측 대상이 연속값인가, 클래스인가, 분포인가
  2. 큰 오차를 특별히 강하게 벌줄 필요가 있는가
  3. 데이터가 불균형하거나 노이즈가 많은가
  4. 최종 평가지표(예: F1, AUC, RMSE)와 손실이 정렬되어 있는가

이 네 가지를 먼저 정리하면 손실 함수 선택이 대부분 결정됩니다.

6. 손실이 줄지 않을 때 점검 순서

학습이 안 될 때 많은 경우가 아키텍처 문제로 보이지만, 실제 원인은 손실 설정 오류인 경우가 많습니다. 아래 순서로 점검하면 빠르게 원인을 좁힐 수 있습니다.

  1. 손실 함수 입력 텐서 shape과 dtype이 맞는가
  2. 로짓/확률 입력 조건을 지켰는가
  3. 레이블 전처리가 손실 함수 요구사항과 일치하는가
  4. 학습률이 과도해 손실이 발산하는가
  5. 배치 단위 손실 평균 방식(mean, sum)이 의도와 맞는가

이 점검만으로도 학습 실패 사례의 상당수를 해결할 수 있습니다.

정리

손실 함수는 모델이 학습하는 이유와 방향을 정의하는 핵심 장치입니다.

  • 손실 함수는 "틀린 정도"를 숫자로 바꿔 역전파의 기준을 제공합니다.
  • 회귀에서는 MSE와 MAE, 분류에서는 Cross Entropy가 대표 선택지입니다.
  • 분포 정렬 문제에서는 KL Divergence 같은 확률 기반 손실이 중요합니다.
  • 좋은 모델은 아키텍처뿐 아니라 문제에 맞는 손실 함수 선택에서 시작됩니다.

손실 함수를 정확히 이해하면 모델 성능 개선이 감이 아니라 구조로 보입니다. 그리고 그 순간부터 실험의 성공 확률이 확실히 올라갑니다.


메모

  1. 손실 함수는 학습의 목표 함수를 수학적으로 정의한 것입니다.
  2. 평가지표와 손실 함수가 불일치하면 학습은 잘 되는데 실제 성능은 낮을 수 있습니다.
  3. 분류 문제에서 로짓과 확률 입력 규약을 혼동하면 학습이 쉽게 불안정해집니다.
  4. 손실 값 자체보다 손실 감소 추세와 검증 성능의 동반 개선을 함께 확인해야 합니다.

댓글

0 comments

댓글을 불러오는 중입니다.

댓글 작성은 상단의 Sign In 후 이용할 수 있습니다.