크로스 엔트로피(Cross-Entropy)는 머신러닝에서 분류 문제를 해결하기 위해 주로 사용되는 손실 함수입니다. 이를 예를 들어 남녀 관계로 설명해보겠습니다.
예를 들어, 남녀 구분 문제에서는 머신러닝 모델이 주어진 입력 데이터(성별, 나이, 키 등)를 바탕으로 해당 데이터가 남자일 확률과 여자일 확률을 예측합니다. 이 때, 크로스 엔트로피는 모델이 예측한 확률 분포와 실제 레이블 분포 간의 차이를 계산하는 손실 함수입니다.
만약, 모델이 특정 입력 데이터를 바탕으로 해당 데이터가 남자일 확률을 0.7, 여자일 확률을 0.3으로 예측했다고 가정해봅시다. 그리고 실제로 해당 데이터가 남자인 경우를 1로, 여자인 경우를 0으로 나타낸다면, 실제 레이블 분포는 1과 0이 됩니다.
이 경우, 크로스 엔트로피 손실 함수는 다음과 같이 계산됩니다.
import numpy as np # 모델이 예측한 확률 분포 y_pred = np.array([0.7, 0.3]) # 실제 레이블 분포 y_true = np.array([1, 0]) # 크로스 엔트로피 손실 함수 계산 loss = -np.sum(y_true * np.log(y_pred)) print(loss) # 0.35667494393873245
따라서, 위의 경우 모델이 예측한 확률 분포와 실제 레이블 분포 간의 차이를 나타내는 크로스 엔트로피 손실 함수의 값은 약 0.357이 됩니다. 이 값은 모델의 예측이 실제와 얼마나 차이가 나는지를 나타내며, 이 값을 최소화하는 것이 모델을 학습시키는 목표가 됩니다.