entropy

엔트로피

엔트로피란?

$Y=0$ 또는 $Y=1$ 인 두 가지 값을 갖는 확률분포가 다음처럼 세 종류 있다고 하자.

  • 확률 분포 $Y_1$ : $P(Y=0) = 0.5, P(Y=1) = 0.5$
  • 확률 분포 $Y_2$ : $P(Y=0) = 0.8, P(Y=1) = 0.2$
  • 확률 분포 $Y_3$ : $P(Y=0) = 1.0, P(Y=1) = 0$

이 확률값이 베이지안 확률

베이지안 확률과 빈도주의적 확률. 베이지안 관점에서의 확률은 데이터로부터 얻은 법칙이나 규칙을 표현하기 위한 수단이고, 빈도주의적 관점에서의 확률은 데이터 자체의 값이 어떤 특성을 갖는지를 표현하기 위한 수단이다.

이라면, 확률분포 $Y_1$ 은 $y$ 값에 대해 아무것도 모르는 상태(확률이 반반이므로), $Y_2$ 는 $y$ 값이 0이 아니라고 믿지만 확신할 수는 없는 상태, $Y_3$ 은 $y$ 값이 0이라고 100% 확신하는 상태일 것이다. 이렇게 확률분포들이 가지는 확신의 정도를 수치로 나타낸 것을 엔트로피(entropy) 라고 한다. 확률변수에서 나올 수 있는 값들의 확률이 비슷비슷한 경우 엔트로피가 높아지고, 특정 값이 나올 확률이 높다면 엔트로피가 작아진다.

물리학에서는 상태가 분산되어 있는 정도를 엔트로피로 정의한다. 여러가지로 고루 분산되어 있을 수 있으면 엔트로피가 높고 특정한 하나의 상태로 몰려있으면 엔트로피가 낮다. 확률분포의 엔트로피는 물리학의 엔트로피 용어를 빌려온 것이다.

엔트로피는 수학적으로 다음과 같이 정의한다.

  • 확률변수 Y가 이산 확률변수이면,

  • 확률변수 Y가 연속 확률변수이면,

    이 식에서 $p(y)$ 는 확률밀도함수다.

위에서 예를 든 $Y_1, Y_2, Y_3$ 에 대해 엔트로피를 구하면 다음과 같다.

엔트로피의 성질

확률변수가 결정론적

결정론적 데이터. 예측할 수 없는 값이 나오는 확률적 데이터가 아닌, 항상 같은 값이 나오는 데이터를 결정론적 데이터라고 한다.

이면 확률분포에서 특정한 하나의 값이 나올 확률이 1이다. 이 때 엔트로피는 0이 되고, 이 값은 엔트로피가 가질 수 있는 최소값이다.

반대로 엔트로피의 최대값은 이산 확률변수의 클래스 개수에 따라 달라진다. 만약 이산확률변수가 갖는 클래스가 $2^K$ 개라면, 엔트로피의 최대값은 각 클래스가 모두 같은 확률을 갖는 때이다. 이 때 엔트로피의 값은

엔트로피와 정보량

엔트로피는 확률변수가 담을 수 있는 정보의 양을 의미한다고 볼 수도 있다. 확률변수가 담을 수 있는 정보량이란, 확률변수의 표본값을 관측해서 얻을 수 있는 추가적인 정보의 종류를 말한다.

엔트로피가 0이면 확률변수는 결정론적이므로 확률변수의 표본값은 항상 같다. 따라서 확률변수의 표본값을 관측한다고 해도 우리가 얻을 수 있는 추가 정보는 없다.

반대로 엔트로피가 크다면 확률변수의 표본값이 가질 수 있는 경우의 수가 증가하므로 표본값을 실제로 관측하기 전까지는 알 수 있는 게 거의 없다. 즉, 확률변수의 표본값이 우리에게 가져다줄 수 있는 정보의 양이 많다.

엔트로피의 추정

확률변수모형, 즉 이론적인 확률밀도(질량)함수가 아닌 실제 데이터가 주어진 경우에는 확률밀도(질량)함수를 추정하여 엔트로피를 계산해야 한다.

예를 들어 데이터가 80개가 있고 그 중 Y=0 인 데이터가 40개, Y=1인 데이터가 40개 있는 경우는 엔트로피가 1이다.

만약 데이터가 40개가 있고 그 중 Y=0인 데이터가 30개, Y=1인 데이터가 10개 있는 경우는 엔트로피가 약 0.81이다.

지니불순도

엔트로피와 유사한 개념으로 지니불순도(Gini impurity)라는 것이 있다. 지니불순도는 엔트로피처럼 확률분포가 어느쪽에 치우쳐있는지를 재는 척도지만, 로그를 사용하지 않기 때문에 계산량이 더 적어서 엔트로피 대용으로 많이 사용된다.

결합 엔트로피

두 확률변수 $X, Y$에 대해 결합 엔트로피(joint entropy)는 다음과 같이 정의한다.

  • $X, Y$가 이산확률변수인 경우
  • $X, Y$가 이산확률변수인 경우

