0%

교차엔트로피와 쿨백-라이블러 발산

교차엔트로피(cross entropy)

  • 두 확률분포 \(p,q\)의 교차엔트로피 \(H[p,q]\)

    • 이산확률분포의 경우는 \[H[p,q] = - \sum_{k=1}^{K}p(y_k)log_2q(y_k)\]

    • 연속확률분포의 경우는 \[H[p,q] = - \int_y p(y)log_2 q(y)dy\]

  • 교차엔트로피는 확률분포 를 인수로

  • 엔트로피, 결합엔트로피, 조건부엔트로피는 확률변수 를 인수로

  • \(q\)\(p\)(기준)를 얼마나 닮았는지를 나타낸다(유사도와는 다름)

  • 교차엔트로피는 분류모형의 성능을 측정하는데 사용된다.

  • 이진분류문제를 예로들면

    • \(p\)\(X\)값이 정해졌을 때 정답인 \(Y\)의 확률분포다. 따라서 p는
      • 정답이 \(Y = 1\)일때, \[p(Y=0) = 0, p(y=1)=1\]
      • 정답이 \(Y = 0\)일때, \[p(Y=0) = 1, p(y=1)=0\]
  • 따라서 분포 \(q\)\(X\)값이 정해졌을때 예측값의 확률분포다. 모수가 \(\mu\)인 베르누이분포라고 가정하면 \[ q(Y=0) =1 - \mu, q(Y=1) = \mu\]

  • 확률분포 \(p\)\(q\)의 교차엔트로피는

    • 정답이 \(Y = 1\)일 때, \[H[p,q] = -p(Y=0)log_2q(y=0) -p(Y=1)log_2q(y=1) = -log_2\mu\]

    • 정답이 \(Y = 0\)일 때, \[H[p,q] = -p(Y=0)log_2q(y=0) -p(Y=1)log_2q(y=1) = -log_2(1-\mu)\]

    • 이 값은 분류성능이 좋을수록 작아지고, 분류성능이 나쁠수록 커진다.

      • \(Y=1\)일 때는 \(\mu\)가 작아질수록 즉, 예측이 틀릴수록 \(-log_2\mu\)의 값이 커진다
      • \(Y=0\)일 때는 \(\mu\)가 작아질수록 즉, 예측이 틀릴수록 \(-log_2(1 - \mu)\)의 값이 커진다
  • 교차엔트로피값은 예측의 틀린 정도를 나타내는 오차함수의 역할을 할수 있다.

  • 로그 손실 : \(N\)개의 학습데이터 전체에 대해 교차 엔트로피의 평균을 구하면 \[\text{log loss} = - {1\over 1}\sum_{i=1}^{N}(y_ilog_2\mu_i + (1 - y_i)log_2(1-\mu_i))\]

  • 카테고리 로그손실 : 다중분류문제의 교차엔트로피의 손실함수 \[\text{categorical log loss} = -{1\over N}\sum_{i=1}^{N}\sum_{k=1}^{K}(\mathbb{I}(y_i = k)log_2p(y_i=k))\]

    • 위 식에서 \(\mathbb{I}(y_i = k)\)\(y_i\)\(k\)인 경우에만 1인 지시함수
    • \(p(y_i=k)\)\(y_i = k\)일 확률이다

쿨벡-라이블러 발산

  • 두 확률분포 \(p(y),q(y)\)분포모양이 얼마나 다른지를 숫자로 계산한 값 이다.

  • 이산확률분포에 대해서는 \[ \begin{aligned} KL(p||q) &= H[p,q] - H[p] \\ &= \sum_{i=1}^{K} p(y_i) \log_2 \left(\dfrac{p(y_i)}{q(y_i)}\right) \end{aligned} \]

  • 연속확률분포에 대해서는 \[\begin{aligned} KL(p||q) & = H[p,q] - H[p] \\ & = \int p(y) \log_2 \left(p(y)\over q(y)\right) \end{aligned}\]

  • 쿨백-라이블러 발산은 교차엔트로피에서 기준이 되는 \(p\)분포의 엔트로피 값을 뺀 값이므로 상대엔트로피라고도 한다. 값은 항상 양수이며 두 확률분포가 완전히 같은 경우에만 0이된다.

  • 쿨백-라이블러 발산은 거리가 아니라 두 확률분포가 얼마나 다른지를 나타내는 값이므로. 두 확률분포의 위치가 달라지면 일반적으로 값이 달라진다.