Кулбек-Лейблер розбіжність між двома розподілами гами


15

Вибираючи параметризацію розподілу гами Γ(b,c) за допомогою pdf g(x;b,c)=1Γ(c)xc1bcex/b Розбіжність Куллбека-Лейблера міжΓ(bq,cq)іΓ(bp,cp)задається [1], як

KLGa(bq,cq;bp,cp)=(cq1)Ψ(cq)logbqcqlogΓ(cq)+logΓ(cp)+cplogbp(cp1)(Ψ(cq)+logbq)+bqcqbp

Я здогадуюсь, що -функція digamma. Ψ(x):=Γ(x)/Γ(x)

Це дано без походження. Я не можу знайти жодної посилання, яка б це випливала. Будь-яка допомога? Буде достатньо гарного посилання. Важкою частиною є інтеграція проти gma pdf.logx

[1] WD Penny, KL-розбіжності нормальної, гамма, диріхле та щільності Вішарта, доступні за адресою: www.fil.ion.ucl.ac.uk/~wpenny/publications/densities.ps


2
Беручи похідну pdf відносно вводимо шуканий коефіцієнт l o g ( x ) : ось чому з'являється digamma. clog(x)
whuber

Якщо ви трапляєтесь через П'єра Бальді та Лорана Ітті (2010) "Про біти та вау: Байєсова теорія сюрпризу із застосуванням до уваги". Нейрові мережі 23: 649-666, ви знайдете рівняння 73 дає різницю KL між двома гамма-pdfs. Але будьте обережні, схоже, формула неправильно надрукована.
Містер Кларнет

Шукаю для вирішення тієї ж проблеми і знайти це один корисно.
Yi Yang

Відповіді:


15

Дивергенція KL - це різниця інтегралів форми

$$ \ eqalign {I (a, b, c, d) & = \ int_0 ^ {\ infty} \ log \ зліва (\ frac {e ^ {- x / a} x ^ {b-1}} {a ^ b \ Gamma (b)} \ справа) \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} dx \

& = - \ frac {1} {a} \ int_0 ^ \ infty \ frac {x ^ de ^ {- x / c}} {c ^ d \ Gamma (d)} \, dx - \ log (a ^ b \ Gamma (b)) \ ​​int_0 ^ \ infty \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx \ & \ quad + (b- 1) \ int_0 ^ \ infty \ log (x) \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx \

& = - \ frac {cd} {a} - \ log (a ^ b \ Gamma (b)) + (b-1) \ int_0 ^ \ infty \ log (x) \ frac {e ^ {- x / c } x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx} $$

Треба просто мати справу з інтегралом правої руки, який отримуємо шляхом спостереження

dΓ(d)=d0ex/cxd1cddx=d0ex/c(x/c)d1cdx=0ex/cxd1cdlogxcdx=0log(x)ex/cxd1cddxlog(c)Γ(d).

Звідси

b1Γ(d)0log(x)ex/c(x/c)d1dx=(b1)Γ(d)Γ(d)+(b1)log(c).

Підключення до попередніх урожаїв

I(a,b,c,d)=cdalog(abΓ(b))+(b1)Γ(d)Γ(d)+(b1)log(c).

Дивергенція KL між та Γ ( a , b ) дорівнює I ( c , d , c , d ) - I ( a , b , c , d ) , яку легко зібрати.Γ(c,d)Γ(a,b)I(c,d,c,d)I(a,b,c,d)


Деталі впровадження

Гамма-функції швидко зростають, щоб уникнути переповнення, не обчислюйте Гамму та не приймайте її логарифм: замість цього використовуйте функцію log-Gamma, яку можна знайти в будь-якій статистичній обчислювальній платформі (включаючи Excel, для цього питання).

Ставлення є логарифмічна похідна Г , як правило , називають ψ , дігамма функція. Якщо це недоступно для вас, існують порівняно прості способи його наближення, як описано у статті Вікіпедії .Γ(d)/Γ(d)Γ,ψ,

Тут, щоб проілюструвати, є прямою Rреалізацією формули в термінах . Це не використовує можливість спростити результат алгебраїчно, що б зробити його трохи більш ефективним ( за рахунок усунення надмірного розрахунку ф ).Iψ

#
# `b` and `d` are Gamma shape parameters and
# `a` and `c` are scale parameters.
# (All, therefore, must be positive.)
#
KL.gamma <- function(a,b,c,d) {
  i <- function(a,b,c,d)
    - c * d / a - b * log(a) - lgamma(b) + (b-1)*(psigamma(d) + log(c))
  i(c,d,c,d) - i(a,b,c,d)
}
print(KL.gamma(1/114186.3, 202, 1/119237.3, 195), digits=12)

2
Гарна відповідь. Спасибі! Я вважаю, що в четвертому рівності є помилка знаку. Крім того, ваш gma pdf повинен мати додатковий коефіцієнт 'c' у знаменнику. Хочете, щоб я його відредагував?
Ian Langmore

@Ian You're right; I usually write the measure as dx/x and by not doing that I omitted that extra factor of c. Good catch on the sign mistake. If you would like to make the edits, feel free!
whuber

2
I made the corrections.
Ian Langmore

10

The Gamma distribution is in the exponential family because its density can be expressed as:

f(xθ)=exp(η(θ)T(x)g(θ)+h(x))

Looking at the Gamma density function, its log-normalizer is

g(θ)=log(Γ(c))+clog(b)
with natural parameters
θ=[c11b]

All distributions in the exponential family have KL divergence:

KL(q;p)=g(θp)g(θq)(θpθq)g(θq).

There's a really nice proof of that in:

Frank Nielsen, École Polytechnique, and Richard Nock, Entropies and cross-entropies of exponential families.


Didn't know this. Just a quick question - the g(.) function, does it have to be the same for θp as for θq? So for example, would the above formula be valid for KL divergence of normal pdf from gamma pdf?
probabilityislogic

1
Yes, this formula is for two distributions in the same exponential family.
Neil G
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.