조건부 엔트로피

조건부 엔트로피는 상관관계가 있는 두 확률변수 X, Y가 있고 X의 값을 알 때 Y가 가질 수 있는 정보량을 의미한다. 수학적인 정의는 다음과 같다.

  • $X, Y$가 이산확률변수인 경우
  • $X, Y$가 연속확률변수인 경우

조건부 엔트로피는 조건부 확률분포의 정의를 사용해 다음과 같이 고칠 수 있다.

  • $X, Y$가 이산확률변수인 경우
  • $X, Y$가 연속확률변수인 경우

조건부 엔트로피 예시

조건부 엔트로피 개념을 스팸메일 분류문제를 통해 알아보자.

스팸메일 분류모형을 만들기 위한 메일 표본 80개가 있다. 이 중 40개가 정상메일($Y=0$), 40개가 스팸 메일($Y=1$)이다.

스팸메일 여부를 특정 키워드가 존재하는지($X=1$) 혹은 존재하지 않는지($X=0$)의 여부로 알아보고자 한다. 키워드 후보로는 $X_1, X_2, X_3$ 세 가지가 있다.

1) 우선 $X_1$과 $Y$의 관계가 다음과 같다고 하자.

$Y=0$ $Y=1$
$X_1 = 0$ 30 10 40
$X_1 = 1$ 10 30 40
40 40 80

이 때 조건부 엔트로피는 0.81이다.

2) $X_2$와 $Y$의 관계는 다음과 같다.

$Y=0$ $Y=1$
$X_2 = 0$ 20 40 60
$X_2 = 1$ 20 0 20
40 40 80

이 때 조건부 엔트로피는 0.69이다.

3) $X_3$ 과 $Y$ 의 관계는 다음과 같다.

$Y=0$ $Y=1$
$X_3=0$ 0 40 40
$X_3 = 1$ 40 0 40
40 40 80

이 때 조건부 엔트로피는 0이 된다.

위를 통해 조건부 엔트로피는 X값에 의해 만들어지는 새로운 Y 확률분포의 가중평균임을 알 수 있다.

크로스 엔트로피

같은 확률변수에 대한 두 개의 추정 확률분포를 비교하는 데 주로 쓰이는 크로스 엔트로피(cross entropy)는 두 확률분포의 차이를 정량화한 값으로, 예측의 틀린 정도를 나타내주는 일종의 loss function 역할을 해준다. 확률변수를 인수로 사용하는 joint 엔트로피와 달리 확률분포를 인수로 사용해 다음과 같이 정의된다.

  • 이산확률변수인 경우
  • 연속확률변수인 경우

여기서 $P(y_k)$ 는 실제 값, $Q(y_k)$는 예상 값에 해당한다. 크로스 엔트로피 값은 실제값과 예측값이 일치할 경우 0으로 수렴하고, 값이 틀릴 경우 무한대로 발산하기 때문에 크로스 엔트로피를 최소화하는 방향으로 분류모델 성능을 수정한다.

크로스 엔트로피는 확률분포의 차이를 정량화한 값이지만 기준이 되는 분포가 p로 고정되어 있다. q에서 p가 얼만큼 떨어져있는지를 측정한 것과 p에서 q가 얼만큼 떨어져있는지를 측정한 것은 다른 값이다. 즉, p와 q가 바뀌면 값이 달라진다.

크로스 엔트로피는 분류모형의 성능을 측정할 때 사용된다. Y가 0 또는 1이라는 값만 가지는 이진 분류문제를 예로 들어보자.

  • $P_Y$ 는 $X$가 정해졌을 때 실제 $Y$가 가지는 분포를 뜻한다. $X$가 정해지면 $Y$는 확실히 0이거나 확실히 1이다. 즉, $P_Y$는 $(0,1)$ 또는 $(1,0)$이 된다.
  • 하지만 예측값 $\hat{Y}$의 분포 $Q_\hat{Y}$는 모수가 $\mu$인 베르누이 분포이다. 즉 $Q_\hat{Y}$는 $(1-\mu, \mu)$이다.

특정한 X에 대해 P와 Q의 크로스 엔트로피는 아래와 같다.

분류문제에서는 $P(Y\mid X)$ 와 $P(\hat{Y}\mid X)$ 가 같으면 최상인 케이스.

Y는 0이거나 1이다.

  • 로지스틱 회귀분석에서 나왔던 $G^2$ 와 크로스엔트로피의 비교

쿨백 - 라이블러 발산

쿨백-라이블러 발산(Kullback-Leibler divergence)은 두 확률분포 $p(y)$ 와 $q(y)$ 의 차이를 정량화하는 방법의 하나로, 크로스 엔트로피에서 기준이 되는 분포의 엔트로피 값을 뺀 값이다. 따라서 상대 엔트로피(relative entropy)라고도 한다. 값은 항상 양수이며, 두 확률분포가 완전히 같을 때에만 0이 된다.

  • 이산확률변수의 경우
  • 연속확률변수의 경우
Share