본 블로그의 모든 글은 직접 공부하고 남기는 기록입니다.
잘못된 내용이나 오류가 있다면 언제든지 댓글 남겨주세요.
엔트로피에 대한 설명을 먼저 읽으면 이해에 도움이 됩니다.
크로스 엔트로피는 두 확률분포의 엔트로피의 차이를 나타냅니다. 정확히는, 어떤 확률분포 가 임의의 확률분포 와 얼마나 비슷한가를 엔트로피로 비교하는 개념입니다. 동일한 결과를 얻기 위해 투입해야 하는 비용이 같다면, 두 확률분포는 동일하다는 것이죠.
이를 식으로 나타내면 아래와 같습니다.
원래 엔트로피 식과 비교해 사건 가 일어날 확률 와 발생 횟수를 곱하여 기대 비용을 계산한다는 점은 같습니다. 단, 사건 를 에서 추출하지 않고 에서 추출해서 계산합니다.
이게 무슨 말이냐면, 원래 엔트로피 식이 (이론적 확률) X (해당 확률로 실험한 비용) 이라면 크로스 엔트로피는 (이론적 확률) X (모델링한 확률로 실험한 비용) 이라는 뜻입니다. 당연히 모델링한 확률이 이론적인 확률에 가까울 수록 같은 결과가 나오겠죠?
머신러닝에서는 크로스 엔트로피를 주로 loss function으로 사용합니다. 크로스 엔트로피를 최소화한다는 것은 어떤 의미일까요?
위에서 크로스 엔트로피 식을 (이론적 확률) X (모델링한 확률로 실험한 비용)이라고 했습니다. 그런데 이론적 확률은 계산 과정에서 바뀌지 않습니다. 그냥 데이터의 실제 분포를 가리키는 값이니까요. 그렇다면 남은 변수는 (모델링한 확률로 실험한 비용) 뿐이고, 이 값이 작을수록 0으로 수렴하게 되겠죠.
비용이 줄어들려면 확률의 최적화가 이루어져야 합니다. 다시 말해 모델링한 확률이 최적의 확률분포, 즉 이론적 확률분포에 수렴해야 한다는 뜻입니다. 결과적으로 우리는 크로스 엔트로피를 최소화함으로써 모델링한 확률분포 를 에 근사할 수 있습니다.
참고문헌