AI/Machine Learning

[Machine Learning] 손실 함수 - 비용 함수, 목적 함수

byunghyun23 2022. 9. 27. 20:38

손실 함수(loss function)는 학습 모델(머신러닝 등)의 예측값이 실젯값과 얼마나 차이가 나는지 그 손실 정도를 수치로 나타내는 함수입니다. 좋은 모델을 만들기 위해서는 손실을 최소화시켜야 합니다.손실 함수는 각 데이터마다 예측값과 실제값의 차이를 계산하지만, 비용 함수는 데이터 셋 전체를 대상으로 계산합니다.손실 함수와 비용 함수가 차이는 있지만, 실제로는 두 함수를 구분 없이 사용하는 편입니다.

 

1. L1 손실 함수

L1 Loss

L1 Loss는 실젯값과 예측값의 차이에 기댓값을 취한 것입니다.

손실을 맨해튼 거리(Manhattan distance)로 계산한 것과 같습니다.

이와 관련된 비용 함수에는 MAE(Mean Absolute Error)가 있습니다.

MAE

MAE는 데이터 셋의 L1 Loss의 평균을 나타내는 비용 함수입니다.

 

 

2. L2 손실 함수

L2 Loss

L2 Loss는 실젯값과 예측값의 차이에 제곱을 취한 것입니다.

손실을 유클리드 거리(Euclidean distance)로 계산한 것과 같습니다.

이와 관련된 비용 함수에는 MSE(Mean Squared Error), RMSE(Root Mean Squared Error)가 있습니다.

MSE
RMSE

 

MSE는 데이터 셋의 L2 Loss의 평균을 나타내는 비용 함수입니다.

그리고 RMSE는 MSE에 제곱근을 취한 것입니다.

 

MSE는 실젯값과 예측값의 차이를 제곱하므로 이상치(outlier) 변화에 민감합니다.

RMSE는 제곱근을 사용하기 때문에 이상치와 관계없이 안정된 값을 보여줍니다.

모델의 비용 함수를 결정할 때 이상치에 중점을 두고 싶다면 MSE를, 그렇지 않으면 MAE 또는 RMSE를 사용하면 됩니다.

 

맨해튼 거리와 유클리드 거리에 대한 정보는 아래 위키백과를 참조해주세요.

https://ko.wikipedia.org/wiki/%EB%A7%A8%ED%95%B4%ED%8A%BC_%EA%B1%B0%EB%A6%AC

 

맨해튼 거리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 맨해튼 거리(Manhattan distance, 혹은 택시 거리, L1 거리, 시가지 거리,Taxicab geometry)는 19세기의 수학자 헤르만 민코프스키가 고안한 용어로, 보통 유클리드 기하학

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%EA%B1%B0%EB%A6%AC

 

유클리드 거리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 유클리드 거리(Euclidean distance)는 두 점 사이의 거리를 계산할 때 흔히 쓰는 방법이다. 이 거리를 사용하여 유클리드 공간을 정의할 수 있으며, 이 거리에 대응하

ko.wikipedia.org

 

3. 엔트로피

엔트로피(entropy)는 확률 변수의 불확실성 정도를 측정하기 위해 사용합니다.

확률 변수 X의 엔트로피는 아래와 같이 정의합니다.

엔트로피는 의사 결정 나무(Desicion Tree)에서 주로 사용됩니다.

Entropy

 

4. 크로스 엔트로피

엔트로피는 하나의 분포를 대상으로 하는 반면, 크로스 엔트로피(cross entropy)는 두 분포 P(x), Q(x)를 대상으로 엔트로피를 측정해 두 분포 간 차이를 계산합니다.

머신러닝에서는 P(x)를 실제값의 분포, Q(x)를 예측값의 분포로 설정합니다.

CrossEntropy

 

다음과 같이 입력에 대한 모델의 출력이 3개(A, B, C 3개 분류)라고 할 때, 실젯값과의 크로스 엔트로피 계산은 다음과 같습니다.

모델 출력에 softmax 함수를 사용하고, y값을 원-핫 인코딩 한것과 유사합니다.

실제로 모델 출력에 softmax 함수를 사용하여 학습할 때, 손실 함수로 크로스 엔트로피를 사용합니다.

 

결국 A라고 예측한 값인 0.92를 1에 가까운 값이 나오도록 학습하는 것입니다.