J'essaie de mettre en œuvre et d'apprendre un processus Dirichlet pour regrouper mes données (ou pendant que les gens apprennent automatiquement, estimer la densité).
J'ai lu beaucoup d'articles sur le sujet et j'ai en quelque sorte eu l'idée. Mais je suis toujours confus; voici une série de questions,
1) Quelle est la différence entre le modèle de restaurant chinois et le DP? 2) Quelle est la différence entre les modèles de mélange infini et DP?
Pour bien comprendre tout, j'ai implémenté le modèle de restaurant chinois, le modèle Polya Urn et le bâton-rupture; Mais il semble que l'implémentation de DP à partir de zéro soit une chose difficile à faire! Je peux lire et écrire python, R, Matlab.
1) Y a-t-il un code que vous recommandez de lire et d'améliorer pour bien comprendre / travailler / développer DP? 2) D'après mes recherches, les codes de Dirichlet Process n'étaient pas faciles à lire! vraiment long, long (probablement car l'efficacité était plus importante que la clarté). 3) Cependant, il y a plus de code sur Infinite Mixture Model que sur Dirichlet Process. Si ces deux méthodes ne sont pas éloignées l'une de l'autre, puis-je utiliser IMM?! Fondamentalement, je veux construire mon nouveau modèle et je ne veux pas réinventer une roue.
J'apprécie vos commentaires
- MISE À JOUR puisque beaucoup de gens ont recommandé le didacticiel d'Edwin Chen sur «le modèle de mélange infini avec des baies non paramétriques et le DP» ; Ce didacticiel a un titre trompeur; Il ne couvre que diverses représentations du DP, de la spécificité, de la RCR, du bris de bâton, du modèle Polya-Urn; et à la fin, il utilise un modèle de mélange de scikit et fait un couple d'histogramme sur chaque groupe;
Réponses:
Quelle est la différence entre DP et CRP?
Le processus de restaurant chinois (CRP) est une distribution sur des partitions d'entiers . La connexion au processus de Dirichlet (DP) existe grâce au théorème de De Finetti.
Théorème de De Finetti: Supposons que nous ayons un processus aléatoire(θ1, … ,θN) qui est infiniment échangeable , alors la probabilité conjointep (θ1, … ,θN) a une représentation sous forme de mélange:
pour une variable aléatoireg .
La propriété d' échangeabilité signifie que nous ne nous soucions pas non plus des indices des tables (nous ne nommons pas les tables) et nous ne nous soucions pas de l'ordre des clients à une table particulière. La partition des clients en différents ensembles est la seule structure qui nous intéresse. Cela signifie que, étant donné une partition, nous n'avons pas besoin de connaître les affectations particulières des clients aux tables, nous avons seulement besoin de connaître le nombre de clients à chaque table.
Le théorème de De Finetti n'aide pas à trouver la distributiong . Il indique seulement qu'il devrait exister.
Le processus de Dirichlet est un précédent sur les distributions . De manière informelle, vous avez introduit une distribution de probabilité et lorsque vous en échantillonnez, vous obtenez une distribution de probabilité après la distribution de probabilité.
Le lien entre les deux peut être établi en prouvant que sig est échantillonné à partir d'un processus de Dirichlet, l'équation dans le théorème de De Finetti tient pour ce particulier g .
Si
puis
Notez quep (θ1, … ,θN) est décrit par un CRP à travers des probabilités pour des partitions particulières. Iciz= i désigne un index de table je . Etnje est le nombre de clients à table je . Par souci d'exhaustivité, rappelez-vous que leD P est:
Je pense qu'il ressort clairement de cette exposition que la connexion est là, mais ne doit pas être considérée comme triviale. Notez également que je n'ai pas décrit le CRP dans le sens d'une distribution conditionnelle sur les clients individuels entrants. Cela ajouterait encore une autre étape conceptuelle entre le CRP et le DP. Mon conseil: n'hésitez pas à être mal à l'aise pour comprendre directement leur relation et commencez à jouer avec la description des distributions conjointes et marginales jusqu'à ce que vous reproduisiez la connexion. Le CRP est obtenu en marginalisantg du DP.
Pour le lien entre la probabilité conjointe et la description séquentielle du CRP, voir [1].
Et si l'échange n'est pas valable? Si l'échangeabilité ne tient pas, nous ne parlons plus du DP ou du CRP, mais du processus de Dirichlet dépendant et du processus de restaurant chinois dépendant. Et naturellement, la connexion entre eux se perd!
Voir [2] pour plus de détails. Le CRP dépendant décrit quel client veut s'asseoir avec quel (seul) autre client. En regroupant toutes les relations client-client, nous pouvons une affectation sur des tables. Le CRP dépendant n'est pas marginalement invariant: la probabilité d'une partition lors de la suppression d'un client dépend également de ce même client. Au contraire, le DP Dépendant est souvent défini par ce très marginal:gt∼ D P( α , H) . IciH est par exemple une distribution Dirichlet elle-même ou toute distribution qui provoque gt et gt′ être lié.
Il existe de nombreuses autres généralisations possibles, certaines admettront une représentation sur les partitions ainsi que sur les distributions, comme le processus de restaurant chinois avec deux paramètres avec le processus Pitman-Yor, ou le processus de buffet indien avec le processus bêta [3] . Certains ne le feront pas.
la source
1) Quelle est la différence entre le modèle de restaurant chinois et le DP?
Aucun. CRP est une représentation particulière de DP. En fonction de votre problème, vous souhaiterez peut-être utiliser une représentation sur une autre (CRP, Stick-breaking, etc.).
2) Quelle est la différence entre les modèles de mélange infini et DP?
DP est juste utilisé comme un a priori pour le modèle de mélange infini. C'est pourquoi les modèles de mélange gaussiens infinis sont également appelés DP-GMM. En fait, le premier article sur le sujet est "The Infinite Gaussian Mixture Model" (Rasmussen, 1999)
3) Implémentations
J'essaie en fait d'implémenter l'article de Rasmussen pour un cas multivarié en Python. (il utilise l'échantillonnage de Gibbs, qui est plus simple que les approximations d'inférence variationnelle). En attendant, j'ai trouvé:
Un très bon article d'Edwin Chen: Infinite Mixture Models with Nonparametric Bayes and the Dirichlet Process
Une introduction à IGMM par Frank Wood / Gentle Introduction to Infinite Gaussian Mixture Modeling
Une tentative d'implémentation de l'IGMM par Michael Mander: Implémentation de l'Infinite GMM . Il rapporte quelques problèmes dans le cas multivarié. Mais c'était en 2005. Je ne sais pas si elle est déjà dépassée et ses problèmes résolus dans l'article de Chen ou dans un article plus récent de Dirasmlet Process Gaussian Mixture Models de Rasmussen : Choix de la distribution de base (je suis actuellement en train de les regarder.)
la source
Je me bats avec la même chose. Grâce à ce forum, j'ai trouvé quelques conseils:
http://scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html
http://statistical-research.com/dirichlet-process-infinite-mixture-models-and-clustering/
Le premier est l'implémentation par scikit-learn d'un mélange infini de Gaussiens multivariés (ne soyez pas rebuté par le
n_components
paramètre, bien que je ne sais pas pourquoi il est là en fait ...).Ce dernier contient du code en R et modélise les choses de façon K-means (j'ai l'impression), mais sans spécifier K (bien sûr ;-)).
Si vous trouvez d'autres packages / descriptions utiles, veuillez les poster!
À M
la source
dirichletClusters
, alors j'ai pensé que j'avais peut-être tort. Mais je n'y vois pas non plus de DP ...Un code très compréhensible de Jacob Eisenstein est disponible pour Matlab sur https://github.com/jacobeisenstein/DPMM . Il est basé sur la dissertation "Modèles graphiques pour la reconnaissance et le suivi d'objets visuels" par EB Sudderth.
la source