[PYTHON] Einführung in nichtparametrische Felder

Einführung in nichtparametrische Felder

Ich habe kürzlich über nichtparametrische Buchten studiert und versucht, meinen Geist zu organisieren. Ich bin kein Spezialist, daher würde ich mich freuen, wenn Sie auf Fehler hinweisen könnten.

Motivation

Nichtparametrische Felder sind einfach unendlich dimensionale Feldmodelle. (Es ist nicht so, dass es keine Parameter gibt.) Es scheint, dass die Theorie selbst bereits seit geraumer Zeit grob entwickelt und seit den 2000er Jahren im Kontext des maschinellen Lernens verwendet wird.

Beispielsweise geben Sie beim Clustering normalerweise eine Mischungsnummer an. In nicht parametrischen Feldern wird die Mischungszahl jedoch automatisch bestimmt, sobald Sie glauben, dass es unendlich viele Cluster gibt. Insbesondere sieht es wie das GIF unten aus.

npb5.gif

Wenn die Farben gleich sind, befinden sie sich im selben Cluster. Ich habe die Anzahl der Cluster nicht angegeben, aber Sie können sehen, dass sie sich gut gruppieren. Dieses Mal wollen wir dieses unendlich gemischte Modell implementieren. Der Code ist https://github.com/Ma-sa-ue/practice/tree/master/machine%20learning(python)/nonparabayes Es ist in aufgeführt. Als Anwendungsbeispiel für anderes maschinelles Lernen als Nicht-Parabayes-Clustering

es gibt. Die Vorteile (obwohl sie sich überschneiden) sind wie folgt.

Ein kurzer Überblick

Wie ich bereits sagte, besteht das Ziel darin, ein unendlich gemischtes Modell zu implementieren. Zu diesem Zweck werden wir zunächst den Dirichlet-Prozess, den Stick-Breaking-Prozess und den chinesischen Restaurantprozess erläutern, die Teile von Nicht-Parabayes sind. Es ist wichtig, dass die drei nicht getrennt sind, sondern auch unterschiedliche Perspektiven. Ordnen Sie dann das Obige im Kontext eines gemischten Verteilungsmodells neu an. Implementieren Sie dann das unendlich gemischte Modell. Danach organisierte ich den theoretischen Hintergrund. Ich bin nicht in der Lage, etwas Großartiges zu sagen, aber als ich studierte, konnte ich in einem Dokument überhaupt nichts verstehen. Ich empfehle daher, dass Sie auf verschiedene Dokumente verweisen und diese implementieren.

Basisausgabe

Dies ist ein Diagramm aus dem Tutorial von Professor Ueda (Referenz 1). Das Verständnis dieser Zahl ist eines der Ziele.

image

Limitiertes gemischtes Modell

Zuerst werde ich darüber schreiben, was mit dem endlichen gemischten Modell vor der Unendlichkeit passiert. Es kann durch ein grafisches Modell wie (a) dargestellt werden. Speziell

\theta_{k}\sim G_{0}, \pi =(\pi_{1},...,\pi_{K}) \sim Dirichlet(\frac{\alpha}{K},...,\frac{\alpha }{K}) z_{i}|\pi \sim Multinomial(\pi) x_{i}|z_{i},\theta_{k} \sim f(\theta_{z_{i}})

Es wird sein. $ x = (x_ {1}, ..., x_ {n}) $ ist der beobachtete Wert und $ z = (z_ {1}, ..., z_ {n}) $ ist die Bezeichnung. $ \ pi $ ist der Würfel zur Bestimmung des Etiketts. Für gemischte Gaußsche Verteilungen ist f die Gaußsche Verteilung und $ \ theta = (\ theta_ {1}, ..., \ theta_ {k}) $ ist der Durchschnitt jeder der K Klassen. $ G_ {0} $ ist die Parameterpriorität. Im Fall einer gemischten Gauß-Verteilung ist dies, wenn sie konjugiert ist, auch eine Gauß-Verteilung.

