Vision_/배경지식

Loss Function 란?

대장장ㅇi 2024. 9. 4. 13:21

손실 함수(loss function) 란?

딥러닝에서 손실함수란 모델 성능을 나타내는 지표이다. 이는 모델의 예측 값과 실제 값 사이의 차이를 측정한다.

 

손실 함수의 값이 작을수록 모델의 예측이 실제 값에 더 가까워지며(성능 좋음), 빈대로 손실 값이 클수록 실제값과 차이가 크다는 것을(성능 나쁨) 의미한다.

 


 

손실 함수(loss function) 의 역할

1. 모델의 최적화 : 딥러닝 모델을 학습시킬 때, 모델의 파라미터(가중치(weight) 와 편향(bias)) 를 조정하여 손실 함수를 최소화 하는것을 목표로 한다. 이 과정에서 주로 경사 하강법(gradient descent) 등의 최적화 알고리즘이 사용된다.

 

2. 모델 평가 : 모델이 훈련 데이터에 대해 잘 학습하고 있는지를 판단하기 위해, 손실 함수의 값을 모니터링 한다. 이를 통해 과적합(overfitting) 이나 과소적합(underfitting) 의 문제를 감지할 수 있다.

 


 

손실함수의 종류

- 회귀 문제

1. MSE(Mean Squared Error, 평균 제곱 오차) : 실제 값과 예측 값의 차이를 제곱한 후 평균을 구하는 함수이다. 회귀 문제에서 가장 일반적으로 사용된다.

 

- 분류 문제

1. Cross-Entropy Loss(교차 엔트로피 손실) : 다중 클래스 분류 문제에서 자주 사용된다. 예측 확률 분포와 실제 분포(원-핫 인코딩된 라벨) 사이의 차이를 측정한다.

 

2. Binary Cross-Entropy : 이진 분류 문제에서 사용되며, 실제 값과 예측 값이 0 또는 1인 경우의 손실을 계산한다.

 

 


 

Cross-Entropy Loss

Cross-Entropy Loss는 주로 분류 문제에서 사용되는 손실 함수로, 모델의 예측값과 실제값 사이의 차이를 측정하는 데 사용된다. 이 함수는 예측이 실제값과 얼마나 일치하는지를 확률적인 관점에서 평가하며, 모델이 출력한 확률 분포가 실제 라벨의 분포와 얼마나 가까운지를 평가한다.

 

 

1. Binary Cross-Entropy Loss

Binary Cross-Entropu Loss 는 이진 분류 문제에서 사용된다. 이 함수는 두 가지 클래스로 나누어진 데이터를 분류하는 데 적합하다. 이진 분류 문제에서는 출력 노드가 하나이며, 이 노드의 출력은 클래스 1일 확률로 해석된다.

 

$$
\text{Binary Cross-Entropy Loss} = -\frac{1}{N} \sum_{i=1}^{N} \left[y_i \cdot \log(p_i) + (1 - y_i) \cdot \log(1 - p_i)\right]
$$

 

- N : 샘플 수 (batch size)

- y_i : 샘플 i의 실제 라벨(0 또는 1)

- p_i : 샘플 i의 모델이 예측한 클래스 1의 확률

 

이 수식은 예측 확률 p_i 가 실제 라벨 y_i 와 얼마나 일치하는지를 측정하며, 예측이 실제값과 더 멀어질수록 loss 값이 커진다.


2. Categorical Cross-Entropy Loss

Categorical Cross-Entorpy Loss 는 다중 클래스 분류 문제에서 사용된다. 이 겨우, 출력 노드는 클래스의 수와 동일하며, 각 노드는 해당 클래스에 속할 확률을 출력한다. 각 샘플은 하나의 클래스에만 속한다고 가정한다.

 

$$
\text{Categorical Cross-Entropy Loss} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \cdot \log(p_{ij})
$$

 

- N : 샘플 수 (batch size)

- C : 클래스 수

