손실 함수(Loss Functions): MSE vs MAE vs Cross-Entropy 시각화
요약
MSE, MAE, Cross-Entropy 등 주요 손실 함수의 특성과 차이점을 설명합니다. 각 함수가 모델의 학습 목표와 이상치 대응 방식에 미치는 영향을 시각화 도구와 함께 다룹니다.
핵심 포인트
- MSE는 오차를 제곱하여 큰 오차에 민감하게 반응함
- MAE는 선형적 페널티를 부여하여 이상치에 강건함
- Cross-Entropy는 분류 문제에서 확률 기반의 강력한 교정력을 제공함
- 손실 함수의 형태(기울기)가 역전파와 학습 속도에 결정적 영향을 미침
잘못된 손실 함수(loss function)를 선택하면 모델은 잘못된 것을 '완벽하게' 최적화합니다. 손실(loss)은 학습 과정에서 줄이려고 노력하는 단 하나의 숫자이므로, 무엇이 "틀렸는지"를 조용히 정의합니다. 저는 왜 선택이 중요한지 직접 볼 수 있도록 MSE, MAE, 그리고 cross-entropy를 위한 대화형 시각화 도구를 만들었습니다.
🎯 예측값 드래그하기: https://dev48v.infy.uk/dl/day6-loss-functions.html
이것은 DeepLearningFromZero의 6일 차 내용입니다.
손실(Loss) = "얼마나 틀렸는지"를 나타내는 하나의 숫자
네트워크의 출력값은 실제 정답(truth)과 비교되어 하나의 스칼라(scalar) 값으로 압축됩니다. 학습의 모든 과정은 이 숫자를 더 작게 만드는 데 존재합니다. 손실 함수를 선택하는 것은 곧 네트워크의 전체 목표를 정의하는 것입니다.
MSE — 오차를 제곱함 (회귀 (regression))
const mse = (pred, y) => (pred - y) ** 2;
제곱을 한다는 것은 4만큼 틀리면 16배의 타격을 입고, 1만큼 틀리면 1배의 타격을 입는다는 것을 의미합니다. MSE는 큰 오차에 집착합니다. 큰 실수가 용납되지 않을 때는 훌륭하지만, 이상치(outliers)가 모델을 끌고 다닐 위험이 있을 때는 위험할 수 있습니다.
MAE — 절대 오차 (absolute error), 이상치에 강함 (outlier-robust)
const mae = (pred, y) => Math.abs(pred - y);
선형적 페널티(Linear penalty): 4만큼 틀리면 1만큼 틀렸을 때보다 정확히 4배의 타격을 입습니다. 하나의 튀는 이상치가 전체를 지배할 수 없습니다. 트레이드오프(trade-off)는 기울기(gradient)가 일정하다는 점인데, 이로 인해 정답 근처에서 학습이 더 느리고 덜 정밀할 수 있습니다.
Cross-entropy — 분류 (classification)를 위한 함수
출력이 확률(probability)일 때는 MSE를 사용하지 않습니다. Cross-entropy는 확신이 있고 정답인 경우에 보상을 주며, 확신이 있는데 틀린 경우에는 잔혹하게 벌을 줍니다.
const bce = (p, y) => -(y * Math.log(p) + (1 - y) * Math.log(1 - p));
실제 클래스에 대해 1%의 확률을 예측하면 손실값은 무한대를 향해 비명을 지릅니다. 데모에서 Classification으로 전환하고 p를 0에 가깝게 슬라이드하여 값이 폭발하는 것을 확인해 보세요.
학습이 실제로 사용하는 것은 기울기(slope)입니다
역전파(Backprop)는 손실의 _값(value)_을 따르는 것이 아니라, 손실의 **기울기(gradient)**를 따라 아래로 내려갑니다. 이것이 형태가 중요한 이유입니다. 매우 틀렸을 때 나타나는 cross-entropy의 가파른 기울기는 강력한 교정력을 제공하여, 분류기(classifiers)가 MSE보다 더 빠르게 학습할 수 있도록 돕습니다.
grad = dLoss / dPred; // 이 경로를 따른 경사 하강법 (gradient descent) 단계
손실 함수(loss)를 선택하는 것은 설계 결정입니다
가격을 예측하시나요? MSE 또는 MAE를 사용하세요. 예/아니오(Yes/no)인가요? 이진 교차 엔트로피 (Binary cross-entropy)를 사용하세요. 여러 선택지 중 하나(One-of-many)인가요? 범주형 교차 엔트로피 (Categorical cross-entropy)를 사용하세요. 동일한 네트워크라도 손실 함수가 다르면 진정으로 다른 동작을 보입니다. 왜냐하면 손실 함수가 당신이 실제로 중요하게 여기는 바를 인코딩(encode)하기 때문입니다.
핵심 요약 (The takeaway)
손실 함수는 목표입니다. 이를 작업(task)에 맞게 일치시키세요. 그리고 학습을 구동하는 것은 바로 손실 함수의 _기울기(slope)_라는 점을 기억하세요. 데모에서 예측값(prediction)을 드래그하여 MSE의 포물선이 MAE의 완만한 V자 형태보다 얼마나 높게 솟아 있는지 확인해 보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기