[Home] AI로 돌아가기

Loss 함수성능의 관계

(1) Loss 함수란 무엇인가?

Loss 함수는 인공지능 모델이 예측한 출력값 \( \hat{y} \)와 실제 정답값 \( y \) 사이의 차이를 수치화하여 표현하는 함수이다. 이 함수는 학습의 기준이 되며, 모델은 손실값을 최소화하는 방향으로 가중치를 조정하여 학습을 수행한다.

Loss 함수가 왜 중요한지는 학습 과정과 연결해서 이해하는 것이 좋다. 모델은 학습 과정에서 역전파(Backpropagation)를 통해 손실값을 각 가중치로 미분한 기울기(gradient)를 계산하고, 경사 하강법(Gradient Descent)을 이용해 손실값이 작아지는 방향으로 가중치를 갱신한다. 즉 Loss 함수는 단순히 "얼마나 틀렸는가"를 나타내는 숫자가 아니라, 모델이 어느 방향으로, 얼마나 크게 가중치를 조정해야 하는지를 알려주는 나침반 역할을 한다.

(2) 성능에 영향을 미치는가?

Loss 함수는 모델의 성능에 직접적인 영향을 미친다. 동일한 모델 구조라 하더라도, 사용된 Loss 함수에 따라 학습이 이루어지는 방향과 결과가 달라진다. 예를 들어, 클래스 불균형 데이터에서는 단순한 교차 엔트로피보다 Focal Loss나 가중치 기반 손실 함수가 더 나은 성능을 보일 수 있다. 적절하지 않은 Loss 함수 선택은 학습의 불안정, 과적합, 혹은 낮은 일반화 성능을 초래할 수 있다.

예: 이상치(outlier)가 있는 회귀 문제

집값을 예측하는 회귀 모델을 학습시키는 데이터에 입력 오류로 값이 비정상적으로 큰 이상치가 하나 섞여 있다고 하자.

이처럼 같은 데이터, 같은 모델 구조라도 어떤 Loss 함수를 선택하느냐에 따라 최종 성능과 학습 안정성이 크게 달라질 수 있다.

(3) Loss 함수 유형과 특성 비교

Loss 함수 적용 분야 특징
MSE 회귀 큰 오차에 민감
MAE 회귀 이상치에 덜 민감
Cross Entropy 이진/다중 분류 확률 기반 분류에 적합
Focal Loss 클래스 불균형 어려운 샘플에 가중치 부여

3.1 평균제곱오차(MSE)

MSE는 예측값과 실제값의 차이(오차)를 제곱하여 평균낸 값이다. 오차를 제곱하기 때문에 오차가 클수록 그 영향이 기하급수적으로 커져, 큰 오차(이상치)에 매우 민감하다는 특징이 있다. 주로 회귀(Regression) 문제에 사용된다.

\[ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

3.2 평균절대오차(MAE)

MAE는 예측값과 실제값의 차이를 절댓값으로 취해 평균낸 값이다. 오차를 제곱하지 않으므로 MSE에 비해 이상치에 덜 민감하며, 오차의 크기에 비례해서 손실이 늘어난다는 장점이 있다. 다만 0 부근에서 미분이 불연속(꺾이는 지점)이라 최적화가 MSE보다 다소 불안정할 수 있다.

\[ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| \]

3.3 교차 엔트로피(Cross Entropy)

교차 엔트로피는 모델이 예측한 확률 분포 \( \hat{y} \)와 실제 정답의 분포 \( y \)가 얼마나 다른지를 측정하는 손실 함수로, 이진/다중 분류 문제에서 널리 사용된다. 정답 클래스에 대한 예측 확률이 1에 가까울수록 손실값이 0에 가까워지고, 정답과 동떨어진 확률을 예측할수록 손실값이 급격히 커진다.

\[ \text{CE} = - \sum_{i} y_i \log(\hat{y}_i) \]

3.4 포컬 손실(Focal Loss)

Focal Loss는 교차 엔트로피를 변형한 손실 함수로, 이미 잘 분류되고 있는 "쉬운" 샘플의 손실 기여도는 줄이고, 잘못 분류되고 있는 "어려운" 샘플에 더 큰 가중치를 부여한다. 이를 통해 클래스 불균형(예: 배경이 대부분이고 객체가 드문 물체 탐지 문제)이 심한 데이터에서도 소수 클래스나 어려운 샘플을 소홀히 학습하지 않도록 돕는다.

\[ \text{FL}(p_t) = -\alpha_t (1 - p_t)^{\gamma} \log(p_t) \]

여기서 \( p_t \)는 정답 클래스에 대한 모델의 예측 확률, \( \gamma \)(집중 파라미터)는 쉬운 샘플의 가중치를 얼마나 줄일지를 조절하며, \( \alpha_t \)는 클래스 간 균형을 맞추는 가중치이다. \( \gamma=0 \)이면 Focal Loss는 일반 교차 엔트로피와 동일해진다.

(4) 예시로 이해하기: Loss 값 계산해보기

간단한 숫자 예시로 MSE와 MAE가 이상치에 어떻게 다르게 반응하는지 직접 계산해보자. 실제값 \( y \)와 예측값 \( \hat{y} \)이 다음과 같이 4개의 데이터로 주어졌다고 하자 (마지막 데이터는 오차가 큰 이상치이다).

데이터 실제값 $y$ 예측값 $\hat{y}$ 오차 $(y-\hat{y})$ 오차의 제곱 오차의 절댓값
132.50.50.250.5
255.2-0.20.040.2
343.80.20.040.2
4 (이상치)61.05.025.05.0

이 값들로 MSE와 MAE를 각각 계산하면 다음과 같다.

\[ \text{MSE} = \frac{0.25 + 0.04 + 0.04 + 25.0}{4} = \frac{25.33}{4} \approx 6.33 \] \[ \text{MAE} = \frac{0.5 + 0.2 + 0.2 + 5.0}{4} = \frac{5.9}{4} \approx 1.48 \]

이상치 하나의 오차(5.0)가 MSE에서는 제곱되어(25.0) 전체 손실값을 지배하는 반면(6.33 중 대부분이 이 하나의 데이터에서 발생), MAE에서는 다른 데이터들과 비슷한 비중(5.0)으로만 반영되어 전체 손실값(1.48)이 상대적으로 덜 왜곡되는 것을 확인할 수 있다. 이 계산 결과는 (2)에서 설명한 "MSE는 이상치에 민감하고 MAE는 상대적으로 안정적이다"라는 특징을 수치로 보여준다.

(5) 결론

Loss 함수는 단순히 모델의 오차를 기록하는 지표가 아니라, 경사 하강법을 통해 모델이 학습해 나가는 방향 자체를 결정하는 핵심 요소이다. 문제 유형(회귀/분류), 데이터의 특성(이상치 존재 여부, 클래스 불균형 정도)에 따라 적합한 Loss 함수가 달라지므로, 모델 성능을 높이기 위해서는 모델 구조나 하이퍼파라미터뿐 아니라 Loss 함수의 선택 역시 신중하게 고려해야 한다.