D.S. MistakesEssay

[데이터 과학자의 흔한 착각 2_2] 분포(Distribution)라는 것은 머신러닝, 딥러닝과 거리가 멀다?_비용함수와 손실함수

공유는 즐거워 2024. 3. 7. 10:44

1. 서론

앞서의 글에서 머신러닝과 딥러닝을 이용함에 있어서 분포를 이해함이 어떤 점에서 좋은 지 개념적으로 알아보았다. 그럼 그 분포의 개념이 어떤 점에서 쓰이는지 알아보도록 하자.

2. 손실함수

손실함수(Loss function)이란 실제값에 비해 가정한 모델의 $h(\theta)$가 얼마나 잘맞추었는지 판단하는 함수이다. 보통 다음과 같은 것들을 손실함수라고 정의 한다.

  • Squared Error,제곱오차 = $(y-\hat y)^2 $
  • Absolute Error, 절대오차 = $ |y-\hat y| $

이것은 각 하나의 관찰값들에서 구해지는 것인데, 모델 학습에 쓰이는 것은 아래 그림과 같이 보통 N 개의 값들이 존재하므로, 보통 비용함수(Cost function)는 손실함수의 평균으로 정의된다.

각각의 데이터 포인트에서 Loss가 생긴다

2. 비용함수

머신러닝/딥러닝 알고리즘에서의

  • 학습(Learning)이라는 것은, "모델의 최적 예측 성능을 위한 최적의 가중치를 찾는 과정" 이라고 볼 수 있다.
  • 최적화(Optimization)라는 것은 학습의 반복을 통해서 "비용함수의 값이 가장 작아지는 최적의 하이퍼파라미터를 찾는 과정"이다.

변수가 1개인 단순선형회귀를 예시로 들면, 데이터를 잘 설명하는 w, 즉 기울기 혹은 가중치를 찾는 것이며,
하이퍼파라미터가 포함되는 라쏘, 릿지의 경우 반복된 실험을 통해서 규제의 강도를 정하는 가장 적절한 $\lambda$ 를 찾는 것이다.

이를 달성하기 위한 여러 방법 중 경사하강법(Gradient Descent) 기반의 방식이 가장 대표적인 알고리즘 방식이다.

Gradient Descent

  • 목적함수란, 최적화 알고리즘에서 최대값 또는 최소값을 찾아야하는 함수를 말한다.
  • 즉, 비용함수는 최적화 알고리즘의 목적함수이다. (편의를 위해서 비용함수로 통일)
  • 머신러닝/딥러닝은 한 번(1 epoch)에 학습 시킬 데이터의 크기(batch size)를 정한다.
    한 번에 하나의 관측치를 사용하는 것이 아니기 때문에, 비용함수가 필요하다.
  • 비용함수는 손실함수를 사용하여 정의될 수 있다.

1. Mean Squared Error (MSE)

MSE는 예측값과 실제값의 차이의 제곱을 평균한 것. 이는 회귀 문제에서 널리 사용된다. MSE의 수식은 다음과 같다.

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

여기서 (n)은 샘플의 수, (y_i)는 실제값, (\hat{y}_i)는 예측값이다.

2. Mean Absolute Error (MAE)

MAE는 예측값과 실제값의 차이의 절대값을 평균한 것 이 또한 회귀 문제에서 사용되는 지표. MAE의 수식은 아래와 같다.

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

3. Binary Cross-Entropy

이진 분류 문제에서 사용되는 손실 함수. 예측된 확률과 실제 값의 차이를 측정. Binary Cross-Entropy의 수식은 다음과 같다.

$$
\text{Binary Cross-Entropy} = -\frac{1}{n} \sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)]
$$

여기서 $y_i$는 실제 레이블이고, $\hat{y}_i$는 예측된 확률

4. Multinomial Log Loss (Categorical Cross-Entropy)

다중 클래스 분류 문제에서 사용되는 손실 함수, 예측된 확률 분포와 실제 레이블의 분포 사이의 거리를 측정. Multinomial Log Loss의 수식은 아래와 같음.

$$
\text{Multinomial Log Loss} = -\frac{1}{n} \sum_{i=1}^{n} \sum_{c=1}^{M} y_{ic} \log(\hat{y}_{ic})
$$

여기서 $n$은 샘플의 수, $M$은 클래스의 수, $y_{ic}$는 실제 레이블이 클래스 $c$에 해당하는지의 이진 지표 (1이면 해당, 0이면 비해당), $\hat{y}_{ic}$는 클래스 $c$에 대한 예측 확률

4. 비용함수에 대한 고찰

MSE나 MAE의 경우, 관찰값과 예측값의 차이의 제곱합이나 절대값을 최소화한다는 것은 직관적으로 이해하더라도, 분류문제의 binary-crossentropy나 multinomial log-loss 비용함수는 왜 저렇게 생긴것이며, 왜 저렇게 생긴식을 최소화하는 것이 비용함수로 생기는 걸까?

분류문제의 경우 최대우도추정(Maximum Likelihood Estimation) 기법을 이용하여 도출한다는 설명이 많지만, 제대로 이해하긴 어려웠다.

<3편에서 계속>

참고