KL (Kullback-Leibler) 분기에 대한 직관


47

모델 분포 함수가 데이터의 이론적 / 실제 분포와 얼마나 다른지에 따라 KL Divergence의 직관에 대해 배웠습니다. 내가 읽고있는 출처는이 두 분포 사이의 '거리'에 대한 직관적 인 이해가 도움이되지만 두 분포 PQ 대해 문자 그대로 취해서는 안된다고 말하면서 KL 분기는 PQ 에서 대칭이 아닙니다 .

마지막 진술을 이해하는 방법을 잘 모르겠거나 '거리'의 직관이 무너지는 곳입니까?

간단하지만 통찰력있는 예를 부탁드립니다.


3
저는 여러분이 물러서서 실제 모집단 분포와 표본 (또는 참과 모형) 사이의 통계에 비대칭 성이 있다는 것을 이해해야한다고 생각합니다. 이것이 KL Divergence가 반영하는 것입니다 ... 일반적으로 확률 이론은 있습니다 '일반적으로 이러한 차이와 대칭 메트릭이 더 의미가 없습니다.
seanv507

1
어떤 "소스"를 읽고 있었습니까?
nbro

답변:


34

A (미터) 거리 D 대칭이어야, 즉 D(P,Q)=D(Q,P) . 그러나 정의상 KL 은 아닙니다.

Ω={A,B}P(A)=0.2,P(B)=0.8Q(A)=Q(B)=0.5

우리는 :

KL(P,Q)=P(A)logP(A)Q(A)+P(B)logP(B)Q(B)0.19

KL(Q,P)=Q(A)logQ(A)P(A)+Q(B)logQ(B)P(B)0.22

KL(P,Q)KL(Q,P)KL


50

다른 훌륭한 답변에 또 다른 관점을 가진 답변을 추가하면 직관을 더 추가 할 수 있습니다.

KL(P||Q)=p(x)logp(x)q(x)dx
XPQp(x)q(x)H0:QH1:PKL(P||Q)QKL(P||Q)KL(Q||P) 단순히 귀무 가설과 대립 가설 사이의 비대칭 성을 반영합니다.

PtνQν=1

> lLR_1  <-  function(x) {dt(x, 1, log=TRUE)-dnorm(x, log=TRUE)}  
> integrate(function(x) dt(x, 1)*lLR_1(x), lower=-Inf, upper=Inf)
Error in integrate(function(x) dt(x, 1) * lLR_1(x), lower = -Inf, upper = Inf) : 
  the integral is probably divergent

> lLR_2  <-  function(x) {-dt(x, 1, log=TRUE)+dnorm(x, log=TRUE)}  
> integrate(function(x) dnorm(x)*lLR_2(x), lower=-Inf, upper=Inf)
0.2592445 with absolute error < 1e-07

KL(P||Q)KL(Q||P)0.26

t1t1t1t1n=1t1! 역할을 바꾸는 것이 아니라 차이점은 주로 특이 치의 역할에서 비롯됩니다.

t1t1

이것은 내 대답과 관련이 있습니다. 일반 오류 대신 t 오류를 사용해야하는 이유는 무엇입니까?


22

D(P||Q)

SKL(P,Q)=D(P||Q)+D(Q||P)
D(P||Q)SKL(P,Q)
D(A||B)+D(B||C)D(A||C)
SKL(A,B)+SKL(B,C)SKL(A,C)
D(P||Q)=ipilog(piqi)
SKL(P,Q)=i(piqi)log(piqi)

D(A||B)=0.1log(0.10.2)+0.9log(0.90.8)0.0159
D(B||C)0.0112
D(A||C)0.0505
0.0159+0.01120.0505
SKL(A,B)0.0352
SKL(B,C)0.0234
SKL(A,C)0.1173
0.0352+0.02340.1173

이 예제를 목적에 맞게 소개했습니다. 예를 들어 100 번 동전을 던지고 있다고 상상해 봅시다. 이 코인이 편향되지 않는 한, 0-1 비트 시퀀스 (1-head, 0-tail)로 던지기 결과를 간단히 인코딩 할 수 있습니다. 머리의 확률이 꼬리의 확률과 같고 0.5와 같은 상황에서, 그것은 매우 효과적인 인코딩입니다. 이제 우리는 편향 된 동전을 가지고 있으므로 짧은 코드로 더 가능성이 높은 결과를 인코딩합니다. 예를 들어 머리와 꼬리 그룹을 병합하고 k 꼬리 시퀀스보다 코드가 긴 k 헤드 시퀀스를 나타냅니다 (더 가능성이 높습니다). 그리고 여기서 Kullback-Leibler 발산 합니다. P가 결과의 실제 분포를 나타내고 Q가 P의 근사치 인 경우D(P||Q)D(P||Q) 는 실제로 P 표시에서 나온 결과를 Q로 의도 한 인코딩 (사용해야하는 추가 비트의 의미에 대한 페널티)으로 인코딩 할 때 지불하는 페널티를 나타냅니다.

