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.
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.
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.
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.
Dies ist ein Diagramm aus dem Tutorial von Professor Ueda (Referenz 1). Das Verständnis dieser Zahl ist eines der Ziele.
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
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.
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
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.
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.
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
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.
Lassen Sie uns die folgende Abbildung unter Berücksichtigung der Vergangenheit neu organisieren.
(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.
(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)
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.
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.
If
If
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}) $
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.
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.
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.
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
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.
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.
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
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}}) $.
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.
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}
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.
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)=
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.
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.
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.
Natürlich scheint es, dass es auch von Henshin Bayes gemacht werden kann. MCMC ist jedoch einfacher (um einen Algorithmus zu erstellen).
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.
Recommended Posts