Question:
Quelqu'un peut-il expliquer l'échantillonnage de Gibbs avec des mots très simples?
Thea
2011-05-02 00:37:57 UTC
view on stackexchange narkive permalink

Je fais quelques lectures sur la modélisation de sujets (avec l'allocation de dirichlet latente) qui utilise l'échantillonnage de Gibbs. En tant que débutant en statistique ― eh bien, je connais des choses comme les binômes, les multinomiaux, les priors, etc.―, j'ai du mal à comprendre comment fonctionne l'échantillonnage Gibbs. Quelqu'un peut-il l'expliquer en anglais simple et / ou en utilisant des exemples simples? (Si vous n'êtes pas familier avec la modélisation de sujets, tous les exemples feront l'affaire.)

Voir cette question: http://stats.stackexchange.com/questions/8485/a-good-gibbs-sampling-tutorials-and-references
Je me demande qui a signalé pour signaler cette question comme un double?Cette question a précédé la question dans le lien ...
Trois réponses:
#1
+182
charles.y.zheng
2011-05-02 01:52:41 UTC
view on stackexchange narkive permalink

Vous êtes un donjon hébergeant Dungeons & Dragons et un joueur lance 'Spell of Eldritch Chaotic Weather (SECW). Vous n'avez jamais entendu parler de ce sort avant, mais il s'avère qu'il est assez compliqué. Le joueur vous tend un livre dense et dit: «L'effet de ce sort est que l'un des événements de ce livre se produit. Le livre contient un énorme 1000 effets différents, et de plus, les événements ont différentes «probabilités relatives». Le livre vous dit que l'événement le plus probable est «boule de feu»; toutes les probabilités des autres événements sont décrites par rapport à la probabilité de «boule de feu»; par exemple: à la page 155, il est dit que «tempête de canard» est deux fois moins probable que «boule de feu».

Comment allez-vous, le maître du donjon, pour échantillonner un événement aléatoire de ce livre? Voici comment procéder:

L'algorithme d'acceptation-rejet:

1) Lancez un d1000 pour décider d'un événement «candidat».

2) Supposons que l'événement candidat soit 44% plus probable que l'événement le plus probable, «boule de feu». Puis acceptez le candidat avec une probabilité de 44%. (Lancez un d100, et acceptez si le résultat est de 44 ou moins. Sinon, revenez à l'étape 1 jusqu'à ce que vous acceptiez un événement.)

3) L'événement accepté est votre échantillon aléatoire.

L'algorithme d'acceptation-rejet est garanti pour échantillonner à partir de la distribution avec les probabilités relatives spécifiées.

Après de nombreux lancers de dés, vous finissez par accepter un candidat: 'summon frog'. Vous poussez un soupir de soulagement alors que vous pouvez maintenant revenir à la tâche (de routine en comparaison) de gérer la bataille entre les troll-orcs et les elfes-dragons.

Cependant, pour ne pas être en reste, un autre joueur décide de lancer 'Niveau. 2 tempête de cyber-effet arcanique. Pour ce sort, deux effets aléatoires différents se produisent: une attaque générée aléatoirement et un buff de personnage généré aléatoirement. Le manuel de ce sort est si énorme qu'il ne peut tenir que sur un CD. Le joueur vous lance et vous montre une page. Votre mâchoire tombe: l ' entrée pour chaque attaque est à peu près aussi grande que le manuel du sort précédent, car elle répertorie une probabilité relative pour chaque buff d'accompagnement possible

' Cupric Blade '

Le buff le plus probable accompagnant cette attaque est' Hotelling aura '

' Jackal Vision 'est 33% plus susceptible d'accompagner cette attaque que' Hotelling aura '

'Toaster Ears' est 20% plus susceptible d'accompagner cette attaque que 'Hotelling aura'

...

De même, la probabilité d'un le sort d'attaque dépend de la probabilité que le buff se produise.

Il serait justifié de se demander si une distribution de probabilité appropriée peut même être définie compte tenu de cette information. Eh bien, il s'avère que s'il y en a un, il est uniquement spécifié par les probabilités conditionnelles données dans le manuel. Mais comment en tirer un échantillon?

Heureusement pour vous, le CD est livré avec un échantillonneur automatique de Gibbs, car vous auriez à passer une éternité à faire ce qui suit à la main.

Algorithme d'échantillonnage de Gibbs