단순히 메트릭이 필요한 경우 Bhattacharyya 거리를 사용하십시오 (물론 수정 된 버전 )1[xp(x)q(x)]


7
실제로 KL 분기와 밀접한 관련이있는 메트릭을 갖는 데 관심이있는 경우 Bhattacharyya 대신 Jensen-Shannon 분기의 제곱근을 고려할 수 있습니다.
추기경

5

귀하의 질문에 순수하게 직관적 인 답변을 드리고자합니다. KL 발산은 힐버트 공간에서 두 데이터 세트 사이의 거리를 계산할 때 두 분포 사이의 거리를 측정하는 방법이지만주의를 기울여야합니다.

왜? KL 발산은 표준 과 같이 일반적으로 사용할 수있는 거리가 아닙니다 . 실제로, 두 분포가 동일한 경우에만 거리가 정의를위한 공리에서와 같이 양이고 0과 같습니다. 그러나 언급했듯이 대칭이 아닙니다. 이를 피할 수있는 방법이 있지만 대칭이 아닌 것이 좋습니다.L2

실제로, KL 발산는 모델 분배 사이의 거리를 정의 (당신이 실제로 알고)과 이론적 하나의 는 다르게 처리하는 것이 합리적하도록 (의 "이론"거리 에 가정을 모델 ) 및 ( 데이터 가정 한 대 의 "임시"거리 )은 상당히 다른 측정 값을 의미합니다.QPKL(P,Q)PQPKL(Q,P)PQQ


4

교과서 정보 이론의 요소는 우리에게 예를 제공합니다.

예를 들어, 랜덤 변수의 실제 분포 p를 알고 있다면 평균 설명 길이 H (p)의 코드를 구성 할 수 있습니다. 대신 분포 q에 코드를 사용한 경우 랜덤 변수를 설명하기 위해 평균적으로 H (p) + D (p || q) 비트가 필요합니다.

위의 진술을 역설하기 위해, 정보 분포를 변경하면 (q에서 p로), 새로운 분포를 코딩하기 위해 평균 D (p || q)의 여분의 비트가 필요하다고 말할 수 있습니다.

삽화

자연어 처리에서 하나의 응용 프로그램을 사용하여 이것을 설명하겠습니다.

사람들의 큰 그룹 레이블 B는, 중재자임을 고려하고 각각의 명사를 선택하는 작업을 할당 turkey, animal그리고 book와 C로 전송주고 그 이메일의 각을 보낼 수있는 사람 이름 A를이 그들에게 몇 가지 힌트. 그룹의 어느 누구도 이메일을받지 못하면 눈썹을 높이고 C가 필요로하는 것을 고려하여 잠시 망설이게됩니다. 그리고 각 옵션이 선택 될 확률은 1/3입니다. 전체적으로 균일 한 분포 (그렇지 않은 경우 자체 선호도와 관련이있을 수 있으며 그러한 경우는 무시 함)

그러나 그들과 같은 동사가 주어지면 그들 중 baste3/4이 선택할 수 turkey있고 3/16이 선택 animal되고 1/16이 선택 book됩니다. 그렇다면 동사를 알면 각 중재자가 평균적으로 비트 단위로 얼마나 많은 정보를 얻었습니까? 그것은:

D(p(nouns|baste)||p(nouns))=x{turkey,animal,book}p(x|baste)log2p(x|baste)p(x)=34log23413+316log231613+116log211613=0.5709  bits

그러나 주어진 동사가 read무엇입니까? 우리는 모두 book망설임없이 선택할 것이라고 생각할 수 있습니다 . 동사에서 각 중재자에 대한 평균 정보 획득 read은 다음과 같습니다.

D(p(nouns|read)||p(nouns))=x{book}p(x|read)log2p(x|read)p(x)=1log2113=1.5849  bits
동사 read는 그 중개자들에게 더 많은 정보를 줄 수 있음을 알 수 있습니다. 이것이 바로 상대 엔트로피가 측정 할 수있는 것입니다.

우리의 이야기를 계속합시다. C가 A가 잘못 동사를 중재자에게 보내서 실수를했다고 말했기 때문에 명사가 잘못되었을 수 있다고 의심하는 경우. 그렇다면 그러한 나쁜 소식이 C에게 ​​어떤 정보를 비트 단위로 줄 수 있습니까?

1) A에 의해 주어진 동사가 baste:

D(p(nouns)||p(nouns|baste))=x{turkey,animal,book}p(x)log2p(x)p(x|baste)=13log21334+13log213316+13log213116=0.69172  bits

2) 그러나 동사가 있다면 read어떨까요?

D(p(nouns)||p(nouns|baste))=x{book,,}p(x)log2p(x)p(x|baste)=13log2131+13log2130+13log2130=  bits

C는 다른 두 명사가 무엇인지 알지 못하기 때문에 어휘의 단어가 가능할 것입니다.

KL 발산이 비대칭임을 알 수 있습니다.

나는 내가 옳기를 바랍니다. 미리 감사드립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.