Estoy tratando de implementar y aprender un Proceso de Dirichlet para agrupar mis datos (o como la gente de aprendizaje automático habla, estimar la densidad).
Leí mucho papel sobre el tema y de alguna manera tuve la idea. Pero todavía estoy confundido; aquí hay una serie de preguntas,
1) ¿Cuál es la diferencia entre el modelo de restaurante chino y el DP? 2) ¿Cuál es la diferencia entre los modelos Infinite Mixture y DP?
Para comprender completamente todo, he implementado el modelo de restaurante chino, el modelo de urna de Polya y el rompimiento de palos; Pero parece que implementar DP desde cero es algo difícil de hacer. Puedo leer y escribir python, R, Matlab.
1) ¿Hay algún código que recomiende leer y mejorar para comprender / trabajar / desarrollar DP completamente? 2) Según mi investigación, los códigos para el Proceso de Dirichlet no fueron fáciles de leer. realmente largo, largo (probablemente porque la eficiencia era más importante que la claridad). 3) Sin embargo, hay más código en el modelo de mezcla infinita que en el proceso de Dirichlet. Si estos dos métodos no están lejos el uno del otro, ¿puedo usar IMM? Básicamente, quiero construir mi nuevo modelo, y no quiero reinventar una rueda.
Agradezco tus comentarios
- ACTUALIZACIÓN ya que muchas personas han recomendado el tutorial de Edwin Chen sobre "Modelo de mezcla infinita con Bayes no paramétricos y el DP" ; Este tutorial tiene un título engañoso; Solo cubre diversas representaciones de DP, especificidad, RCP, rotura de palos, modelo de polia-urna; y al final está usando un modelo de mezcla de scikit y hace un par de histogramas en cada grupo;
fuente
Respuestas:
¿Cuál es la diferencia entre DP y CRP?
El proceso de restaurante chino (CRP) es una distribución sobre particiones de enteros . La conexión con el Proceso de Dirichlet (DP) existe gracias al teorema de De Finetti.
Teorema de De Finetti: supongamos que tenemos un proceso aleatorio que es infinitamente intercambiable , entonces la probabilidad conjunta tiene una representación como una mezcla:(θ1, ... ,θnorte) p (θ1, ... ,θnorte)
por alguna variable aleatoria .sol
La propiedad de intercambiabilidad significa que no nos importan los índices de las tablas (no nombramos las tablas) y no nos importa el orden de los clientes en una tabla en particular. La partición de clientes en diferentes conjuntos es la única estructura en la que estamos interesados. Esto significa que, dada una partición , no necesitamos conocer las asignaciones particulares de clientes a las tablas, solo necesitamos saber el número de clientes en cada mesa.
Teorema de De Finetti no ayuda en la búsqueda de la distribución . Solo dice que debería existir.sol
El proceso de Dirichlet es anterior a las distribuciones . Informalmente, arrojas una distribución de probabilidad y cuando tomas muestras de ella, obtendrás una distribución de probabilidad después de la distribución de probabilidad.
La conexión entre ambos puede establecerse demostrando que si se muestrea a partir de un Proceso de Dirichlet, la ecuación en el teorema de De Finetti se cumple para este particular .sol sol
Si
entonces
Tenga en cuenta que es descrito por un CRP a través de probabilidades para particiones particulares. Aquí denota un índice de tabla . Y es el número de clientes en la tabla . Para completar, recuerde que el es:p (θ1, ... ,θnorte) z= i yo norteyo yo D P
Creo que está claro de esta exposición es que la conexión está ahí, pero no debe considerarse trivial. Tenga en cuenta también que no describí el CRP en el sentido de una distribución condicional sobre los clientes individuales entrantes. Esto agregaría otro paso conceptual más entre el CRP y el DP. Mi consejo: siéntase libre de sentirse incómodo al comprender directamente su relación y comience a jugar con la descripción de distribuciones conjuntas y marginales hasta que reproduzca la conexión. La PCR se obtiene al marginar a del DP.sol
Para la conexión entre la probabilidad conjunta y la descripción secuencial de la PCR, ver [1].
¿Qué pasa si la intercambiabilidad no es válida? Si la intercambiabilidad no se mantiene, ya no hablamos sobre el DP o el CRP, sino sobre el Proceso de Dirichlet dependiente y el Proceso de restaurante chino dependiente. ¡Y naturalmente, la conexión entre ellos se pierde!
Ver [2] para más detalles. El CRP dependiente describe qué cliente quiere sentarse con qué (único) otro cliente. Al agrupar todas las relaciones cliente-cliente podemos realizar una tarea sobre tablas. El CRP dependiente no es marginalmente invariable: la probabilidad de una partición al eliminar un cliente también depende de ese mismo cliente. Por el contrario, el DP dependiente a menudo se define por este muy marginal: . Aquí es, por ejemplo, una distribución de Dirichlet o cualquier distribución que hace que y estén relacionados.solt∼ D P( α , H) H solt solt′
Hay muchas otras generalizaciones posibles, algunas de ellas admitirán una representación sobre particiones y sobre distribuciones, como el proceso de restaurante chino con dos parámetros con el proceso Pitman-Yor, o el proceso buffet indio con el proceso beta [3] . Algunos de ellos no lo harán.
fuente
1) ¿Cuál es la diferencia entre Chinese Restaurant Model y DP?
Ninguna. CRP es una representación particular de DP. Dependiendo de su problema, es posible que desee utilizar una representación sobre otra (CRP, Stick-breaking, etc.).
2) ¿Cuál es la diferencia entre los modelos Infinite Mixture y DP?
DP solo se usa como previo para el modelo de mezcla infinita. Esta es la razón por la cual los modelos de mezcla gaussiana infinita también se denominan DP-GMM. En realidad, el primer artículo sobre el tema es "El modelo de mezcla gaussiana infinita" (Rasmussen, 1999)
3) Implementaciones
De hecho, estoy tratando de implementar el artículo de Rasmussen para un caso multivariado en Python. (usa el muestreo de Gibbs, que es más simple que las aproximaciones de inferencia variacional). Mientras tanto, encontré:
Una muy buena publicación de Edwin Chen: Modelos de mezclas infinitas con Bayes no paramétricos y el proceso de Dirichlet
Una introducción a IGMM por Frank Wood / Introducción suave al modelado infinito de mezclas gaussianas
Un intento de implementar el IGMM por Michael Mander: Implementando el GMM Infinito . Él informa algunos problemas dentro del caso multivariante. Pero esto fue en 2005. No estoy seguro de si ya está desactualizado y sus problemas se resolvieron en la publicación de Chen o en un documento más reciente de Rasmussen, el Proceso de Dirichlet, Modelos de mezcla gaussiana: elección de la distribución de base (actualmente estoy viendo estos).
fuente
Estoy luchando con lo mismo. A través de este foro encontré algunos consejos:
http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html
http://statistical-research.com/dirichlet-process-infinite-mixture-models-and-clustering/
El primero es la implementación de scikit-learn de una mezcla infinita de gaussianos multivariados (no se desanime por el
n_components
parámetro, aunque no estoy seguro de por qué está allí en realidad ...).Este último contiene algún código en R y modela las cosas de una manera K-significa (me da la impresión), pero sin especificar K (por supuesto ;-)).
Si encuentra otros paquetes / descripciones útiles, ¡publíquelos!
Tom
fuente
dirichletClusters
, así que pensé que tal vez estaba equivocado. Pero tampoco veo el DP en él ...Un código muy comprensible por Jacob Eisenstein está disponible para Matlab en https://github.com/jacobeisenstein/DPMM . Se basa en la disertación "Modelos gráficos para el reconocimiento y seguimiento de objetos visuales" por EB Sudderth.
fuente