Sie können nur $ x $ beobachten, aber Sie möchten wirklich das wahre $ z $ (Label) kennen. Im Fall eines endlichen gemischten Modells kann es grundsätzlich durch Gibbs-Abtastung für $ z $ und $ \ theta $ erhalten werden. Sie können auch eine Methode für ein unendlich gemischtes Modell erstellen, indem Sie $ K $ unendlich nehmen. Wenn es jedoch darum geht, dieses "wie es ist" zu implementieren, stellt sich heraus, dass es unendlich viele Klassen gibt und es unmöglich ist.

Dirichlet-Verteilung

Die multivariate Version der Beta-Distribution ist die Dirichlet-Distribution. Die Dirichlet-Verteilung erscheint häufig als Prior einer Polynomverteilung in Bayes. Zu diesem Zeitpunkt ist es wichtig, dass die Summe der aus der K-dimensionalen Dirichlet-Verteilung erzeugten Proben 1 beträgt. Betrachten wir $ G = \ sum _ {k = 1} ^ {K} \ pi _ {k} \ delta _ {\ theta _ {k}} $. (Beachten Sie $ \ pi \ sim Dirichlet (\ alpha / K, ..., \ alpha / K), \ theta \ sim H $) Dann können Sie sehen, dass $ p (x) = \ int p (x | \ Theta) G (\ Theta) d \ Theta $ im gemischten Modell. (Z wird gelöscht) Dann wird die Form des grafischen Modells des endlichen gemischten Modells wie (b). Zu diesem Zeitpunkt wird der Dirichlet-Prozess mit der Motivation verwendet, aus G zu probieren, wenn die Anzahl von K unendlich wird.

Dirichlet Process

Die ursprüngliche Einführung des Dirichlet-Prozesses ist im theoretischen Teil beschrieben. Der Dirichlet-Prozess zeigt $ DP (\ alpha, H) $ an. Wie ich bereits sagte, ist der Dirichlet-Prozess fast überall diskret und ist $ G = \ sum _ {k} ^ {\ infty} \ pi _ {k} \ delta _ {\ theta _ {k}} $ (unendliche Summe) .. Verwenden Sie den Stick-Breaking-Prozess, um Proben aus dem Dirichlet-Prozess zu entnehmen.

Stick-Breaking Process Probe aus dem Dirichlet-Prozess

\theta_{k} \sim H,v_{k} \sim Beta(1,\alpha ),\pi_{k}=v_{k}\prod_{j=1}^{k-1} (1-v_{j}),G=\sum _{k=1}^{\infty} \pi _{k} \delta _{\theta _{k}}

Probenahme als. Es ist konsistent, so dass die Summe von $ \ pi _ {k} $ 1 ist. Es scheint als Stick-Breaking-Prozess bezeichnet zu werden, weil es sich anfühlt, als würde man Äste allmählich brechen. Ein Beispiel für eine Stichprobe ist unten dargestellt.

SBP.png

Natürlich kann G, das die Summe einer unendlichen Anzahl von Stücken ist, ursprünglich nicht erzeugt werden, also ist es eine Annäherung. Sie können sehen, dass je größer $ \ alpha $, desto mehr Zweige Sie haben können. Ein weiterer wichtiger Punkt bei der tatsächlichen Implementierung sind die folgenden Eigenschaften.

\theta_{i}|\theta_{-i} \sim \frac{1}{i-1+\alpha}\sum_{j=1}^{i-1} \delta (\theta_{j}) + \frac{\alpha }{i-1+\alpha }G_{0}

Chinese Restaurant Process(CRP)

