Deep Learning Basics - 2 : Loss-Function 장단점 및 한계점
Loss Function
딥러닝 모델에서는 Loss Function을 이용하여 모델의 성능을 평가하고 최적화할 수 있습니다.
다양한 시나리오에서 주어진 문제에 적합한 Loss Function을 잘 선택해야 합니다.
Mean Squared Error (MSE)
MSE는 실제 값과 예측 값의 차이를 제곱한 값의 평균을 이용한 Loss Function입니다.
- 장점 : 구현이 간단하고, Gradient Descent를 이용한 최적화가 잘 동작합니다.
- 단점 : Outlier에 민감하게 반응합니다.
- 상황 : Regression 문제에서 자주 사용됩니다.
- 수식: $MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y_i})^2$
Mean Absolute Error (MAE)
MAE는 실제 값과 예측 값의 차이의 절댓값의 평균을 이용한 Loss Function입니다. Regression 문제에서 자주 사용됩니다.
- 장점 : Outlier에 민감하지 않습니다.
- 단점 : Gradient Descent를 이용한 최적화가 잘 동작하지 않습니다.
- 상황 : Regression 문제에서 자주 사용됩니다.
- 수식 : 수식: $MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y_i}|$
Binary Cross-Entropy
Binary Cross-Entropy는 이진 분류 문제에서 자주 사용됩니다. 실제 값과 예측 값의 차이를 이용하여 Loss를 계산합니다.
- 장점 : 이진 분류 문제에서 성능이 우수합니다.
- 단점 : 다중 클래스 분류 문제에서는 사용할 수 없습니다.
- 상황 : 이진 분류 문제에서 자주 사용됩니다.
- 수식: $Binary\ Cross-Entropy = -\frac{1}{n}\sum_{i=1}^{n}[y_i\log(\hat{y_i}) + (1-y_i)\log(1-\hat{y_i})]$
Categorical Cross-Entropy
Categorical Cross-Entropy는 다중 클래스 분류 문제에서 자주 사용됩니다. 실제 값과 예측 값의 차이를 이용하여 Loss를 계산합니다.
- 장점 : 다중 클래스 분류 문제에서 성능이 우수합니다.
- 단점 : 클래스의 개수가 많아질수록 성능이 떨어집니다.
- 상황 : 다중 클래스 분류 문제에서 자주 사용됩니다.
- 수식: $Categorical\ Cross-Entropy = -\frac{1}{n}\sum_{i=1}^{n}\sum_{j=1}^{m}y_{ij}\log(\hat{y_{ij}})$
Huber Loss
Huber Loss는 MAE와 MSE의 장점을 결합한 Loss Function입니다. Outlier에 민감하지 않으며, Gradient Descent를 이용한 최적화가 잘 동작합니다.
- 장점 : Outlier에 민감하지 않습니다.
- 단점 : MAE나 MSE에 비해 구현이 복잡합니다.
- 상황 : Regression 문제에서 자주 사용됩니다.
- 수식: $Huber\ Loss = \frac{1}{n}\sum_{i=1}^{n}L_{\delta}(y_i - \hat{y_i})$
- 여기서 $L_{\delta}$는 아래와 같이 정의됩니다.
$
L_{\delta}(x)=\begin{cases}
\frac{1}{2}x^2 & |x| \leq \delta \
\delta(|x|-\frac{1}{2}\delta) & |x| > \delta
\end{cases}
$
- 여기서 $L_{\delta}$는 아래와 같이 정의됩니다.
Hinge Loss
Hinge Loss는 SVM에서 사용되는 Loss Function입니다. 분류 문제에서 마진을 최대화하는 것을 목적으로 합니다.
- 장점 : SVM에서 좋은 성능을 보입니다.
- 단점 : 다른 Loss Function에 비해 구현이 복잡합니다.
- 상황 : SVM에서 사용됩니다.
- 수식 : $Hinge\ Loss = \frac{1}{n}\sum_{i=1}^{n}\max(0, 1-y_i\hat{y_i})$
KL-Divergence
KL-Divergence는 확률 분포 간의 차이를 이용한 Loss Function입니다. 분류 문제에서 자주 사용됩니다.
- 장점 : KL-Divergence와 관련된 다양한 개념을 이용하여 모델을 개선할 수 있습니다.
- 단점 : 구현이 복잡합니다.
- 상황 : 분류 문제에서 자주 사용됩니다.
- 수식: $KL-Divergence = \sum_{i=1}^{n}y_i\log\frac{y_i}{\hat{y_i}}$
Poisson Loss
Poisson Loss는 회귀 모델에서 이산적인 카운트 값을 예측하는 문제에서 사용됩니다.
- 장점 : Outlier에 민감하지 않습니다.
- 단점 : 데이터가 매우 드문 경우에는 잘 동작하지 않습니다.
- 상황 : 이산적인 카운트 값을 예측하는 문제에서 자주 사용됩니다.
- 수식: $Poisson\ Loss = \frac{1}{n}\sum_{i=1}^{n}(\hat{y_i} - y_i\log\hat{y_i})$
Triplet Loss
Triplet Loss는 Siamese Network에서 사용되는 Loss Function입니다. 두 개의 이미지 쌍이 주어졌을 때, 두 개의 이미지 쌍의 차이를 계산하여 Loss를 계산합니다.
- 장점 : Siamese Network에서 좋은 성능을 보입니다.
- 단점 : 구현이 복잡합니다.
- 상황 : Siamese Network에서 사용됩니다.
- 수식: $Triplet\ Loss = \max(0, m + d_{ap} - d_{an})$
- 여기서 $d_{ap}$은 anchor와 positive의 거리, $d_{an}$은 anchor와 negative의 거리, $m$은 마진입니다.
Contrastive Loss
Contrastive Loss는 Siamese Network에서 사용되는 Loss Function입니다. 두 개의 이미지 쌍이 주어졌을 때, 두 개의 이미지 쌍이 같은 클래스에 속하는 경우 가깝게, 다른 클래스에 속하는 경우 멀게 만듭니다.
- 장점 : Siamese Network에서 좋은 성능을 보입니다.
- 단점 : 구현이 복잡합니다.
- 상황 : Siamese Network에서 사용됩니다.
- 수식 : $Contrastive\ Loss = \frac{1}{2n}\sum_{i=1}^{n}(1-y_i)d_{i}^2 + y_i\max(0, m-d_{i})^2$
- 여기서 $d_{i}$는 두 개의 이미지 쌍의 거리, $m$은 마진입니다.
댓글