Estime la divergencia de Kullback Leibler (KL) con monte carlo


9

Quiero estimar la divergencia KL entre dos distribuciones continuas f y g. Sin embargo, no puedo escribir la densidad para f o g. Puedo tomar muestras de f y g a través de algún método (por ejemplo, markov chain monte carlo).

La divergencia KL de f a g se define así

reKL(FEl |El |sol)=-F(X)Iniciar sesión(F(X)sol(X))reX

Esta es la expectativa de con respecto a f para que puedas imaginar alguna estimación de monte carloIniciar sesión(F(X)sol(X))

1NiNlog(f(xi)g(xi))

Donde i indexa N muestras extraídas de f (es decir, para i = 1, ..., N)xif()

Sin embargo, como no sé f () yg (), ni siquiera puedo usar esta estimación de Monte Carlo. ¿Cuál es la forma estándar de estimar el KL en esta situación?

EDITAR: NO conozco la densidad no normalizada para f () o g ()


¿Has considerado usar los ecdfs?
Toby

esto funcionará, pero puede ser arbitrariamente lento para la difícil elección de fyg (cerrar o cerrar colas). Si decide ignorar las muestras lejos de las colas, entonces podría tener más suerte con el límite superior del roc.
2017

Respuestas:


6

Aquí supongo que solo puede tomar muestras de los modelos; una función de densidad no normalizada no está disponible.

Tu escribes eso

DKL(f||g)=f(x)log(f(x)g(x)=:r)dx,

donde he definido la razón de probabilidades para ser . Alex Smola escribe, aunque en un contexto diferente que puede estimar estas proporciones "fácilmente" simplemente entrenando a un clasificador. Supongamos que ha obtenido un clasificador , que puede indicarle la probabilidad de que haya generado una observación . Tenga en cuenta que . Entonces:p ( f | x ) x f p ( g | x ) = 1 - p ( f | x )rp(f|x)Xfp(g|x)=1p(f|x)

r=p(x|f)p(x|g)=p(f|x)p(x)p(g)p(g|x)p(x)p(f)=p(f|x)p(g|x),

donde el primer paso se debe a Bayes y el último se deduce de la suposición de que .p(g)=p(f)

Obtener un clasificador de este tipo puede ser bastante fácil por dos razones.

Primero, puedes hacer actualizaciones estocásticas. Eso significa que si está utilizando un optimizador basado en gradiente, como es típico para la regresión logística o las redes neuronales, simplemente puede extraer muestras de cadaf y y hacer una actualización.g

En segundo lugar, dado que tiene datos prácticamente ilimitados, puede simplemente muestrear y hasta la muerte, no tiene que preocuparse por el sobreajuste o similares.fg


6

Supongo que puede evaluar y g hasta una constante de normalización. Denote f ( x ) = f u ( x ) / c f y g ( x ) = g u ( x ) / c gfgf(x)=fu(x)/cfg(x)=gu(x)/cg .

Un estimador consistente que puede usarse es , donde r = 1 / n

reKL^(FEl |El |sol)=[norte-1jFtu(Xj)/ /πF(Xj)]-11norteyonorte[Iniciar sesión(Ftu(zyo)soltu(zyo))Ftu(zyo)πr(zyo)]-Iniciar sesión(r^)
es un estimador de muestreo importante para la relacióncf/cg. Aquí usaπfyπgcomo densidades instrumentales parafuygurespectivamente, yπrpara apuntar a la relación logarítmica de densidades no normalizadas.
(1)r^=1/ /norte1/ /nortejFtu(Xj)/ /πF(Xj)jsoltu(yj)/ /πsol(yj).
CF/ /CsolπFπsolFtusoltuπr

Deje que , { y i } π g , y { z i } π r . El numerador de (1) converge a c f . El denominador converge a c g{Xyo}πF{yyo}πsol{zyo}πrcfcg . La relación es consistente por el teorema de mapeo continuo. El registro de la relación es consistente mediante el mapeo continuo nuevamente.

En cuanto a la otra parte del estimador, por la ley de los grandes números.

1NiN[log(fu(zi)gu(zi))fu(zi)πr(zi)]ascfE[log(fu(zi)gu(zi))]

Mi motivación es la siguiente:

Así que solo lo rompo en pedazos manejables.

DKL(f||g)=f(x)log(f(x)g(x))dx=f(x){log[fu(x)gu(x)]+Iniciar sesión[CsolCF]}reX=miF[Iniciar sesiónFtu(X)soltu(X)]+Iniciar sesión[CsolCF]=CF-1miπr[Iniciar sesiónFtu(X)soltu(X)Ftu(X)πr(X)]+Iniciar sesión[CsolCF].

Para obtener más ideas sobre cómo simular la razón de probabilidad, encontré un artículo que tiene algunas: https://projecteuclid.org/download/pdf_1/euclid.aos/1031594732


(+1) Vale la pena señalar aquí que el muestreo de importancia puede tener una varianza extremadamente alta (incluso una varianza infinita) si la distribución objetivo tiene colas más gruesas que la distribución de la que está muestreando y / o el número de dimensiones es en general grande.
David J. Harris

@ DavidJ.Harris muy muy cierto
Taylor

0

Además del método clasificador probabilístico mencionado por @bayerj, también puede usar el límite inferior de la divergencia KL derivada en [1-2]:

KL[fg]supT{Exf[T(x)]Exg[exp(T(x)1)]},
T:XR
T(x)=1+ln[f(x)g(x)]

fgT(x)

Referencias

[1] Nguyen, X., Wainwright, MJ y Jordan, MI, 2010. Estimación de las funciones de divergencia y la razón de probabilidad por minimización convexa del riesgo. IEEE Transactions on Information Theory, 56 (11), pp.5847-5861.

[2] Nowozin, S., Cseke, B. y Tomioka, R., 2016. f-gan: Capacitación de muestreadores neuronales generativos utilizando minimización de divergencia variacional. En Avances en sistemas de procesamiento de información neuronal (pp. 271-279).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.