Skip to content

Entropy #

Find similar titles

2회 업데이트 됨.

Edit
  • 최초 작성자
  • 최근 업데이트

Structured data

Category
Algorithm

정보량 #

정보량 (Information content): 정보 이론에서 정보를 정량적으로 취급하기 위해 정의된 개념

사건 X가 일어나는 확률을 P(X)라고 하면 이 때의 정보량 I(X)는 다음의 식으로 표현된다.

$$I(X) = -\log P(X)$$

통상적으로는 밑이 2인 log를 사용하며, 이는 정보량을 bit 단위로 나타내기에 적합하다.

머신러닝에서는 gradient 계산에 용이하도록 자연로그를 사용한다.

선택정보량의 특징

  • 확률에 역수를 취하여 사건의 확률이 작을수록 정보량이 커진다.
  • 확률에 log를 취하여 단순 합산이 가능하다.

평균 정보량 (Entropy) #

평균 정보량(Average content): 정보량의 평균값. Shannon entropy 또는 간단히 entropy 라고도 불린다.

평균 정보량 H(X)는 다음과 같이 정의된다.

$$H(X) \,= E[I(X)]$$

$$\displaystyle\qquad\quad = \sum_{x \in X} P(x) I(x)$$

$$\displaystyle\qquad\quad = -\sum_{x \in X} P(x) \log P(x) = H(P)$$

Entropy의 특징

  • 결과 예측이 어려울수록 값이 커지고, 예측이 쉬울수록 값이 작아진다.
  • 모든 사건이 동일한 확률을 가질 때 최댓값을 가진다.
  • 확률이 특정 사건에 편향될수록 값이 작아진다.
  • 정보의 무질서도와 불확실성을 나타내는 척도이다.

손실 함수로서의 Entropy #

Cross Entropy #

Cross entropy: 예측 확률 분포값과 실제 확률 분포값의 차이를 나타내는 척도

$$\displaystyle H(P, Q) = -\sum_{x \in X} P(x)\log Q(x)$$

위 식에서 P(x)는 실제 분포, Q(x)는 추정 모형의 분포를 의미한다.

실제 모형은 한 가지 사건의 확률만 1이고 나머지는 0이다.

두 분포 P(x), Q(x)를 대상으로 entropy를 측정하여 두 분포 간 차이를 계산한다.

Cross entropy는 손실함수(loss function)로 사용될 수 있으며, 예측값과 관찰값의 오차를 나타낸다.

  • 예측과 정답이 떨어져 있는 경우 cross entropy가 큰 값을 가지며, 예측이 타당하지 않음을 의미한다.
  • 예측과 정답이 가까운 경우 cross entropy가 작은 값을 가지며, 예측이 타당함을 의미한다.

Kullback-Leibler Divergence (KLD) #

KLD는 동일한 확률 변수에 대한 두 확률 분포의 차이를 나타내는 척도이며, relative entropy라고도 부른다.

KLD는 다음과 같이 entropy와 cross entropy의 차로 정의된다.

$$\displaystyle D_{KL}(P\|Q) = H(P) - H(P, Q)$$

$$\displaystyle\qquad\qquad\quad = \sum_{x \in X} P(x)\log P(x) - \sum_{x \in X} P(x)\log Q(x)$$

$$\qquad\qquad\quad = \sum_{x \in X} P(x)\log\frac{P(x)}{Q(x)}$$

KLD에서 말하는 차이는 거리 개념이 아니므로 asymmetric하다.

$$D_{KL}(P\|Q) \neq D_{KL}(Q\|P)$$

Binary Cross Entropy (BCE): 이진 분류의 경우 #

BCE는 이진 분류의 손실 함수로 사용되며, 활성화 함수로 sigmoid를 사용한다.

어떤 사건 T가 일어날 확률을 p라고 하면 그 사건이 일어나지 않을 확률은 1-p이라고 할 때,

$$P(T=1) = p, \quad P(T=0) = 1-p$$

확률 변수 T는 다음과 같이 베르누이 분포를 따른다.

$$P(T=t) = p^t(1-p)^{1-t},\quad t = \{0, 1\}$$

개별 사건이 n 가지 존재하는 경우의 likelihood는 다음과 같다.

$$\displaystyle L = \prod_{i=1}^n p_i^{t_i}(1-p_i)^{1-t_i}$$

이는 많은 확률을 곱하기 때문에 0에 매우 가까운 값을 가지며, 미분으로 다루기 어렵다.

따라서 최급강하법으로 최적화 가능하도록 negative log likelihood(NLL)의 형태로 바꿔준다.

$$\; BCE \, = -\log L$$

$$\displaystyle\qquad\quad = -\log\prod_{i=1}^n p_i^{t_i}(1-p_i)^{1-t_i}$$

$$\displaystyle\qquad\quad = -\sum_{i=1}^n [t_i \log p_i +(1 -t_i) \log (1 -p_i)] \qquad\cdots\quad\mathrm{(a)}$$

$$t_i: \text{true probability distribution} \\ p_i: \text{predicted probability distribution}$$

Categorical Cross Entropy (CCE): 다중 클래스 분류의 경우 #

CCE는 다중 클래스 분류의 손실 함수로 사용되며, 활성화 함수로 softmax가 사용된다.

m 개의 사건 가운데 어느 1개가 일어나는 경우를 가정한다.

$$\displaystyle \sum_{j=1}^m p_j = 1$$

이 경우, 특정한 사건이 일어날 확률은 다음과 같이 일반화된다.

$$\displaystyle \prod_{j=1}^m p_{j}^{t_{j}} \qquad \left(\sum_{j=1}^m t_j = 1, \quad t_j = {0, 1}\right)$$

위에 적은 사건이 n회 일어나는 경우의 likelihood는 다음과 같다.

$$\displaystyle L = \prod_{i=1}^n \prod_{j=1}^m p_{ij}^{t_{ij}} \qquad \left(\sum_{j=1}^m t_{ij} = 1, \quad t_{ij} = {0, 1}\right)$$

BCE에서와 마찬가지로 NLL의 형태로 나타낸다.

$$\; CCE \,= -\log L$$

$$\displaystyle\qquad\quad = -\log \prod_{i=1}^n \prod_{j=1}^m p_{ij}^{t_{ij}}$$

$$\displaystyle\qquad\quad = -\sum_{i=1}^n \sum_{j=1}^m(t_{ij}\log p_{ij}) \quad\cdots\quad\mathrm{(b)}$$

$$t_{ij}: \text{true probability distribution} \\ p_{ij}: \text{predicted probability distribution}$$

식 (a)와 (b)에서 각각의 cross entropy를 최소화하는 것은 likelihood를 최대화하는 것과 같으며, 예측값과 실제값의 차이를 감소시키고 예측의 타당성을 높인다.

Reference #

0.0.1_20240214_1_v81