- y_ij : 샘플 i의 실제 클래스 라벨(원-핫 인코딩으로 표현됨, 즉 해당 클래스에만 1, 나머지는 0)

- p_ij : 샘플 i에 대해 모델이 예측한 클래스 j의 확률

 

이 수식은 모델이 예측한 확률 분포가 실제 라벨의 분포(원-핫 인코딩된 라벨) 과 얼마나 일치하는지를 측정한다.

 


3. Sparse Categorical Cross-Entropy Loss

Sparse Categorical Cross-Entropy Loss 는 Categorical Cross-Entropy Loss 와 유사하지만, 라벨을 원-핫 인코딩 없이 정수로 제공할 때 사용된다. 이 방식은 메모리를 절약할 수 있어 큰 클래스 수를 가진 문제에서 유용하다.

 

$$
\text{Sparse Categorical Cross-Entropy Loss} = -\frac{1}{N} \sum_{i=1}^{N} \log(p_{i, y_i})
$$

 

- y_i : 샘플 i의 실제 클래스 라벨 (정수로 표현됨)

- p_i,yi : 샘플 i에 대해 모델이 예측한 실제 클래스 y_i 의 확률

 

이 수식은 Categorical Cross-Entropy 와 동일한 방식으로 동작하지만, 라벨이 원-핫 인코딩 되지 않고 정수로 주어진다는 차이점이 있다.

 


 

MSE(Mean Squared Error)

주로 회귀 문제에서 사용되는 손실 함수로, 모델의 예측 값과 실제 값 사이의 차이를 제곱한 후 평균을 구한 값이다. MSE는 예측 값이 실제 값에서 얼마나 떨어져 있는지를 직관적으로 표현하며, 예측 오차가 클수록 손실 값도 기하급수적으로 증가하게 된다. MSE는 모델을 학습시키는 동안 예측 성능을 평가하고 최적화 하는데 중요한 역할을 한다.

 

 

1. MSE (Mean Squared Error)

MSE는 가장 기본적인 형태의 손실 함수로, 예측 값과 실제 값 사이의 차이를 제곱하고 평균을 구하는 방식이다.

 

$$
\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2
$$

 

- N : 샘플의 수 (batch size)

- y_i : 실제 값(타겟)

- hat{y_i} : 모델이 예측한 값

 

MSE는 각 데이터 포인트에 대해 예측 값과 실제 값의 차이를 계산하고 이를 제곱하여 평균을 내는 방식이다. 오차를 제곱하는 이유는 차이를 모두 양수로 만들어 오차를 극대화 시키고, 특히 큰 오차에 대해 더 큰 패널티를 부과하기 위함이다. 예측이 실제 값과 가까워 질수록 MSE값은 0에 가까워 진다.

 

 

2. RMSE (Root Mean Squared Error)

RMSE는 MSE에서 제곱근을 취한 형태로, 오차를 실제 값과 동일한 차원으로 표현하는 데 유용하다.

 

$$
\text{RMSE} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2}
$$

 

- N : 샘플의 수 (batch size)

- y_i : 실제 값(타겟)

- hat{y_i} : 모델이 예측한 값

 

RMSE는 MSE에 비해 직관적인 해석이 가능한데, 예측 오차를 원래 데이터와 동일한 단위로 표현할 수 있기 때문이다.  RMSE는 예측이 실제 값에 얼마나 가까운지를 실질적인 단위로 보여준다.

 

 

 

3. MAE(Mean Absolute Error)

MAE는 예측값과 실제값 사이의 차이를 절대값으로 변환한 후 평균을 구하는 방식이다.

 

$$
\text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|
$$

 

- | y_i - hat{y_i} | : 샘플의 예측 값과 실제 값 사이의 절대 오차를 의미한다.

 

MSE 와의 차이점은 제곱을 하지 않기 때문에 큰 오차에 대해 덜 민감하다. 따라서 MAE는 이상치(outlier)에 덜 영향을 받는다는 장점이 있다.

 

'Vision_ > 배경지식' 카테고리의 다른 글

Patch란?  (0) 2024.07.29