CRP ist die Verteilung der Partition des Clusterindex. Wir werden es vorerst in absteigender Weise einführen. Schreiben Sie beispielsweise die gesamte Menge als $ [n] = [1,2, ... n] $ und schreiben Sie das Element der Partition als $ \ rho $. Als Beispiel für $ \ rho $ kann betrachtet werden, wenn die gesamte Menge [4], [[1], [2,3], [4]] oder [[1,2], [3,4]] ist. Der folgende Weg, um eine Partition zu machen, ist CRP. Stellen Sie sich zunächst vor, dass jede Person nacheinander in ein chinesisches Restaurant geht und an einem Tisch sitzt. Wie man die n + 1. Person sitzt, wenn n Leute sitzen

P (Wahrscheinlichkeit, an einem vorhandenen Tisch zu sitzen c) = $ \ frac {n_ {c}} {a + n} $, P (Wahrscheinlichkeit, an einem neuen Tisch zu sitzen) = $ \ frac {\ alpha} {\ alpha + n} $

In diesem Fall ist die endgültige Verteilung der Teile, wenn dies fortgesetzt wird, das CRP. ($ \ Alpha $ ist eine Konstante, $ n_ {c} $ ist die Anzahl der Personen, die bereits in c sitzen.)

Wenn zum Beispiel bereits 4 Personen anwesend sind und eine oder 3 Personen sitzen, ist dies [[1], [2,3,4]]. Also werde ich darüber nachdenken, wie ich die fünfte Person betreten soll. Wenn dann $ \ alpha = 1 $ ist, beträgt die Wahrscheinlichkeit, am ersten Tisch zu sitzen, $ \ frac {1} {1 + 4} $, und die Wahrscheinlichkeit, am zweiten Tisch zu sitzen, beträgt $ \ frac {3} {1 + 4} $, Die Wahrscheinlichkeit, am dritten (neuen) Tisch zu sitzen, beträgt $ \ frac {1} {1 + 4} $.

Denken Sie daran, dass die Natur eines Tisches, an dem bereits viele Menschen sitzen, überfüllt ist. Beachten Sie auch, dass das Erstellen einer Partition genau dem Clustering (Beschriften) entspricht. Beschriften wir die Personen im obigen Beispiel beispielsweise nach der Tabellennummer. Wenn die fünfte Person an einem neuen Tisch sitzt, wechselt sie von [2,1,1,1] zu [2,1,1,1,3]. Beachten Sie auch die Art der Kunden, die spärlich sitzen, wenn $ \ alpha $ wächst. Ich werde es tatsächlich implementieren. Grundsätzlich können Sie das oben Gesagte so implementieren, wie es ist, aber Sie können nicht sicher sein, ob es übereinstimmt. Zu diesem Zeitpunkt kann dies grob bestätigt werden, indem die Beziehung zwischen der Anzahl der Tabellen und der Anzahl der Kunden betrachtet wird. Die Beziehung ist E[|\rho |] \approx \alpha \log(1+\frac{n}{\alpha}) Es sieht so aus, als hätte ich tatsächlich versucht, ein Diagramm zu zeichnen. CRP.png

Die x-Achse ist die Anzahl der Kunden und die y-Achse ist die Anzahl der Tabellen. Die roten Punkte sind die Punkte, die abgetastet wurden, und die blauen Linien sind ungefähre Werte der erwarteten Werte. Sie können sehen, dass es so aussieht.

Gemischtes Modell neu denken

Lassen Sie uns die folgende Abbildung unter Berücksichtigung der Vergangenheit neu organisieren.

image

(a) ist wie ich bereits sagte. Die Lernrichtlinie ist Gibbs-Stichprobe von $ z $, $ \ theta $.

(b) ist im Grunde wie ich bereits sagte. Da es schwierig ist, den Dirichlet-Prozess direkt zu handhaben, ist es praktisch (c). In diesem Fall wird die Bezeichnung (z) nicht explizit berechnet, sondern $ \ theta $. Dies wird berechnet, indem Gibbs für $ \ theta $ abtastet. Beachten Sie, dass Sie zu diesem Zeitpunkt aus G probieren müssen, jedoch nicht im engeren Sinne. In diesem Fall müssen Sie eine unendliche Anzahl von $ \ theta $ und $ \ pi $ vorbereiten.

