코딩하는 해맑은 거북이

[머신러닝] 엔트로피(Entropy)와 크로스 엔트로피(Cross-Entropy) 본문

AI

[머신러닝] 엔트로피(Entropy)와 크로스 엔트로피(Cross-Entropy)

#CJE 2022. 7. 22.
해당 글은 아래의 2가지를 다룬다.
1. 엔트로피(Entropy)
2. 크로스 엔트로피(Cross-Entropy)

 

 

1. 엔트로피(Entropy)

엔트로피는 불확실성의 척도 이다. 정보이론에서의 엔트로피는 불확실성을 나타내며 엔트로피가 높다는 것은 정보가 많고 확률이 낮다는 것을 의미한다.

예시

- 동전을 던졌을 때, 앞/뒷면이 나올 확률을 모두 1/2 라고 한다.

- 주사위를 던졌을 때, 각 6면이 나올 확률을 모두 1/6 라고 한다.

위의 두 상황에서 불확실성은 주사위가 더 크다고 직관적으로 다가온다.

(불확실성 = 어떤 데이터가 나올지 예측하기 어려운 것)

 

위의 수식으로 엔트로피 값을 계산해보면,

동전의 엔트로피 값 = 약 0.693

주사위의 엔트로피 값 = 1.79

여기서 주사위의 엔트로피 값이 더 높다는 것을 알 수 있다. 즉, 무엇이 나올지 알기 어려운 주사위의 경우가 엔트로피가 더 높은 것이다.


위의 수식을 아래의 수식으로 바꿔보자.

\(log_2x = -log_{1/2}x\)

 

\(p(xi)\)는 각각의 요소들이 나올 수 있는 확률값이다.

모든 요소들이 나올 확률이 동일하다면, \(-log p(xi)\) 값도 모두 동일하기 때문에 식을 간결하게 만들 수 있다.

 

\(p(xi)\)값의 총 합은 1이기 때문에 수식은 \(-log p(xi)\)가 된다.

\(x\)값이 작아질수록 \(-logx\)값은 기하급수적으로 커진다.

\(x\)가 작아진 것보다 \(logx\)가 커지는 폭이 훨씬 크기때문에 전체 엔트로피는 증가한다. 

 

 

2. 크로스 엔트로피(Cross-Entropy)

실제 분포 \(q\)에 대해 알지 못하는 상태에서, 모델링을 통하여 구한 분포인 \(p\)를 통해서 \(q\)를 예측하는 것이다.

\(q\)와 \(p\)가 모두 들어가서 크로스 엔트로피(Cross-Entropy)라고 한다.

 

머신러닝을 통한 예측 모형에서 훈련 데이터에서는 실제 분포인 \(q\) 를 알 수 있기 때문에 Cross-Entropy를 계산할 수 있다. 즉, 훈련 데이터를 사용한 예측 모형에서 Cross-Entropy는 실제 값 \(q\)과 예측값 \(p\)의 차이 (dissimilarity) 를 계산하는데 사용할 수 있다는 것이다.

즉, Cross-Entropy는 실제 값 \(q\)과 예측값 \(p\)이 서로 얼마나 근사한지 보는 것이다.

 

예시

가방에 0.8/0.1/0.1 의 비율로, 빨간/녹색/노랑 공이 들어가 있다고 하자.

하지만 직감에는 0.2/0.2/0.6의 비율로 들어가 있을 것 같다.

이 때, Entropy 와 Cross-Entropy 는 아래와 같이 계산된다.

 

 

Kullback-Leibler Divergence (쿨백-라이블러 발산, KL Divergence)

서로 다른 두 분포의 차이 (dissimilarity) 를 측정하는데 쓰이는 measure 이다.

이를 Entropy와 Cross-Entropy 개념에 대입하면 두 Entropy 차이로 계산된다.

Relative entropy 라고도 하며 정식 명칭은 Kullback–Leibler divergence (KL Divergence)이다. 

Cross-Entropy인 \(H_p(q)\)는 실제 Entropy인 \(H(q)\)보다 항상 크기 때문에 KL Divergence는 항상 0보다 큰 값을 갖게된다. 

예측모형이 하고자 하는 것은 예측 분포인 \(p\)를 실제분포 \(q\)에 가깝게 하는 것이다.

\(p\)가 \(q\)에 가까이 갈수록 KL Divergence은 0에 가까워질 것이다.

 

그리고 \(H(q)\)는 고정이기 때문에, \(H_p(q)\)를 최소화시키는 것이 예측 모형을 최적화 시키는 것이라고 할 수 있다. 따라서 Cross-Entropy를 최소화 시키는 것이 KL Divergence를 최소화 시키는 것이며, 이것이 불확실성을 제어하고자하는 예측모형을 실질적인 목적이라고 볼 수 있다.

 

 

 

 

 

[참고자료]

https://velog.io/@rcchun/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%ED%81%AC%EB%A1%9C%EC%8A%A4-%EC%97%94%ED%8A%B8%EB%A1%9C%ED%94%BCcross-entropy

 

[머신러닝] 크로스 엔트로피(cross entropy)

엔트로피는 불확실성의 척도로 정보이론에서의 엔트로피는 불확실성을 나타내며 엔트로피가 높다는 것은 정보가 많고 확률링 낮다는 것을 의미합니다이런 설명과 수식으로는 처음에는 와닿지

velog.io

https://melonicedlatte.com/machinelearning/2019/12/20/204900.html

 

엔트로피(Entropy)와 크로스 엔트로피(Cross-Entropy)의 쉬운 개념 설명 - Easy is Perfect

엔트로피는 머신러닝을 할 때, loss function(손실 함수) or cost function으로써 많이 사용됩니다. 용어에 대하여는 많이 들어보았지만 직관적으로 다가오지가 않아서 한 번 정리해보았습니다. 1. Entropy

melonicedlatte.com

 

Comments