손실 함수(Loss Function)를 처음 제대로 이해한 건 분류 문제에서 MSE를 쓰다가 학습이 전혀 안 되던 때였습니다. 손실은 줄어드는데 정확도는 그대로였습니다. 손실 함수를 교차 엔트로피로 바꾸자마자 학습이 바로 잡혔습니다. 그때 처음으로 손실 함수 선택이 단순한 수식 교체가 아니라는 걸 실감했습니다.
손실 함수는 모델에게 "무엇이 더 큰 잘못인가"를 가르치는 기준입니다. 같은 오차라도 어떤 손실 함수를 쓰느냐에 따라 모델이 완전히 다른 방향으로 학습합니다. MSE, MAE, 교차 엔트로피가 각각 어떤 상황에 맞는지, 그 이면의 수학적 이유까지 오늘 따라가 보겠습니다.

손실 함수란 무엇인가 — 수학적 벌금 제도
손실 함수는 모델의 예측값과 실제 정답 사이의 차이를 하나의 숫자로 요약합니다. 학습의 목표는 경사하강법으로 이 숫자를 최소화하는 파라미터를 찾는 겁니다. 손실이 크면 많이 틀렸다는 뜻이고, 0에 가까울수록 예측이 정확하다는 뜻입니다.
흥미로운 건 벌점을 매기는 방식에 따라 모델의 학습 방향이 완전히 달라진다는 점입니다. 어떤 함수는 작은 실수에도 크게 반응하고, 어떤 함수는 이상치를 무시합니다. 어떤 함수는 틀린 것 자체보다 "틀리면서 확신한 것"에 더 가혹합니다. 문제의 성격을 파악하고 거기에 맞는 손실 함수를 선택하는 게 모델 설계의 핵심입니다.
예측값 ŷ과 정답 y의 차이 → 하나의 숫자 L로 요약
학습 과정:
L이 크다 → 많이 틀렸다 → 가중치를 크게 수정
L이 작다 → 조금 틀렸다 → 가중치를 조금 수정
L = 0 → 완벽한 예측 (현실에서는 불가능)
→ 손실 함수의 형태가 학습 방향을 결정한다
평균제곱오차(MSE) — 큰 오차를 용납하지 않는 방식
회귀 문제에서 가장 많이 쓰이는 손실 함수가 평균제곱오차(MSE, Mean Squared Error)입니다. 예측값과 정답의 차이를 제곱해서 평균을 냅니다.
예시: 정답=100, 예측=90 → 오차=10 → MSE 기여 = 100
예시: 정답=100, 예측=70 → 오차=30 → MSE 기여 = 900
오차가 3배 커지면 손실은 9배 커진다
→ 큰 오차에 기하급수적으로 민감하게 반응
제곱을 쓰는 이유가 두 가지입니다. 첫째, 오차의 부호(+/-)를 없애서 방향 상관없이 크기만 봅니다. 둘째, 큰 오차에 불균형하게 큰 벌점을 줘서 모델이 치명적인 실수를 피하도록 유도합니다. 이차함수 형태라 모든 지점에서 미분이 가능해서 경사하강법과 궁합이 좋습니다.
단점은 이상치에 취약하다는 점입니다. 데이터 한 개가 극단적으로 튀면 그 하나 때문에 MSE가 폭발합니다. 모델이 대부분의 데이터보다 그 이상치 하나에 집중해서 전체 균형이 무너지는 경우가 생깁니다.
평균절대오차(MAE) — 이상치에 흔들리지 않는 방식
이상치가 많은 데이터에서는 MAE(Mean Absolute Error)가 더 적합합니다. 오차의 절댓값만 씁니다. 제곱을 하지 않으니 벌점이 선형으로 증가합니다.
예시: 정답=100, 예측=90 → 오차=10 → MAE 기여 = 10
예시: 정답=100, 예측=70 → 오차=30 → MAE 기여 = 30
오차가 3배 커지면 손실도 3배만 커진다
→ 이상치 하나가 전체를 망치지 않는다
MAE는 이상치에 MSE보다 훨씬 덜 민감합니다. 전체적인 경향성을 고르게 학습합니다. 단점은 오차가 0인 지점에서 미분이 불가능하다는 겁니다. 경사하강법에서 기울기를 계산할 때 0 근처에서 불안정해집니다. 이 문제를 해결하기 위해 MSE와 MAE의 장점을 섞은 Huber Loss도 씁니다. 오차가 작을 때는 MSE처럼, 클 때는 MAE처럼 작동합니다.
교차 엔트로피 — 확신의 오만함에 벌점을 매기는 방식
분류 문제에서는 "값이 얼마인가"보다 "정답일 확률을 얼마나 확신하는가"가 중요합니다. 여기서 교차 엔트로피(Cross-Entropy)가 등장합니다. 모델이 내놓은 확률 분포가 실제 정답 분포와 얼마나 다른지를 로그 함수로 측정합니다.
정답=1(고양이)일 때:
예측=0.9 → 손실 = -log(0.9) = 0.10 (작음, 잘 맞힘)
예측=0.5 → 손실 = -log(0.5) = 0.69
예측=0.1 → 손실 = -log(0.1) = 2.30 (큼, 크게 틀림)
예측=0.01 → 손실 = -log(0.01) = 4.60 (매우 큼)
→ 틀릴수록 손실이 기하급수적으로 커진다
교차 엔트로피의 핵심은 "오답을 정답이라고 강하게 확신했을 때" 손실이 폭발한다는 겁니다. 정답이 고양이인데 개일 확률을 99%라고 예측하면 손실이 -log(0.01) = 4.60으로 매우 커집니다. 그냥 틀린 것보다 확신하면서 틀린 게 더 나쁘다고 가르치는 겁니다. 이 특성이 분류 문제에서 교차 엔트로피가 표준이 된 이유입니다.
앞서 MLE 글에서 교차 엔트로피가 음의 로그 가능도와 같다고 다뤘습니다. 교차 엔트로피를 최소화하는 게 곧 데이터를 가장 잘 설명하는 파라미터를 찾는 MLE와 수학적으로 동일합니다.
손실 함수와 기울기 소실의 연결
손실 함수 선택이 중요한 또 다른 이유가 역전파에서의 기울기 전파 효율입니다. 이진 분류에서 MSE를 쓰면 Sigmoid 활성화 함수와 결합할 때 기울기 소실 문제가 심해집니다. 모델이 크게 틀렸을 때도 역전파로 전달되는 기울기가 작아서 학습이 느립니다.
MSE 기울기: 2×(1-0.01)×0.01×(1-0.01) ≈ 0.02 (작음)
교차 엔트로피 기울기: -(1/0.01) ≈ -100 (매우 큼)
→ 크게 틀렸을 때 교차 엔트로피가 훨씬 큰 기울기를 제공
→ 경사하강법이 더 빠르게 수정 방향으로 이동
교차 엔트로피는 로그 함수의 미분 특성 덕분에 오차가 클 때 기울기도 크게 확보됩니다. 모델이 크게 틀렸을 때 더 빠르게 배울 수 있는 구조입니다. 분류 문제에서 MSE 대신 교차 엔트로피를 써야 하는 수학적 이유가 바로 이겁니다.
상황별 선택 가이드
결국 손실 함수 선택은 문제의 유형과 데이터의 특성에 달려 있습니다. 틀린 손실 함수를 쓰면 모델이 엉뚱한 방향으로 학습합니다. 아래 기준으로 판단하면 대부분의 상황을 커버할 수 있습니다.
| 문제 유형 | 추천 손실 함수 | 선택 이유 |
|---|---|---|
| 연속 변수 회귀 | MSE | 큰 오차에 민감하고 미분이 매끄러워 최적화에 유리 |
| 이상치 많은 회귀 | MAE / Huber Loss | 극단값에 덜 민감. Huber는 MSE와 MAE의 장점을 절충 |
| 이진 분류 | Binary Cross-Entropy | Sigmoid와 결합해 안정적인 기울기 제공 |
| 다중 클래스 분류 | Categorical Cross-Entropy | Softmax와 결합해 클래스 간 확률 분포를 최적화 |
| 생성 모델(GAN, VAE) | KL 발산 / BCE | 두 확률 분포 간의 거리를 직접 최소화 |
모델이 학습이 안 된다면 가장 먼저 손실 함수를 확인해야 합니다. 분류 문제인데 MSE를 쓰고 있진 않은지, 이상치가 많은 데이터에 MSE를 그대로 쓰고 있진 않은지부터 점검합니다. 이 연재에서 다룬 MLE, 엔트로피, 역전파, 경사하강법이 모두 손실 함수를 중심으로 연결됩니다. 손실 함수를 이해한다는 건 AI 학습의 전체 구조를 이해한다는 것과 같습니다.
'데이터 과학 수학' 카테고리의 다른 글
| 인공지능의 미래와 수학적 통찰, 블랙박스 모델을 넘어 설명 가능한 AI(XAI)로 (0) | 2026.04.13 |
|---|---|
| 차원의 저주(Curse of Dimensionality), 데이터가 많아질수록 성능이 떨어지는 이유와 수학적 해법 (0) | 2026.04.12 |
| 훈련 99% 검증 67%, 과적합을 잡는 L1·L2 규제의 원리 (0) | 2026.04.10 |
| 딥러닝의 심장, 역전파(Backpropagation)와 연쇄 법칙의 마법 (0) | 2026.04.09 |
| 머신러닝의 엔진, 행렬 연산과 선형대수학이 필수적인 이유 (0) | 2026.04.08 |