MSE, RMSE
MSE (Mean Squared Error)와 RMSE (Root Mean Squared Error)는 주로 회귀 문제에서 모델의 성능을 평가할 때 사용하는 손실 함수입니다.
두 가지 모두 예측값과 실제 값 간의 차이를 기반으로 모델의 오차를 측정합니다.
-
MSE는 예측값과 실제 값 간의 차이(오차)를 제곱한 후, 그 값들의 평균을 구한 것입니다.
-
RMSE는 MSE의 제곱근을 취한 값으로, 오차를 원래 단위로 되돌려서 해석할 수 있게 만듭니다.
MSE=n1∑i=1n(yi−y^i)2
RMSE=n1∑i=1n(yi−y^i)2
- n : 데이터 포인트의 개수
- yi : 실제 값
- y^i : 예측 값
차이점
- MSE는 오류를 제곱한 값들의 평균을 사용하므로, 큰 오차에 더 민감한 특성이 있습니다.
- RMSE는 MSE의 제곱근을 취한 것이므로, 원래 값의 단위로 해석할 수 있습니다. MSE에 비해 상대적으로 직관적인 해석이 가능합니다.
Cross-Entropy
1. Binary Cross-Entropy
이진 분류 문제에서는 각 클래스에 대한 확률을 예측합니다. 예를 들어, 주어진 입력에 대해 모델은 클래스 1일 확률과 클래스 0일 확률을 출력합니다. 크로스 엔트로피는 실제 클래스와 예측한 클래스 확률 간의 차이를 계산합니다.
Binary Cross-Entropy=−n1∑i=1n[yilog(y^i)+(1−yi)log(1−y^i)]
- n: 데이터 포인트의 개수
- yi: 실제 레이블 (0 또는 1)
- y^i: 모델이 예측한 클래스 1일 확률
특징:
- yi=1일 경우, 손실은 −log(y^i)이고, yi=0일 경우, 손실은 −log(1−y^i)입니다.
- 예측이 실제 클래스에 가까운 확률일수록 손실이 적고, 예측이 실제 클래스에서 멀어질수록 손실이 커집니다.
2. Categorical Cross-Entropy
다중 클래스 분류 문제에서는 각 클래스에 대해 확률을 예측합니다. 모델이 예측한 각 클래스에 대한 확률을 바탕으로 실제 클래스와 예측 확률 간의 차이를 계산합니다.
Categorical Cross-Entropy=−∑i=1Cyilog(y^i)
- C: 클래스의 수
- yi: 실제 클래스에 대한 레이블 (원-핫 인코딩된 벡터)
- y^i: 모델이 예측한 각 클래스에 대한 확률
특징:
- 실제 레이블은 원-핫 인코딩 방식으로 나타내며, 예를 들어 실제 클래스가 k번째 클래스라면 yk=1이고, 나머지는 0입니다.
- 예측한 확률 y^k가 실제 클래스에 가까울수록 손실이 적습니다.
Cross-Entropy 왜 음수 기호 (-)가 붙는가?
- 로그 함수 log(x)는 0<x<1일 때 음수 값을 가집니다.
- 확률 y^i는 0과 1 사이의 값이므로, log(y^i)나 log(1−y^i)는 음수입니다.
- 이 음수 값을 그대로 합산하면 결과가 음수가 됩니다.
음수 기호를 붙여 음수 값을 양수로 변환하여, 손실 함수의 값이 항상 0 이상이 되도록 보장합니다.
원-핫 인코딩 (One-Hot Encoding)
- 원-핫 인코딩은 주어진 범주형 변수를 고유한 이진 벡터로 변환합니다.
- 특정 범주에 해당하는 위치는 1로, 나머지 위치는 0으로 표시됩니다.
| 색상 | 원-핫 인코딩 |
|---|
| 빨강 | [1, 0, 0] |
| 파랑 | [0, 1, 0] |
| 초록 | [0, 0, 1] |
원-핫 인코딩의 단점
- 고차원 문제:
- 범주의 개수가 많아질수록 인코딩된 벡터의 길이도 길어집니다.
- 예를 들어, 1,000개의 고유 범주가 있는 데이터는 벡터의 길이가 1,000이 됩니다. 이는 차원의 저주(Curse of Dimensionality) 문제를 유발할 수 있습니다.
- 메모리 비효율성:
- 희소 행렬(Sparse Matrix)로 표현되기 때문에 메모리와 계산 리소스를 많이 소비할 수 있습니다.
대안 방법 : 임베딩(Embedding)
- 원-핫 인코딩의 고차원 문제를 해결하기 위해, 범주형 데이터를 저차원 연속형 벡터로 표현하는 방법입니다.
- 특히 단어 임베딩(Word Embedding, 예: Word2Vec, GloVe)은 자연어 처리에서 많이 사용됩니다.