Wenn Sie jedoch darüber nachdenken, können Sie sehen, dass wir uns nur auf die Cluster an den Datenpunkten konzentrieren müssen. Dies ist (d). Betrachten wir zu diesem Zweck zunächst die posteriore Verteilung von z im endlichen gemischten Modell (a). Dann durch eine einfache Berechnung (Eliminierung von $ \ pi $ integrieren)

$ P (z_ {i} = c | z_ {-i}, \ alpha, K) = \ frac {n_ {c} + \ alpha / K} {n-1 + \ alpha} $ ($ n_c $ ist c Die Anzahl der in gruppierten z, K ist die Anzahl der Cluster, $ z_ {-i} $ ist z anders als $ z_ {i} $)

Es wird sein. Durch Setzen von $ K \ auf \ infty $ wird das Molekül zu $ n_ {c} $, und durch Setzen von $ z_ {i} $ als Kunde und der Klasse als Tabelle wird es genau zu CRP. Wenn in der Formel geschrieben, wird (d) wie folgt.

z |\alpha \sim CRP([n],\alpha ),\theta _{c}|H \sim H(c\in \rho)

x_{i}|\theta _{c} \sim F(\theta _{c})

(CRP wurde als Verteilung von Teilen bezeichnet. Beachten Sie jedoch, dass das Erstellen eines Teils für [n] mit dem Beschriften von $ z_ {i} $ identisch ist. Von der CRP-Partition: $ \ Interpretieren Sie in dem Sinne, dass rho $ basierend darauf generiert und beschriftet wird: z)

Implementierung

Fahren Sie abschließend mit dem Implementierungsteil fort. Grundsätzlich wird MCMC verwendet. Aus politischen Gründen bin ich der Meinung, dass wir MCMC auf der Grundlage des zuvor erwähnten Grafikmodells treu einsetzen werden. Es wird basierend auf Neals Artikel implementiert (Referenz 5). Es ist leicht zu verstehen, was bisher getan wurde und wie es implementiert werden kann. Ich empfehle Ihnen daher, es zu lesen.

Implementierung durch CRP

Implementieren Sie zunächst basierend auf (d) in der Abbildung. Wir verwenden die Technik, eindimensionale Übergänge zu $ z $ und $ \ theta $ zu machen. Das erste, was mir in den Sinn kommt, ist die Verwendung der folgenden Formel für die Gibbs-Abtastung.

P(z_{i}|z_{-i},x_{i},\theta )\sim P(z_{i}|z_{-i})P(x_{i}|z_{i},\theta )

If c=z_{j} for some j\neq i then P(z_{i}=c|z_{-i})= \frac{n_{-i,c}}{n+1+\alpha}, P(x_{i}|z_{i},\theta ) = f(x_{i}|\theta_{z_{i}})

If c=z_{i} is new then P(z_{i}|z_{-i}) = \frac{\alpha }{n+1+\alpha}, P(x_{i}|z_{i},\theta ) = \int f(x_{i},\theta )dG_{0}(\theta)

Es ist nicht so gut, $ z $ mit der Top-Formel zu probieren, wie es ist. Dies liegt daran, dass die Integralberechnung bei der Berechnung der Übergangswahrscheinlichkeit herauskommt. Da es nicht normalisiert ist, ist es außerdem notwendig, den normalisierten Term zu berechnen. Denken Sie also daran, dass Gibbs Samplning ein Metropolis-Hastings-Alogrithmus mit einer Akzeptanzrate von 1 war. Lassen Sie uns gleichzeitig sehen, wie einfach es ist, $ P (z_ {i} | z_ {-i}) $ zu berechnen. Wenn Sie dann die Übergangswahrscheinlichkeit auf $ P (z_ {i} | z_ {-i}) $ setzen, werden Sie feststellen, dass Metropolis-Hastings den Berechnungsaufwand für den Übergang erleichtert. Es gibt eine Theorie, dass das Integral bei der Berechnung der Akzeptanzrate erhalten bleibt, dies wird jedoch durch eine Stichprobe vermieden. Mit anderen Worten beträgt die Akzeptanzrate $ \ alpha (z_ {i} ^ {*}, z_ {i}) $

