본문 바로가기
Statistics/Information Theory

내멋대로 이해하는 정보이론 - KL 다이버전스

by bents 2021. 2. 27.

지난이야기

내 정보가 얼마나 신뢰할 만한가? 얼마나 불확실한가?

측정가능한 불확실성을 엔트로피라고 정의하며, 

전체 발생가능한 사건의 결과 중 정보를 맞추기 위한 최소질문횟수로 계산함.

사전정보기반 발생가능한 결과에 사전확률을 사용해서 구한 기대값과 같음.

 

내 정보의 절대적인 불확실성을 측정했다.

다른 정보를 비교해서 내 정보의 상대적인 불확실성을 측정하고 싶다면 어떻게 할까?

실제 데이터(다른정보)와 사전정보(내정보)로 측정한 "불확실성"을 크로스 엔트로피라고 정의한다.

실제 데이터로 발생가능한 결과에 사전확률을 사용해서 구한 기대값으로 구함.

 

사전정보와 실제 데이터 간에 불확실성의 차이가 얼마나 날까?

크로스 엔트로피와 엔트로피를 사용하면 구할 수 있다. --> KL-DIVERGENCE다.

 

쿨백-라이블러 발산

= 두 확률분포의 차이

= 확률분포p와 확률분포q의 cross entropy에서 확률분포p의 엔트로피를 뺀 값

 

크로스 엔트로피

 

기존 엔트로피에 트릭을 넣으면 유도가능함.

기존 크로스 엔트로피 H(p,q)에 엔트로피 H(p)를 빼고 더한다.

그 결과 KL은 p*log2(p/q)의 합이다.

엔트로피와 크로스 엔트로피로 표현하면 아래와 같다.

다이버전스

 

크로스 엔트로피의 다른 표현

쿨백-라이블러를 통한 최적화

불확실성 최소화를 하려면

= cross entropy를 minimize하면 된다.

= 크로스 엔트로피는 엔트로피와 KL-divergence로 이뤄져 있기 때문에

고정된 사전정보(절대적 불확실성)인 엔트로피가 아닌 KL-divergence를 minimize 하면 됨.

 

쿨백-라이블러 특성

  1. KL(p|q)0
  2. KL(p|q)KL(q|p)
    • “KL-divergence는 distance아님. 조건부확률 같은 개념.

1. KL Divergence는 항상 0보다 크거나 같다

KL Divergence는 -log2(x) 꼴 함수의 평균이다. 즉, Convex function이다. 아래볼록!

 

아래볼록함수의 특징

중학교 때 배운 개념 : 아래 볼록함수에서는 정의역의 평균 >= 함수의 평균.

사실 중학교 때 배운 이 개념의 이름은 젠슨 부등식이다. 어려워말자.

 

연속형 함수로 표현한 KL DIVERGENCE

아래볼록함수의 특징을 활용하면, 

KL Divergence는 함수의 평균값이므로 평균의 함수값보다 크거나 같다.

but 평균의 함수값이 0으므로 항상 KL 다이버전스는 항상 0보다 크거나 같다.

 

2. KL Divergence의 역은 서로 다르다.

p와 q 모두 동일한 확률의 균일분포를 가진다면 값은 같을 수 있다.

그러나 그러할지라도 두 KL Divergence의 개념은 완전히 다르다.

KL Divergence는 크로스 엔트로피에서 파생된 개념이다.

내 사전정보를 주어진 데이터의 확률분포와 비교하기 위한게 크로스 엔트로피다.

따라서 KL divergence의 p,q 자리를 뒤바꾸는 것은 완전히 다른 의미를 가짐.

 

쿨백-라이블러를 통한 모델링

머신러닝에서 어떻게 활용되나?

언제나 우리는 알 수 없는 것을 알기위해 모델링을 한다.

미지의 확률분포p와 가까운 확률분포q를 만들기 위해 KL Divergence를 최소화한다.

- 사전정보p는 샘플 데이터의 확률분포를 사용(단, 질문개수 구하는 항에서만 사용)

- 실제 데이터/비교 데이터의 확률분포q는 parametric을 가정한 확률분포를 사용.

: 이 확률분포의 모수는 데이터로 인해 지속적으로 변하는 변수임.

- 로그항에 곱하는 사전정보p는 1/N으로 고정된 값을 사용함.

근사 KL Divergence