손실 함수
손실 함수
개요
머신러닝·딥러닝 모델은 입력 데이터와 정답(라벨) 사이의 차이를 최소화하도록 학습한다. 이 차이를 수치적으로 표현한 것이 손실 함수(Loss Function)이다. 손실 함수는 모델이 현재 얼마나 잘 예측하고 있는지를 정량화하고, 최적화 알고리즘(예: 경사하강법)이 파라미터를 업데이트하는 기준이 된다. 손실 함수는 문제 유형(회귀·분류·시계열 등), 데이터 특성, 학습 목표에 따라 다양한 형태가 존재한다.
1. 손실 함수의 정의와 역할
1.1 손실 함수와 비용 함수
- 손실 함수(Loss) : 하나의 샘플에 대해 모델이 만든 예측값과 실제값 사이의 오차를 나타낸다.
- 비용 함수(Cost Function) : 전체 학습 데이터셋에 대한 손실값을 평균하거나 합산한 것으로, 최적화 대상이 된다.
예시 : 평균제곱오차(MSE)는 각 샘플의 제곱 오차를 평균한 비용 함수이며, 개별 샘플의 제곱 오차가 손실 함수가 된다.
1.2 목적 함수(Objective Function)
손실(또는 비용) 함수에 정규화 항(regularization term) 을 더한 형태를 목적 함수라 부른다. 정규화는 모델 복잡도를 억제해 과적합(overfitting)을 방지한다.
| 목적 함수 구성 | 설명 |
|---|---|
| 손실(Loss) | 데이터와 모델의 차이 |
| 정규화(Regularization) | 파라미터 크기 제어(L2, L1 등) |
| 가중치 조정(Weighting) | 클래스 불균형 시 가중치 부여 |
2. 주요 손실 함수 종류
2.1 회귀 문제용 손실 함수
| 손실 함수 | 수식 | 특징 |
|---|---|---|
| 평균제곱오차 (MSE) | \( L = \frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y}_i)^2 \) | 큰 오차에 더 큰 페널티 부여, 미분이 간단 |
| 평균절대오차 (MAE) | \( L = \frac{1}{N}\sum_{i=1}^{N} | y_i-\hat{y}_i |
| Huber 손실 | \( L = \begin{cases} \frac{1}{2}(y-\hat{y})^2 & | y-\hat{y} |
2.2 분류 문제용 손실 함수
| 손실 함수 | 수식 (이진) | 특징 |
|---|---|---|
| 교차 엔트로피 (Binary Cross‑Entropy) | \( L = -[y\log\hat{p}+(1-y)\log(1-\hat{p})] \) | 확률 출력에 적합, 로짓(logit)과 결합 시 안정적 |
| 다중 클래스 교차 엔트로피 (Categorical Cross‑Entropy) | \( L = -\sum_{c=1}^{C} y_c \log \hat{p}_c \) | 소프트맥스(softmax)와 함께 사용 |
| 힌지 손실 (Hinge Loss) | \( L = \max(0, 1 - y\cdot \hat{y}) \) | 서포트 벡터 머신(SVM)에서 사용, 마진(margin) 개념 |
| 포컬 손실 (Focal Loss) | \( L = -(1-\hat{p})^{\gamma}\,y\log\hat{p} \) | 클래스 불균형에 강인, \(\gamma\) 로 어려운 샘플 강조 |
2.3 특수·확률적 손실 함수
- KL 발산 (Kullback‑Leibler Divergence) : 두 확률 분포 \(P\)와 \(Q\) 사이의 차이를 측정, 변분 오토인코더(VAE) 등에 사용.
- 워시스테인 거리 (Wasserstein Loss) : GAN(Generative Adversarial Network)에서 WGAN에 적용, 훈련 안정성을 크게 향상.
3. 손실 함수 선택 기준
- 문제 유형 – 회귀 vs. 분류 vs. 순서 예측 등
- 데이터 특성 – 이상치 존재 여부, 클래스 불균형 정도
- 학습 안정성 – 미분이 연속적인지, 수치적 안정성(underflow/overflow) 여부
- 계산 비용 – 복잡한 손실은 GPU 메모리·시간 소모 증가
- 목표와 해석 가능성 – 비즈니스 KPI와 직접 연결되는 손실을 선호
예시) 의료 영상 분류에서 포컬 손실을 사용하면 희귀 질병 클래스에 대한 민감도가 크게 상승한다.
4. 최적화와 그래디언트
손실 함수는 목적 함수와 함께 경사하강법(Gradient Descent) 등 최적화 알고리즘에 의해 최소화된다.
아래는 MSE 손실에 대한 파라미터 \(w\)의 그래디언트 유도 예시이다.
import numpy as np
def mse_loss(y, y_pred):
return np.mean((y - y_pred) ** 2)
def grad_w(x, y, w):
"""
선형 모델 y_pred = x @ w 에 대한 MSE 손실의 그래디언트
"""
N = x.shape[0]
y_pred = x @ w
# ∂L/∂w = -2/N * Xᵀ (y - y_pred)
return -2.0 / N * x.T @ (y - y_pred)
# 사용 예
X = np.array([[1, 2], [3, 4], [5, 6]]) # 입력 행렬 (N×D)
y = np.array([1, 2, 3]) # 정답 벡터
w = np.zeros(X.shape[1]) # 파라미터 초기화
loss = mse_loss(y, X @ w)
gradient = grad_w(X, y, w)
print("Loss:", loss, "Gradient:", gradient)
위와 같이 손실 함수가 미분 가능하고, 그래디언트가 연속하면 효율적인 파라미터 업데이트가 가능하다.
5. 구현 예시 (Python / PyTorch)
5.1 PyTorch에서 교차 엔트로피 손실 사용
import torch
import torch.nn as nn
criterion = nn.CrossEntropyLoss(weight=torch.tensor([1.0, 2.0])) # 클래스 가중치 적용
logits = torch.tensor([[2.0, 0.5], [0.3, 1.2]]) # 모델 출력 (배치×클래스)
targets = torch.tensor([0, 1]) # 정답 라벨
loss = criterion(logits, targets)
loss.backward() # 그래디언트 역전파
print(f'Loss: {loss.item():.4f}')
5.2 TensorFlow/Keras에서 Huber 손실 사용
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(10,))
])
model.compile(optimizer='adam',
loss=tf.keras.losses.Huber(delta=1.0))
# x_train, y_train 은 (batch, 10) 과 (batch, 1) 형태의 데이터
model.fit(x_train, y_train, epochs=20)
6. 최신 연구 동향
- Self‑Supervised Learning 에서는 InfoNCE와 같은 대조 손실(contrastive loss)이 핵심 역할을 한다.
- Neural Architecture Search(NAS) 에서는 Latency‑aware loss를 도입해 연산량·지연시간을 동시에 최소화한다.
- Robust Learning 분야에서는 Adversarial Loss와 Distributionally Robust Optimization(DRO) 손실이 모델의 적대적 공격에 대한 내성을 향상시킨다.
- Multitask Learning에서는 Weighted Sum Loss 대신 Dynamic Weighting(예: GradNorm) 기법이 각 태스크의 학습 속도에 따라 가중치를 자동 조정한다.
7. 참고 자료
- Goodfellow, I., Bengio, Y., Courville, A. Deep Learning. MIT Press, 2016.
- Bishop, C. M. Pattern Recognition and Machine Learning. Springer, 2006.
- Lin, T.-Y., Goyal, P., Girshick, R., He, K., & Dollár, P. “Focal Loss for Dense Object Detection”, IEEE ICCV, 2017.
- Kingma, D. P., & Welling, M. “Auto‑Encoding Variational Bayes”, ICLR, 2014.
- Arjovsky, M., Chintala, S., & Bottou, L. “Wasserstein GAN”, ICML, 2017.
이 문서는 2026년 현재의 머신러닝 연구 흐름과 실무 적용 사례를 반영하여 작성되었습니다.
이 문서는 AI 모델(gpt-oss-120b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.