min[1,\frac{f(y_{i},\theta_{z_{i}}^{*})}{f(y_{i},\theta_{z_{i}})}]

Es wird sein. Der Algorithmus kann wie folgt organisiert werden.

Sie können sehen, dass es wie K-Mittel aussieht. Es steht geschrieben, dass die Aktualisierung von $ \ theta $ von der posterioren Verteilung stammt, aber dieses Mal haben wir die Gauß-Verteilung für die vorherige verwendet, sodass die posteriore Verteilung auch die Gauß-Verteilung ist. Außerdem wird empfohlen, R dreimal oder öfter zu verwenden. Dies liegt daran, dass sich bei R = 1 nicht viele Personen im neuen Cluster versammeln. Die tatsächliche Implementierung ist wie folgt.

npb4.gif

Es wird empfohlen, dass $ \ alpha $ nicht groß genug ist, um zu viele Cluster zu verhindern. (Ungefähr 1?) Im ersten GIF wurde es richtig in vier Teile geteilt, aber diesmal ist es komplizierter.

Implementierung durch SBP (expliziter G-Sampler)

Als nächstes implementieren Sie basierend auf (b) und (c) in der Abbildung. Die spezifische Motivation besteht darin, aus der posterioren Verteilung von $ \ theta $ unter Verwendung der folgenden Formel zu probieren.

\theta_{i}|\theta_{-i} \sim \frac{1}{n-1+\alpha }\sum_{j=1}^{n-1} \delta (\theta_{j}) + \frac{\alpha }{n-1+\alpha }G_{0}

Natürlich kann G nicht abgetastet werden, es handelt sich also um eine Pseudoabtastung. Beachten Sie, dass der Index von $ \ theta_ {i} $ von Cluster zu Beispiel bedeutet. Auch diesmal wird die Übergangswahrscheinlichkeit auf $ \ theta_ {i} | \ theta_ {-i} $ gesetzt, anstatt nur Gibbs-Sampling wie bei der Implementierung von CBP durchzuführen. Die Akzeptanzrate beträgt $ \ alpha (\ theta_ {i} ^ {*}, \ theta_ {i}) $ is

min[1,\frac{f(y_{i},\theta_{*})}{f(y_{i},\theta_{i})}]

Es wird sein. Wenn Sie es organisieren, können Sie sehen, dass $ \ theta_ {i} (i = 1, ... n) $ in der Reihenfolge mit der oben genannten Akzeptanzrate abgetastet werden sollte. Dann wird es wie folgt sein. npb2.gif

Im obigen GIF ist $ \ alpha = 1 $. Das linke ist $ \ theta $ und das rechte ist durch die resultierenden Cluster farbcodiert. Es ist nicht vollständig in vier Teile unterteilt, aber wenn Sie die Anzahl der Schritte erhöhen, wird es etwas besser aufgelöst.

Theorie

Schreiben Sie theoretische Dinge für "maschinelles Lernen". Wenn Sie die Theorie für "Statistik" -Personen kennenlernen möchten, sollten Sie das Tutorial von Professor Kato (Referenz 9) lesen. (Ich habe es nicht gelesen)

De Finetti's Theorem

Zunächst werde ich über den Satz von De Fineti schreiben, der den Bayes'schen Stil rechtfertigt. Die Beobachtungen waren mit den oben behandelten CRPs austauschbar. Mit anderen Worten, wenn es Wahrscheinlichkeitsvariablen $ X_ {1}, X_ {2}, ..., X_ {n}, ... $ gab, änderte das Ersetzen des Index die gleichzeitige Wahrscheinlichkeit nicht. In mathematischen Begriffen P(X_{1}=x_{1},X_{2} = x_{2},...)=P(X_{1}=x_{\sigma (1)},X_{2}=x_{\sigma_{2}},...) Es wird sein. Übrigens ist der Austauschzustand schwächer als der Zustand von i.i.d. Der Satz von De Finetti erfüllt $ \ theta $, wenn es austauschbare Wahrscheinlichkeitsvariablen $ X_ {1}, X_ {2}, ... $ gibt

