실제로 Kullback-Leibler Divergence를 계산 하시겠습니까?


15

나는 2 사이의 비 유사성 척도로 KL 분기를 사용하고 있습니다. m . f . p.m.f. PQ .

=P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi)

DKL(P||Q)=i=1Nln(PiQi)Pi
=P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

경우 그리고, 우리는 쉽게 그 계산할 수

P(Xi)=0
P(Xi)ln(Q(Xi))=0
P(Xi)ln(P(Xi))=0

그러나 및 를 계산하는 방법

P(Xi)0
Q(Xi)=0
P(Xi)ln(Q(Xi))

다른 사람 저장 시간이 당신이 무엇을 의미하는지에 응시하려면 변경할 수 있습니다 "\ ne"토큰을 사용하여 = 0 ~ P ( X i ) 0P(Xi)!=0P(Xi)0

또한 모든 X i에 대해 입니까? 이 경우 Q 는 확률 함수가 아니기 때문에 KL 발산이 정의 되지 않습니다 (이들은지지보다 1을 합산해야 함). Q(Xi)=0XiQ

@Matthew 감사합니다. 실수로 코딩 습관을 따랐습니다.
smwikipedia

일부 X i의 경우 @Matthew , 전부는 아닙니다. 내가베이스의 해결 고려하고 PQ동일한 세트 성과를 작은 추가 의사 수를 의하지 쇼 업 결과 0.001을 말한다. 값이 0 인 확률을 피할 수 있습니다. 그러나 부작용이 있는지 확실하지 않습니다. Q(Xi)=0XiPQ
smwikipedia

답변:


15

당신은 할 수 없습니다. 확률 분포의 랜덤 변수 Q가 있다고 상상해보십시오. 친구 Bob은 결과가 확률 분포 P에서 나온 것으로 생각합니다. 그는 최적의 인코딩을 구성했습니다. 결과. 그러나 Q가 아닌 P로 인코딩을 구성했기 때문에 코드가 필요 이상으로 길어질 것입니다. KL- 분산은 코드의 길이를 측정합니다.

이제 그가 동전을 가지고 있다고 말하고 그가 얻은 결과의 순서를 말하고 싶습니다. head와 tail도 똑같이 가능하기 때문에 1 비트 코드를 제공합니다. 머리는 0, 꼬리는 1 그가 꼬리 꼬리 머리 꼬리를 얻는다면, 그는 1 1 1을 보낼 수 있습니다. 1. 그의 동전이 가장자리에 떨어지면 그는 당신에게 말할 수 없습니다! 그가 보낸 코드는 작동하지 않습니다. 이 시점에서 KL- 분화가 분해됩니다.

KL- 분산이 분해되기 때문에 다른 측정 또는 다른 확률 분포를 사용해야합니다. 당신이해야 할 일은 실제로 당신이 원하는 것에 달려 있습니다. 확률 분포를 비교하는 이유는 무엇입니까? 확률 분포는 어디에서 왔으며 데이터에서 추정됩니까?

확률 분포는 자연어 문서에서 비롯되었다고 말하고 범주 쌍을 비교하려고합니다.

먼저 대칭 관련성 측정을 권장합니다. 이 응용 프로그램의 경우 B가 A와 비슷하므로 A와 B가 비슷합니다.

코사인 유사성 측정을 시도 했습니까? NLP에서는 매우 일반적입니다.

KL을 고수하고 싶다면 문서 에서 확률 함수를 추정 한 다음 문서에 평균적으로 얼마나 많은 여분의 비트가 필요한지 확인하십시오. 즉 (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2


좋은 설명이지만 약간 혼동됩니다. 첫 번째 단락을 설명하는 방식은 KL (Q || P) 아닌가요?
Jurgen

8

실제로, 나는이 문제에 부딪쳤다. 이 경우 매우 적은 수의 값을 0으로 바꾸면 문제가 발생할 수 있음을 알았습니다. 사용하는 값에 따라 KL 값에 "바이어스"가 도입됩니다. 가설 검정 또는 임계 값과 관련된 다른 용도로 KL 값을 사용하는 경우이 작은 값이 결과를 편향시킬 수 있습니다. 이 문제를 처리하는 가장 효과적인 방법은 BOTH P와 Q가 0이 아닌 일관된 가설 공간 X_i에 대해서만 KL을 계산하는 것입니다. 기본적으로 KL의 도메인을 둘 다 정의 된 도메인으로 제한하고 KL을 사용하여 가설 테스트를 수행 할 때 문제가 발생하지 않도록합니다.


감사. 흥미로운 제안입니다. 기본적으로 P와 Q를 동일한 결과 집합을 기반으로하려고합니다. 나는 그것을 시도 할 것이다.
smwikipedia

P와 Q가 모두 0이 아닌 데이터 하위 집합에 대해 KL을 계산하면 해당 하위 집합에 대해 P와 Q를 다시 정규화해야합니까? 아니면 원래 확률 값을 사용 하시겠습니까? 내가해야한다고 생각합니다. 그렇지 않으면 P와 Q는 여전히 같은베이스에 있지 않습니다.
smwikipedia

방금 당신의 제안으로 시도했습니다. P는 10K 이상의 결과를 배포하고 Q는 10K 이상의 결과를 배포합니다. 그러나 P와 Q의 공통 결과는 3K입니다. P와 Q의 차이를 추정하기 위해 일반적인 3K 결과 만 사용한다면 그것이 합리적이라고 생각하지 않습니다. 우리는 많은 것을 무시하고 있기 때문입니다. 그리고 btw,이 접근법의 결과는 작은 수 (또는 의사 수)를 추가하여 얻는 것과는 다릅니다.
smwikipedia

컨텍스트를 추가하고 NLP 실험을 진행 중입니다. 여러 카테고리의 문서가 있으며 각 카테고리 쌍이 서로 얼마나 밀접한 관계인지 알려고합니다.
smwikipedia

5

Qi=0나는Q나는나는

해결책은 추정 분포에서 0 또는 1 확률을 허용하지 않는 것입니다. 이것은 일반적으로 Good-Turing smoothing, Dirichlet smoothing 또는 Laplace smoothing과 같은 일부 형태의 smoothing에 의해 달성됩니다.

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