Today I Learned
오늘은 BCE와 CE의 차이에 대해서 알아봤다.
Loss Function: BCE와 CE
Binary Cross Entropy (BCE)
BCE는 이진 분류 문제에서 주로 사용되는 손실 함수.
- BCE의 수식
BCE=−N1i=1∑N[yilog(pi)+(1−yi)log(1−pi)]
여기서 yi는 실제 라벨, pi는 예측 확률을 나타낸다.
BCE는 시그모이드(Sigmoid) 함수와 함께 사용되며, 출력값을 0과 1 사이의 확률로 변환한다.
Cross Entropy (CE)
CE는 다중 클래스 분류 문제에서 사용되는 손실 함수
- CE의 수식
CE=−i=1∑myilog(pi)
CE는 소프트맥스(Softmax) 함수와 함께 사용되며, 여러 클래스에 대한 확률 분포를 계산한다.
주요 차이점
- BCE는 이진 분류(두 개의 클래스)에 특화되어 있고, CE는 다중 클래스 분류에 사용된다.
- BCE는 시그모이드 활성화 함수를, CE는 소프트맥스 활성화 함수를 사용한다.
- BCE는 각 클래스를 독립적으로 처리하지만, CE는 모든 클래스의 확률 분포를 동시에 고려한다.
SASRec의 Loss Function
SASRec 모델은 기본적으로 Binary Cross Entropy (BCE) Loss를 사용한다.
모델은 각 시점에서 다음 아이템을 예측할 때, 실제 아이템(positive sample)과 랜덤하게 선택된 아이템(negative sample)을 구분하는 방식으로 학습하기 때문이다.
최근 연구에서는 CE Loss를 사용하는 방식도 제안되었으며, RecBole과 같은 라이브러리에서는 BCE('BPR')와 CE 두 가지 옵션을 모두 제공한다. 특히 CE Loss를 사용할 경우 negative sampling이 필요하지 않다는 장점이 있다.