C.W.K.
Stream
Lesson 02 of 06 · published

손실 함수: 우리가 최적화하는 자

~10 min · loss, MSE, MAE, cross-entropy

Level 0수학 초심자
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

Loss = "얼마나 틀렸어?"

모든 학습 알고리즘이 모델이 얼마나 못 하는지 말해주는 숫자 필요. 그게 loss, 손실 함수 선택이 ML 에서 가장 중요한 결정 중 하나 — 모델이 뭘 "틀림" 으로 여길지 모양 잡음.

세 일꾼

Loss공식언제 사용
Mean Squared Error (MSE)회귀. 큰 오차 무겁게 페널티.
Mean Absolute Error (MAE)이상치 있는 회귀. 모든 오차 선형 취급.
Cross-Entropy분류. 확률 기반.

MSE vs MAE — 왜 제곱이 중요

MSE 가 오차 제곱, 잔차 10 = 100 기여 vs 잔차 1 = 1 기여. 모델이 작은 거 약간 나빠도 큰 오차 필사적으로 회피 학습. 작은 오차 용서되고 큰 거 catastrophic 일 때 좋음. 이상치 있을 때 나쁨 (제곱이 이상치를 loss 지배하게).

MAE 가 모든 오차 선형 취급. 잔차 10 = 10 기여. 이상치 더 관대, 작은 정제는 덜 신경.

손실 함수가 모델한테 뭐 신경 쓸지 말해. 의도적으로 골라 — default 가 아니야. MSE = "큰 놀람 X". MAE = "이상치 존재 OK". Cross-entropy = "분류, 확률 calibrate".

Code

이상치 prone 데이터의 MSE vs MAE·python
import numpy as np

y_true = np.array([1.0, 2.0, 3.0, 4.0, 100.0])      # 마지막 = 이상치
y_pred = np.array([1.1, 1.9, 3.2, 3.8, 5.0])

mse = np.mean((y_true - y_pred) ** 2)
mae = np.mean(np.abs(y_true - y_pred))
print(f"MSE: {mse:.3f}")    # 거대 — 이상치 지배
print(f"MAE: {mae:.3f}")    # 큰데 catastrophic 안 함
분류용 Cross-entropy·python
import torch
import torch.nn.functional as F

logits = torch.tensor([[2.0, 1.0, 0.5]])       # raw 점수
target = torch.tensor([0])                      # 정답 클래스

# Cross-entropy 손실 — 분류용
ce = F.cross_entropy(logits, target)
print(ce.item())                                # ~0.42

External links

Exercise

이상치 예시. MSE vs MAE 최소화 회귀선의 기울기/절편 계산. (MSE 엔 numpy.linalg.lstsq, MAE 엔 scipy.optimize.minimize 로 커스텀 loss). MSE 가 선을 이상치로 끌고; MAE 는 안 그러는 거 봐.
Hint
MSE 는 closed-form (최소자승). MAE 는 X — scipy 옵티마이저로 절대값 오차 loss 최소화.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.