파이썬 코드에서 KL 분기를 사용 하고이 자습서를 얻었습니다 .
이 튜토리얼에서 KL 분기를 구현하는 것은 매우 간단합니다.
kl = (model * np.log(model/actual)).sum()
이해 된 바와 같이, 확률 분포 model
및 actual
<= 1이어야한다.
내 질문은 k의 최대 한계 / 최대 가능한 값은 무엇입니까?입니다. 내 코드의 최대 경계와 관련하여 kl 거리의 최대 값을 알아야합니다.
파이썬 코드에서 KL 분기를 사용 하고이 자습서를 얻었습니다 .
이 튜토리얼에서 KL 분기를 구현하는 것은 매우 간단합니다.
kl = (model * np.log(model/actual)).sum()
이해 된 바와 같이, 확률 분포 model
및 actual
<= 1이어야한다.
내 질문은 k의 최대 한계 / 최대 가능한 값은 무엇입니까?입니다. 내 코드의 최대 경계와 관련하여 kl 거리의 최대 값을 알아야합니다.
답변:
또는 동일한 분포를 사용하더라도 한 분포가 다른 분포보다 꼬리가 더 뚱뚱 할 때. K L ( P | | Q ) = ∫ p ( x ) 로그를 취합니다 ( p ( x )p ( x ) = 코시 밀도 when 1 일 때 d x
동일한 지원이없는 배포의 경우 KL 분기는 제한되지 않습니다. 정의를보십시오 :
P 및 Q는 동일하지 지지체가있는 경우, 어떤 시점이 존재 및 KL 무한대로 이동 만드는. 이것은 또한 개별 배포판에도 적용됩니다. p ( x ′ ) ≠ 0 q ( x ′ ) = 0
편집 : 어쩌면 확률 분포 사이의 발산을 측정하는 더 좋은 선택은 메트릭이며 KL 발산보다 더 나은 속성을 갖는 소위 Wasserstein 거리 일 것입니다. 딥 러닝 응용 프로그램으로 인해 인기가 높아졌습니다 (WGAN 네트워크 참조).
Carlos 와 Xi'an 의 탁월한 답변을 추가하기 위해 KL 발산이 유한하기에 충분한 조건은 임의의 변수가 동일한 소형지지를 가지며 참조 밀도가 제한되는 것입니다. . 이 결과는 또한 KL 발산의 최대치에 대한 암시 적 한계를 설정합니다 (아래의 정리 및 증명 참조).
정리 : 밀도 와 가 동일한 소형 지지대 를 갖고 밀도 가 해당 지지대에 한정되어있는 경우 (즉, 유한 상한이있는 경우) .q X p K L ( P | | Q ) < ∞
증명 : 는 간단한 지원 때문에 긍정적 인 가치가 없음을 의미합니다.X
마찬가지로, 는 대한 간단한 지원을 가지고 있기 때문에 긍정적 인 가치가 있음을 의미합니다.
또한 이들은 모두 동일한 지원에 대한 밀도이며 후자는 제한적이므로 있습니다. 이것은 다음을 의미합니다.
이제시키는 후자의 상한, 우리는 분명히 가져야 그래서 그:
이것은 필요한 상한을 정해 정리를 증명한다.