두 개의 다변량 정규 분포를 가정하여 KL 발산 공식을 도출하는 데 문제가 있습니다. 일 변량 사례를 상당히 쉽게 수행했습니다. 그러나 수학 통계를 취한 지 꽤 오래되었으므로 다변량 사례로 확장하는 데 문제가 있습니다. 나는 단순한 것을 놓치고 있다고 확신합니다.
여기 내가 가진 것이 있습니다 …
와 q 가 각각 평균 μ 1 과 μ 2 및 분산 Σ 1 과 Σ 2를 갖는 정규 분포의 pdf 라고 가정합니다 . q 에서 p 까지의 Kullback-Leibler 거리는 다음과 같습니다.
pq
μ1
μ2
Σ1
Σ2
q
p
는 두 개의 다변량 법선에 대해 다음과 같습니다.
∫[log(p(x))−log(q(x))] p(x) dx12[log|Σ2||Σ1|−d+Tr(Σ2−1Σ1)+(μ2−μ1)TΣ2−1(μ2−μ1)]
이 proof 와 같은 논리에 따라 붙어 있기 전에 여기에 도착합니다.
=∫[d2log|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(x−μ1))]×p(x)dx
=E[d2log|Σ2||Σ1|+12((x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ2−1(x−μ1))]
트레이스 트릭 을 구현해야한다고 생각 하지만 그 이후에 무엇을 해야할지 모르겠습니다. 올바른 길로 되돌아가는 데 도움이되는 힌트가 있으면 감사하겠습니다!
답변
약간의 수정으로 시작한 부분부터 시작하여
KL=∫[12log|Σ2||Σ1|−12(x−μ1)TΣ1−1(x−μ1)+12(x−μ2)TΣ2−1(x−μ2)]×p(x)dx=12log|Σ2||Σ1|−12tr {E[(x−μ1)(x−μ1)T] Σ1−1}+12E[(x−μ2)TΣ2−1(x−μ2)]=12log|Σ2||Σ1|−12tr {Id}+12(μ1−μ2)TΣ2−1(μ1−μ2)+12tr{Σ2−1Σ1}=12[log|Σ2||Σ1|−d+tr{Σ2−1Σ1}+(μ2−μ1)TΣ2−1(μ2−μ1)].
Matrix Cookbook의 섹션 8.2 에서 몇 가지 속성을 사용했습니다 .