MSE, Cross-Entropy

김승혁·2024년 11월 27일

MSE, RMSE


MSE (Mean Squared Error)와 RMSE (Root Mean Squared Error)는 주로 회귀 문제에서 모델의 성능을 평가할 때 사용하는 손실 함수입니다.
두 가지 모두 예측값과 실제 값 간의 차이를 기반으로 모델의 오차를 측정합니다.


  • MSE는 예측값과 실제 값 간의 차이(오차)를 제곱한 후, 그 값들의 평균을 구한 것입니다.

  • RMSE는 MSE의 제곱근을 취한 값으로, 오차를 원래 단위로 되돌려서 해석할 수 있게 만듭니다.


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

RMSE=1ni=1n(yiy^i)2RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}

  • nn : 데이터 포인트의 개수
  • yiy_i : 실제 값
  • y^i\hat{y}_i : 예측 값

차이점

  • MSE는 오류를 제곱한 값들의 평균을 사용하므로, 큰 오차에 더 민감한 특성이 있습니다.
  • RMSE는 MSE의 제곱근을 취한 것이므로, 원래 값의 단위로 해석할 수 있습니다. MSE에 비해 상대적으로 직관적인 해석이 가능합니다.










Cross-Entropy



1. Binary Cross-Entropy

이진 분류 문제에서는 각 클래스에 대한 확률을 예측합니다. 예를 들어, 주어진 입력에 대해 모델은 클래스 1일 확률과 클래스 0일 확률을 출력합니다. 크로스 엔트로피는 실제 클래스와 예측한 클래스 확률 간의 차이를 계산합니다.

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

  • nn: 데이터 포인트의 개수
  • yiy_i: 실제 레이블 (0 또는 1)
  • y^i\hat{y}_i: 모델이 예측한 클래스 1일 확률

특징:

  • yi=1y_i = 1일 경우, 손실은 log(y^i)-\log(\hat{y}_i)이고, yi=0y_i = 0일 경우, 손실은 log(1y^i)-\log(1 - \hat{y}_i)입니다.
  • 예측이 실제 클래스에 가까운 확률일수록 손실이 적고, 예측이 실제 클래스에서 멀어질수록 손실이 커집니다.






2. Categorical Cross-Entropy

다중 클래스 분류 문제에서는 각 클래스에 대해 확률을 예측합니다. 모델이 예측한 각 클래스에 대한 확률을 바탕으로 실제 클래스와 예측 확률 간의 차이를 계산합니다.

Categorical Cross-Entropy=i=1Cyilog(y^i)\text{Categorical Cross-Entropy} = - \sum_{i=1}^{C} y_i \log(\hat{y}_i)

  • CC: 클래스의 수
  • yiy_i: 실제 클래스에 대한 레이블 (원-핫 인코딩된 벡터)
  • y^i\hat{y}_i: 모델이 예측한 각 클래스에 대한 확률

특징:

  • 실제 레이블은 원-핫 인코딩 방식으로 나타내며, 예를 들어 실제 클래스가 kk번째 클래스라면 yk=1y_k = 1이고, 나머지는 00입니다.
  • 예측한 확률 y^k\hat{y}_k가 실제 클래스에 가까울수록 손실이 적습니다.






Cross-Entropy 왜 음수 기호 (-)가 붙는가?

  • 로그 함수 log(x)\log(x)0<x<10 < x < 1일 때 음수 값을 가집니다.
  • 확률 y^i\hat{y}_i는 0과 1 사이의 값이므로, log(y^i)\log(\hat{y}_i)log(1y^i)\log(1 - \hat{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)은 자연어 처리에서 많이 사용됩니다.
profile
열심히 사는 척

0개의 댓글