본문 바로가기
딥러닝 with Python

[딥러닝 with 파이썬] 크로스 엔트로피(Cross Entropy)

by CodeCrafter 2023. 11. 3.
반응형

 

 

1. 크로스 엔트로피란? Cross Entropy

- 크로스 엔트로피(Cross Entropy)는 두 확률 분포 간의 차이를 측정하는데 사용되는 개념입니다. 특히, 모델이 예측한 확률 분포와 실제 데이터의 분포 사이의 측정하는데 주로 활용됩니다. 

 

- 이는 분류(Classification) 문제에서 모델의 성능을 평가하는데 자주 사용되는 손실함수(Loss Function) 중 하나입니다. 

 * Loss function, 손실함수는 머신 러닝에서 모델의 예측이 얼마나 잘못되었는지를 측정하는 함수를 말합니다. 즉, "모델이 예측한 값" 과 "실제 값" 사이의 오차 혹은 손실을 수치화하는 것으로, 이렇게 설정된 오차함수는 모델 훈련상 하나의 지표가 되어 반복되는 훈련 간 이 Loss function을 최소화 하는 것을 목표로 학습이 이루어 집니다. 

 

- Cross Entropy의 수식은 아래와 같습니다. 

 

* 여기서 p는 실제 분포를, q는 모델이 예측한 분포를 나타내며, x는 입력값(혹은 features)를 의미합니다. 

* 즉, x라는 값이 주어졌을 때 이때 실제로 특정 사건이 발생할 확률이 p(x) 이며, 이 x 값을 모델에 넣었을 때 모델이 예측한 사건의 발생확률은 q(x)라는 것을 의미합니다.

 

- 예를 들어 설명하면 다음과 같습니다. 예제는 고양이와 강아지의 이미지를 분류하는 상황입니다.

* 고양이와 강아지의 이미지 사진을 두고 분류를 하는 모델을 만들어 이를 평가한다고 생각해봅시다. 이때, 이 모델이 실제 '고양이'인 이미지를 입력값 x로 받아서 예측해낸 출력값 q(x)는 아래와 같습니다.

  고양이 : 0.8 / 강아지 : 0.2

* 실제로는 고양이 이미지인 입력값 x에 대해서 p(x)는 고양이일 확률이 1, 강아지일 확률이 0 입니다. 

* 이를 Cross Entropy로 계산하면

이 나오게 되고, 이는 0.2231이라는 값이 나오게 됩니다. 

 

이제 이 모델은 위에서 계산한 0.2231라는 오차값을 기준으로 삼아서 그 다음 학습을 할때 이를 더 줄이는 방식으로 학습을 진행하게되며, 학습이 잘 이루어진다면 오차값은 0에 점점 가까워 질 것입니다.

반응형

댓글