IC50_nM 값의 예측 모델을 만들 때,
손실 함수를 어떻게 선택하느냐에 따라 모델의 성능과 결과가 크게 달라질 수 있습니다.
이번 글에서는 IC50_nM 값 분포에 적합한 손실 함수 세 가지,
즉 MSLE(Mean Squared Logarithmic Error),
MAE(Mean Absolute Error),
그리고 Huber Loss에 대해 알아보고,
각 손실 함수의 장단점을 비교하여 어떤 상황에서 사용하면 좋을지 설명드리겠습니다.
1. MSLE (Mean Squared Logarithmic Error)
MSLE는 예측 값과 실제 값의 로그 차이의 제곱을 구하는 손실 함수입니다.
값의 절대적인 차이보다 비율을 중시하므로, IC50_nM처럼 값이 크게 변동하는 데이터에 적합합니다.
공식:
$$ MSLE = \frac{1}{n} \sum_{i=1}^{n} \left( \log(1 + y_i) - \log(1 + \hat{y_i}) \right)^2 $$
- 장점:
- 큰 값에 의해 손실이 왜곡되지 않으며, 상대적인 차이에 중점을 둠.
- 값이 여러 크기를 넘나드는 경우, 예를 들어 IC50_nM처럼 다양한 범위의 데이터를 다룰 때 적합.
- 단점:
- 작은 값에서의 차이를 충분히 민감하게 반영하지 못할 수 있음.
- 데이터에 음수 값이 있으면 사용할 수 없으며, 모든 값이 양수이어야 함.
2. MAE (Mean Absolute Error)
MAE는 예측 값과 실제 값의 절대적인 차이를 평균내어 구하는 손실 함수입니다.
모든 차이를 동일하게 취급하여 간단하고 직관적입니다.
공식:
$$ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y_i}| $$
- 장점:
- 매우 직관적이고 구현하기 쉬움.
- MSE에 비해 이상치에 덜 민감함.
- 오류를 실제 값의 단위로 표현하기 때문에 해석이 쉽고 명확함.
- 단점:
- 큰 오류를 중요시하지 않음. 만약 큰 오류가 중요한 상황이라면 적절하지 않을 수 있음.
- 기울기가 일정해서, 기울기 기반 최적화에서는 수렴 속도가 느릴 수 있음.
3. Huber Loss
Huber Loss는 MSE와 MAE를 결합한 손실 함수입니다.
작은 오류에 대해서는 MSE처럼 동작하여 미분 가능하게 하고,
큰 오류에 대해서는 MAE처럼 동작하여 이상치에 덜 민감하게 만듭니다.
**δ\delta**라는 임계값을 설정해 이 두 동작을 전환합니다.
공식:
$$ L_\delta(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta \cdot (|y - \hat{y}| - \frac{1}{2}\delta) & \text{otherwise} \end{cases} $$
- 장점:
- 작은 오류와 큰 오류에 모두 잘 대응하며, 이상치에 덜 민감함.
- 최적화 과정에서 미분 가능하여 기울기 기반 최적화에 적합.
- 단점:
- δ\delta 값을 조정해야 하므로, 추가적인 파라미터 튜닝이 필요함.
- MAE나 MSE보다 구현이 복잡함.
손실 함수 비교 표
손실 함수 | 주요 특징 | 장점 | 단점 |
MSLE | 로그 차이로 계산 | 큰 값에 민감하지 않고, 상대적인 차이를 중시함 | 작은 값의 차이에 민감하지 않으며, 음수 값에서는 사용할 수 없음 |
MAE | 절대 차이로 계산 | 간단하고 직관적, 이상치에 덜 민감 | 큰 오류를 중요하게 다루지 않음 |
Huber Loss | MSE와 MAE를 결합한 손실 함수 | 작은 오류와 큰 오류 모두 잘 처리, 미분 가능 | δ\delta 값 조정이 필요하며, 구현이 다소 복잡함 |
결론
- IC50_nM 값이 매우 큰 범위를 가지는 경우에는 MSLE가 적합합니다. 이 함수는 값의 상대적인 차이를 중시하기 때문에, 예측 값이 실제 값과 큰 비율 차이를 보일 때도 안정적으로 동작합니다.
- 이상치에 덜 민감하면서도 최적화가 중요한 경우에는 Huber Loss가 좋은 선택입니다. MSE와 MAE의 장점을 모두 활용할 수 있습니다.
- 간단하고 직관적인 손실 함수를 선호한다면 MAE를 사용해보세요. 큰 오류에 대한 민감도를 낮추고 싶을 때 유용합니다.
손실 함수를 선택할 때는 데이터의 특성과 모델이 해결하려는 문제에 따라 달라질 수 있습니다.
IC50_nM처럼 값의 범위가 크고 이상치가 존재하는 경우에는 위에서 설명한
세 가지 손실 함수 중 하나를 선택하는 것이 적합할 것입니다.