P(X_{1},...,X_{n}) = \int P(\theta )\prod_{i=1}^{n}P(X_{i}|\theta )d\theta

Anspruch zu existieren. Dieser Satz rechtfertigt den Bayes'schen Stil. Im obigen unendlichen gemischten Modell war $ P (\ theta) $ ein zufälliges PDF ($ G = \ sum \ pi_ {k} \ delta _ {\ theta _ {k}}) $.

Definition des Dirichlet-Prozesses an erster Stelle

Dirichlet-Prozess hat einen Wahrscheinlichkeitsraum und wenn das (zufällige) Maß G ist, dann $ (G (A_ {1}) ,. Für jede Division $ A_ {1}, ..., A_ {n} $. .., G (A_ {n})) Basierend auf der Dirichlet-Verteilung, wobei $ $ (\ alpha H (A_ {1}), ..., \ alpha H (A_ {n})) $ als Parameter ist Die Definition ist $ G $, wenn Sie sind. Es ist schwierig, damit ein Bild zu bekommen, aber es ist bekannt, dass G fast überall angezeigt werden kann, als ob es mit SBP gemacht worden wäre.

Darstellung des zeitkontinuierlichen stochastischen Prozesses 1

Angesichts der stochastischen Variablen $ X $ ($ X $ ist eine messbare Funktion von $ \ Omega $ bis $ \ mathbb {R} $) entspricht dies im Allgemeinen einem Pullback-Maß von $ \ mathbb {R} $ Nachdem ich es im Borel-Raum definiert habe, denke ich an PDF von Radon-Nikodym. Die Menge solcher stochastischen Variablen ist der stochastische Prozess {$ X_ {t} } ( t \ in T $). Wenn es eine endliche Anzahl der einfachsten i. D. Stochastischen Prozesse gibt, wird ihre Existenz durch Berücksichtigung des direkten Produktmaßes im direkten Produktraum garantiert. Wenn T eine unendliche Menge ist oder nicht, d. H. Wenn Sie die Existenz eines solchen stochastischen Prozesses sagen möchten, verwenden Sie den Erweiterungssatz von Kolmogorov. Kolmogoroves erweiterter Satz ist der Satz, dass, wenn T eine zählbare Menge ist, ein solcher stochastischer Prozess existiert, wenn eine gleichzeitige Verteilung einer endlichen Teilmenge von T konsistent ist. Zum Beispiel ist im Fall der Brownschen Bewegung oder des Poisson-Prozesses $ T = \ mathbb {R} $, aber wenn einmal der Erweiterungssatz für $ \ mathbb {Q} $ verwendet wird, ist $ \ mathbb {Q} $ $ \ mathbb {R. } Wir werden es kontinuierlich in $ unter Verwendung der Eigenschaft der Dichte definieren. Im Fall des Dirichlet-Prozesses ist dieses $ T $ jedoch eine Volellmenge von $ \ mathbb {R} $. Natürlich ist es nicht zählbar, daher scheinen wir einen Satz, der im Borel-Satz zählbar ist, zu nehmen und ihn kontinuierlich zu erweitern. Es ist nicht länger das Bild einer kontinuierlichen Zeit.

Darstellung des zeitkontinuierlichen stochastischen Prozesses 2

Aus der obigen Konfiguration scheint der Dirichlet-Prozess unverständlich zu sein, aber zum Glück ist bekannt, dass er als SBP dargestellt und mit diesem abgetastet werden kann. Ich habe diesen Ausdruck auch in der obigen Implementierung verwendet.

Andere

Ich schreibe etwas, das wichtig zu sein scheint, weil es nicht oben geschrieben ist.