1) Choisissez un sort d'attaque au hasard

2) Utilisez l'algorithme d'acceptation-rejet pour choisir le buff conditionnel à l'attaque

3) Oubliez le sort d'attaque que vous avez choisi à l'étape 1, choisissez un nouveau sort d'attaque en utilisant l'algorithme d'acceptation-rejet conditionnel au buff de l'étape 2

4) Passez à l'étape 2, répétez indéfiniment (bien que généralement 10000 itérations suffiront)

5) Quel que soit votre algorithme à la dernière itération, c'est votre échantillon.

Vous voyez, en général, les échantillonneurs MCMC ne sont garantis que asymptotiquement pour générer des échantillons à partir d'une distribution avec les probabilités conditionnelles spécifiées. Mais dans de nombreux cas, les échantillonneurs MCMC sont la seule solution pratique disponible.

Idem, +1 pour avoir mis D&D dans un fil de statistiques.
Euh, qu'est-ce qu'un buff?
+1 (devrait être +10) - Meilleure explication que j'ai jamais entendue:]
@charles, hm intéressant, j'ai toujours pensé que l'échantillonnage de Gibbs consiste à échantillonner $ p (x | y) $ et $ p (y | x) $ pour obtenir l'échantillon de $ (x, y) $. Je pensais que le schéma d'échantillonnage décrit ici s'appelle Metropolis-Hastings. Ai-je tort?
@mpiktas. Dans le deuxième exemple, $ x $ est «l'attaque» et $ y $ est le buff. Donc en effet, je présente un algorithme pour échantillonner $ (x, y) $ étant donné $ p (x | y) $ et $ p (y | x) $.
Merci @charles,, je l'ai manqué. Pour une raison étrange, je trouve toujours les textes mathématiques stricts plus facilement compréhensibles que les exemples non stricts. Peut-être que dans ce cas, le fait que je n'ai jamais joué à D&D joue contre moi. +1 pour la réponse cependant.
C'est tellement génial que je me connecte juste pour voter et dire merci!
Je ne comprends pas l'essentiel de la réponse ...
Ne pas être un chien face à un Orc ici ... euh ... mais je suis d'accord avec @mpiktas, cela ressemble à Metropolis-Hastings, pas à Gibbs.
@charles.y.zheng, lorsque vous utilisez vos propres données et modèle pour estimer un paramètre, que seraient p (x | y) et p (y | x) pour obtenir l'échantillon de (x, y)?x le paramètre et y seraient les données?Aurait-il la forme p (paramètre | données, modèle)?
Explication facile à comprendre - et je n'ai même pas joué à D&D.Merci!
@JDLong Gibbs est un cas particulier de métro-hastings.
ok maintenant si je peux obtenir une explication de D&D en utilisant l'échantillonnage Gibbs, je serai prêt à partir!:)
Dois-je apprendre à jouer à D&D maintenant pour comprendre une réponse à une question de statistiques?: /
ADOM quelqu'un?# & $>
#2
+14
edwinfj_
2016-11-29 20:41:58 UTC
view on stackexchange narkive permalink

Je trouve ce document GIBBS SAMPLING FOR THE UNINITIATED par Resnik & Hardisty très utile pour les non-spécialistes des statistiques. Il explique pourquoi & comment utiliser l'échantillonnage Gibbs, et contient des exemples démontrant l'algo.

Il semble que je ne puisse pas encore commenter.

L'échantillonnage Gibbs n'est pas un concept autonome. Cela nécessite des connaissances préalables. Voici la chaîne de connaissances que j'ai résumée à partir de ma propre étude, comme pour votre référence (ma spécialité était la physique appliquée):

  1. Monte Carlo (compréhension de haut niveau)
  2. Modèle de Markov (haut niveau)
  3. Théorème de Bayes
  4. Échantillonnage de Gibbs

Le document que j'ai nommé ici suit à peu près la chaîne. Si le lien est rompu, recherchez le nom du document sur Google. Vous le trouverez.

