Мені потрібно визначити KL-розбіжність між двома гауссами. Я порівнюю свої результати з цими , але не можу відтворити їх результат. Мій результат, очевидно, неправильний, оскільки KL не дорівнює 0 для KL (p, p).
Цікаво, де я роблю помилку, і запитую, чи хтось може це помітити.
Нехай і . З PRML Єпископа я це знаюp(x)=N(μ1,σ1)q(x)=N(μ2,σ2)
KL(p,q)=−∫p(x)logq(x)dx+∫p(x)logp(x)dx
де інтеграція здійснюється по всій реальній лінії, і це
∫p(x)logp(x)dx=−12(1+log2πσ21),
тому я обмежуюся до , який я можу виписати як∫p(x)logq(x)dx
−∫p(x)log1(2πσ22)(1/2)e−(x−μ2)22σ22dx,
які можна розділити на
12log(2πσ22)−∫p(x)loge−(x−μ2)22σ22dx.
Беру журнал, я отримую
12log(2πσ22)−∫p(x)(−(x−μ2)22σ22)dx,
де я відокремлюю суми і отримую з інтеграла.σ22
12log(2πσ22)+∫p(x)x2dx−∫p(x)2xμ2dx+∫p(x)μ22dx2σ22
Дозволити позначимо оператор математичного очікування при , я можу переписати це як⟨⟩p
12log(2πσ22)+⟨x2⟩−2⟨x⟩μ2+μ222σ22.
Ми знаємо, що . Таким чиномvar(x)=⟨x2⟩−⟨x⟩2
⟨x2⟩=σ21+μ21
і тому
12log(2πσ2)+σ21+μ21−2μ1μ2+μ222σ22,
яку я можу поставити як
12log(2πσ22)+σ21+(μ1−μ2)22σ22.
Збираючи все разом, я добираюся
KL(p,q)=−∫p(x)logq(x)dx+∫p(x)logp(x)dx=12log(2πσ22)+σ21+(μ1−μ2)22σ22−12(1+log2πσ21)=logσ2σ1+σ21+(μ1−μ2)22σ22.
Що неправильно, оскільки воно дорівнює для двох однакових гауссів.1
Чи може хтось помітити мою помилку?
Оновлення
Завдяки mpiktas за очищення речей. Правильна відповідь:
KL(p,q)=logσ2σ1+σ21+(μ1−μ2)22σ22−12