Pitman-Yor Process Da ich CRP mit viel Aufwand durchgeführt habe, werde ich auch auf den Pitman-Yor-Prozess eingehen. PYP ist ein Typ, der CRP ein wenig verändert hat. Die Formel lautet wie folgt in derselben Situation wie CRP.

P(Wahrscheinlichkeit, auf einem vorhandenen Tisch zu sitzen c)=\frac{n_{c}-d}{a+\sum_{c\in \rho} n_{c}},P(Wahrscheinlichkeit, an einem neuen Tisch zu sitzen)= \frac{\alpha +d|\rho|}{\alpha + \sum_{c\in \rho} n_{c}}

Wenn Sie ein Diagramm (log 10-Skala) mit d = 0,9 (grün), d = 0,5 (blau) und d = 0,1 (gelb) zeichnen, sieht es wie folgt aus. pitman-ypr.png

Wenn Sie oben schauen, können Sie sehen, dass die Anzahl der Tabellen mit zunehmendem $ d $ zunimmt. $ d $ reduziert die Anzahl der Personen pro Tabelle, gleichzeitig werden jedoch die Anzahl der Tabellen und die Anzahl der Kunden pro Tabelle angepasst, um der Potenzregel zu folgen. (Wie Sie vielleicht von Leuten wissen, die Netzwerkbücher lesen, gibt es eine empirische Regel, dass die Anzahl der Cluster auf der Welt und die Leute pro Cluster der Potenzregel folgen.) Das Pitman-yor-Verfahren wird auch für die Verarbeitung natürlicher Sprache und Bildverarbeitung verwendet, da es den tatsächlichen Daten entspricht.

Wann können Nicht-Parabayes verwendet werden?

Wie theoretisch erwähnt, macht der Dirichclet-Prozess Beobachtungen austauschbar und homogen (aus derselben Grundverteilung). Zum Beispiel wird diese Homogenität implizit in der unendlich gemischten Modell-Gibbs-Stichprobe verwendet. Leider stammen nicht alle Phänomene der Welt aus einer so homogenen Basisverteilung. Daher verwenden wir den Hierarchil-Dirichlet-Prozess, der aus dem Dirichlet-Prozess abtastet und ihn als Basisverteilung verwendet, um den Dirichclet-Prozess zu generieren.

Was ist die andere Methode als MCMC?

Natürlich scheint es, dass es auch von Henshin Bayes gemacht werden kann. MCMC ist jedoch einfacher (um einen Algorithmus zu erstellen).

Ein Thema, das ich nicht angesprochen habe, das aber wichtig zu sein scheint

Ich habe einige wichtige Dinge erwähnt, die ich diesmal nicht angesprochen habe. Infinite HMM, Indian buffet process,Polya Trees,Hierarchical Dirichlet Processes. Außerdem studiere ich. Wenn ich es also tatsächlich implementiere, kann ich versuchen, erneut einen Artikel zu schreiben.