Quelques réflexions: je ne pense pas que l'échantillonnage de Gibbs puisse être compris uniquement par quelques résumés. Il n'y a pas de raccourci pour cela. Vous devez comprendre les mathématiques derrière tout cela. Et comme c'est plus une "technique", mon critère de "comprendre" est "vous pouvez éditer son code et comprendre ce que vous faites (pas nécessairement à partir de zéro)". Pour ceux qui pensent l'avoir compris en regardant quelques notes rapides, ils comprennent probablement ce qu'est "Markov Chain Monte Carlo" à un niveau élevé et pensent qu'ils ont tout compris (j'ai fait cette illusion moi-même).

Pouvez-vous résumer le contenu du lien?Sinon, c'est vraiment plus un commentaire qu'une réponse (même si ce serait un commentaire utile)
Bonne citation de papier: je suis nouveau dans ce domaine et pas bon avec des définitions strictes, et la page 2 de l'article est le meilleur et le plus succinct résumé de l'estimation de la probabilité maximale par rapport au maximum a posteriori que j'ai vu.
#3
+4
Taylor
2016-11-30 00:31:02 UTC
view on stackexchange narkive permalink

De wikipedia: "Le but de Gibbs Sampling ici est d'approximer la distribution de $ P (\ mathbf {Z} | \ mathbf {W}; \ alpha, \ beta) $" Notation peut être trouvé sur le site wiki ou à partir de l'article original ici.

Un "scan" de l'échantillonnage de Gibbs ciblant la distribution ci-dessus vous donnera des tirages à partir des distributions de probabilité suivantes: $ P (\ mathbf {Z} _ {(1,1)} | \ mathbf {Z} _ {- (1,1)} \ mathbf {W}; \ alpha, \ beta) $, $ P (\ mathbf { Z} _ {(1,2)} | \ mathbf {Z} _ {- (1,2)} \ mathbf {W}; \ alpha, \ beta) $, $ P (\ mathbf {Z} _ {( 1,3)} | \ mathbf {Z} _ {- (1,3)} \ mathbf {W}; \ alpha, \ beta), \ ldots, P (\ mathbf {Z} _ {(N, K) } | \ mathbf {Z} _ {- (N, K)} \ mathbf {W}; \ alpha, \ beta) $. Vous pouvez soit les parcourir dans une séquence, soit choisir au hasard lequel d'entre eux pour échantillonner le formulaire. Mais vous continuez à faire des scans encore et encore pour obtenir de nombreux échantillons. Quelle que soit l'option que vous choisissez, vous obtenez une séquence de $ \ mathbf {Z} $ s.

$$ \ mathbf {Z} ^ 1, \ mathbf {Z} ^ 2, \ mathbf {Z} ^ 3 \ ldots $$

Chaque $ \ mathbf {Z} ^ i $ est une matrice $ N \ times K $. De plus, pour deux matrices $ \ mathbf {Z} $ consécutives, un seul élément sera différent. C'est parce que vous échantillonnez à partir d'une distribution $ P (\ mathbf {Z} _ {(m, n)} | \ mathbf {Z} _ {- (m, n)} \ mathbf {W}; \ alpha, \ beta) $ lorsque vous passez d'un échantillon à l'autre.

Pourquoi voudriez-vous cela? Ne voulons-nous pas de tirages indépendants et identiques de $ P (\ mathbf {Z} | \ mathbf {W}; \ alpha, \ beta) $? De cette façon, nous pourrions utiliser la loi des grands nombres et les théorèmes centraux de limite pour approximer les attentes, et nous aurions une idée de l'erreur. Mais je doute que ces tirages $ \ mathbf {Z} $ soient indépendants. Et sont-ils même identiques (viennent-ils même de la même distribution)?

L'échantillonnage de Gibbs peut encore vous donner une loi des grands nombres et un théorème de limite central. $ \ mathbf {Z} ^ 1, \ mathbf {Z} ^ 2, \ mathbf {Z} ^ 3 \ ldots $ est une chaîne de Markov avec une distribution stationnaire / invariante $ P (\ mathbf {Z} | \ mathbf {W}; \ alpha, \ beta) $.Cela signifie que la distribution marginale de chaque tirage provient de la distribution que vous ciblez (ce sont donc des tirages identiques).Cependant, ils ne sont pas indépendants.En pratique, cela signifie que vous exécutez la chaîne plus longtemps ou que vous sous-échantillonnez la chaîne (ne prenez que tous les 100 échantillons, par exemple).Cependant, tout peut encore «fonctionner».

Pour plus d'informations, je clique sur le lien sous la question.Il y a quelques bonnes références publiées dans ce fil.Cette réponse tente simplement de vous donner le jist en utilisant la notation dans les références LDA courantes.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...