sailorCat
작성일
2021. 12. 18. 01:37
작성자
sailorCat
728x90

교차 엔트로피 Cross Entropy

 

두 가지 확률분포가 얼마나 비슷한지 숫자 하나로 나타내는 개념이다

집합 S상에서 확률분포 P에 대한 확률분포 Q의 교차 엔트로피

H( P, Q )

 

 

확률분포 P에서 사건 A가 발생할 확률 P(A)

확률분포 Q에서 사건 A가 발생할 확률 Q(A)

확률분포 Q에서 사건 A의 자기정보 i(A)

 

사건 A를 비트 수로 표현하는 자기정보 i(A) 

잘못된 확률분포 Q를 사용하면, 최적의 비트수를 사용하지 못한다.

 

X P(X) i(X) Q(X) i(X) code
A 1/2 1 1/8 3 000
B 1/4 2 1/8 3 001
C 1/8 3 1/4 2 01
D 1/8 3 1/2 1 1

 

평균비트수

H(P, Q) = 3*1/2 + 3*1/4 + 2*1/8 + 2*1/8 = 21/8 비트

H(P) = 1*1/2 + 2*1/4 + 3*1/8 + 3*1/8 = 14/8 비트

H(P, Q) > H(P)이기 때문에 교차엔트로피가 다르다

 

 

 

 

분류문제에서의 손실함수

- 주어진 대상이 A인지 아닌지 판단

- 주어진 대상이 A,B,C 중 어느것인지 판단

 

기계학습에서는 주어진 대상이 각 그룹에 속할 확률을 제공한다.

Q) [0.8, 0.2] A일 확률 0.8 A가 아닐 확률 0.2

 이 값이 정답인  [1.0, 0.0]과 얼마나 다른지 측정이 필요하다.

 

 

두 가지가 얼마나 다른지 측정하는 제곱합

A) (1.0 - 0.8)^2 + (0.0 - 0.2)^2 = 0.08

 

두 가지 확률의 차이가 클 수록 큰 값을 가지지만 학습속도가 느려서 잘 쓰이지 않는다.

교차엔트로피는 이러한 단점을 보완하여 학습속도가 빠르다.

 

따라서 분류 문제에서는 제곱합보다 교차 엔트로피를 사용한다.

 

 

보통 P = [p1, p2, .. pn] 에서 한가지 요소만 1이고 나머지는 0이다.

그럴때 엔트로피 H(P) = 0 이다.

 

 

Q) S = {A, B} A와 B사건이 있을 때,

P = [1, 0]

P(A) = 1 P(B) = 0

 

Q(X)가 다른 3가지 경우

 

[0.8, 0.2]

Q(A) = 0.8 Q(B) = 0.2

H(P, Q) = -1*log2(0.8) = 0.3219

 

[0.5, 0.5]

Q(A) = 0.5 Q(B) = 0.5

H(P, Q) = -1*log2(0.5) = 1

 

[0.2, 0.8]

Q(A) = 0.2 Q(B) = 0.

H(P, Q) = -1*log2(0.2) = 2.32

 

예측한 값이 맞으려면 0에 가까운 답이 나와야 한다.

 

 

728x90