Verweise

  1. Das von Dr. Ueda von NTT erstellte Tutorial ist sehr einfach zu verstehen. Dieser Artikel wurde ebenfalls erheblich beeinflusst. Sie können mehr über IRM lesen. Natürlich ist es auch im Folgemuster aufgeführt. http://www.kecl.ntt.co.jp/as/members/yamada/dpm_ueda_yamada2007.pdf
  2. Eine Folie von Professor Yoshii von der Universität Kyoto ist sehr leicht zu verstehen. http://sap.ist.i.kyoto-u.ac.jp/members/yoshii/slides/mus91-tutorial-npb.pdf
  3. Oxford Yee Whye Die Homepage Es gibt viele hilfreiche Tutorials. http://www.stats.ox.ac.uk/~teh/npbayes.html
  4. ↑ Lehrervortrag Ich habe es nicht verstanden, als ich es zum ersten Mal hörte, aber im Rückblick ist es wunderbar. Dieser Artikel wurde ebenfalls erheblich beeinflusst. http://videolectures.net/mlss2011_teh_nonparametrics/
  5. Dies ist ein Artikel von Neal von der Toronto University. Ein Muss, um diesen Artikel zu implementieren. http://www.stat.columbia.edu/npbayes/papers/neal_sampling.pdf
  6. Tutorial mit aktueller Implementierung https://datamicroscopes.github.io/
  7. Ich weiß nicht einmal, ob Sie sich das ansehen, aber wenn Sie leicht lernen, werden Sie Ihr Verständnis vertiefen http://mlg.eng.cam.ac.uk/zoubin/talks/uai05tutorial-b.pdf
  8. Homepage des Columbia-Lehrers mit vollständigen Vorlesungsnotizen http://stat.columbia.edu/~porbanz/npb-tutorial.html
  9. Ein Tutorial, das den Dirichlet-Prozess von Professor Kato von der Fakultät für Wirtschaftswissenschaften der Universität Tokio ausführlich beschreibt. schwer. https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxra2F0b3N0YXR8Z3g6MmE0NmFkYmU5MzM4YjllNg
  10. Hier ist der Code für Nicht-Parabayes in Pymc. Http://xiangze.hatenablog.com/entry/2016/04/09/225754
  11. Unnötig zu sagen, BDA http://www.stat.columbia.edu/~gelman/book/

Recommended Posts

Einführung in nichtparametrische Felder
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Einführung in Scrapy (3)
Erste Schritte mit Supervisor
Einführung in PyQt
Einführung in Scrapy (2)
[Linux] Einführung in Linux
Einführung in Scrapy (4)
Einführung in discord.py (2)
Nicht parametrische Buchten mit Pyro
Einführung in Lightning Pytorch
Erste Schritte mit Web Scraping
Einführung in EV3 / MicroPython
Einführung in die Python-Sprache
Einführung in die TensorFlow-Bilderkennung
Einführung in OpenCV (Python) - (2)
Einführung in PyQt4 Teil 1
Einführung in die Abhängigkeitsinjektion
Einführung in Private Chainer
Einführung in das maschinelle Lernen
AOJ Einführung in die Programmierung Thema Nr. 1, Thema Nr. 2, Thema Nr. 3, Thema Nr. 4
Einführung in das elektronische Papiermodul
Einführung in den Wörterbuch-Suchalgorithmus
Einführung in die Monte-Carlo-Methode
[Lernmemorandum] Einführung in vim
Einführung in PyTorch (1) Automatische Differenzierung
opencv-python Einführung in die Bildverarbeitung
Einführung in Python Django (2) Win
Einführung in das Schreiben von Cython [Notizen]
Einführung in Private TensorFlow
Eine Einführung in das maschinelle Lernen
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Eine super Einführung in Linux
AOJ Einführung in die Programmierung Thema Nr. 7, Thema Nr. 8
Einführung in die Anomalieerkennung 1 Grundlagen
Einführung in RDB mit sqlalchemy Ⅰ
[Einführung in Systre] Fibonacci Retracement ♬
Einführung in die nichtlineare Optimierung (I)
Einführung in die serielle Kommunikation [Python]
AOJ Einführung in die Programmierung Thema Nr. 5, Thema Nr. 6
Einführung in Deep Learning ~ Lernregeln ~
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
Einführung in Python (Python-Version APG4b)
Eine Einführung in die Python-Programmierung
[Einführung in cx_Oracle] (8.) Version cx_Oracle 8.0
Einführung in discord.py (3) Verwenden von Stimme
Einführung in die Bayes'sche Optimierung
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Super Einführung in das maschinelle Lernen
Einführung in Ansible Teil In'Inventory '
Serie: Einführung in den Inhalt von cx_Oracle
[Einführung] Verwendung von open3d
Einführung in Python For, While
Einführung in Deep Learning ~ Backpropagation ~
Einführung in Ansible Teil ④'Variable '
Einführung in den Befehl vi (Hinweis)