Mein Problem ist folgendes: Ich habe ein Ensemble von Prädiktoren, die jeweils eine Verteilung über eine Reihe von Klassen erzeugen.
Was ich tun möchte, ist, zuerst einen nicht informativen Vorgänger darüber zu haben, wie diese Etikettenverteilung aussieht, und diesen dann vorab mit der Vorhersage jedes Ensemblemitglieds zu aktualisieren.
Daher habe ich mir überlegt, vorher ein nicht informatives Dirichlet zu verwenden, das ich dann mit jeder Stichprobenverteilung aktualisiere, die als Vorhersage eingeht.
Meine Frage ist: Ist dieser Ansatz gültig, und wenn ja, wie würde ich meinen Prior so aktualisieren, dass er definierter wird, wenn sich mehr Proben ansammeln?
Antworten:
Dirichlet prior ist ein geeigneter Prior und ist das Konjugat vor einer multinomialen Verteilung. Es scheint jedoch etwas schwierig, dies auf die Ausgabe einer multinomialen logistischen Regression anzuwenden, da eine solche Regression einen Softmax als Ausgabe hat, keine multinomiale Verteilung. Was wir jedoch tun können, ist eine Stichprobe aus einem Multinom, dessen Wahrscheinlichkeiten durch den Softmax gegeben sind.
Wenn wir dies als neuronales Netzwerkmodell zeichnen, sieht es so aus:
Daraus können wir leicht in Vorwärtsrichtung probieren. Wie gehe ich mit der Rückwärtsrichtung um? Wir können den Reparametrisierungstrick aus Kingmas Artikel 'Auto-Encoding Variational Bayes', https://arxiv.org/abs/1312.6114 , verwenden. Mit anderen Worten, wir modellieren die multinomiale Zeichnung als deterministische Abbildung, wenn man die Eingangswahrscheinlichkeitsverteilung berücksichtigt. und ein Unentschieden aus einer Standard-Gaußschen Zufallsvariablen:
Dabei gilt Folgendes:ϵ ∼ N.( 0 , 1 )
So wird unser Netzwerk:
So können wir Mini-Stapel von Datenbeispielen weiterleiten, aus der Standardnormalverteilung schöpfen und über das Netzwerk zurückgeben. Dies ist ziemlich Standard und weit verbreitet, z. B. das oben genannte Kingma VAE-Papier.
Eine kleine Nuance ist, dass wir diskrete Werte aus einer Multinomialverteilung ziehen, aber das VAE-Papier behandelt nur den Fall kontinuierlicher realer Ausgaben. Es gibt jedoch ein kürzlich veröffentlichtes Papier, den Gumbel-Trick, https://casmls.github.io/general/2017/02/01/GumbelSoftmax.html , dh https://arxiv.org/pdf/1611.01144v1.pdf , und https://arxiv.org/abs/1611.00712 , mit dem Zeichnungen aus diskreten multinomialen Papieren erstellt werden können.
Die Gumbel-Trickformeln geben die folgende Ausgabeverteilung an:
Die hier sind vorherige Wahrscheinlichkeiten für die verschiedenen Kategorien, die Sie anpassen können, um Ihre anfängliche Verteilung dahingehend zu verschieben, wie Sie denken, dass die Verteilung anfänglich verteilt werden könnte.αk
Wir haben also ein Modell, das:
Bearbeiten:
Die Frage lautet also:
"Ist es möglich, diese Art von Technik anzuwenden, wenn wir mehrere Vorhersagen (und jede Vorhersage kann wie oben ein Softmax sein) für eine einzelne Stichprobe (aus einem Ensemble von Lernenden) haben?" (siehe Kommentare unten)
Also ja :). Es ist. Verwenden Sie beispielsweise Multitasking-Lernen, z . B. http://www.cs.cornell.edu/~caruana/mlj97.pdf und https://en.wikipedia.org/wiki/Multi-task_learning . Außer Multitasking hat das Lernen ein einziges Netzwerk und mehrere Köpfe. Wir werden mehrere Netzwerke und einen einzigen Kopf haben.
Der "Kopf" besteht aus einer Extraktschicht, die das "Mischen" zwischen den Netzen übernimmt. Beachten Sie, dass Sie eine Nichtlinearität zwischen Ihren "Lernenden" und der "Misch" -Ebene benötigen, z. B. ReLU oder Tanh.
Sie weisen darauf hin, dass jedes "Lernen" seinen eigenen multinomialen Draw oder zumindest Softmax erhält. Insgesamt denke ich, dass es üblicher sein wird, zuerst die Mischschicht zu haben, gefolgt von einem einzelnen Softmax und einem multinomialen Draw. Dies ergibt die geringste Varianz, da weniger Ziehungen vorgenommen werden. (Sie können beispielsweise das Papier "Variational Dropout" ( https://arxiv.org/abs/1506.02557) lesen , in dem mehrere zufällige Ziehungen explizit zusammengeführt werden, um die Varianz zu verringern. Diese Technik wird als "lokale Neuparametrisierung" bezeichnet.)
Ein solches Netzwerk sieht ungefähr so aus:
Dies hat dann folgende Eigenschaften:
Beachten Sie nebenbei, dass dies nicht die einzige Möglichkeit ist, die Lernenden zu kombinieren. Wir könnten sie auch eher wie eine Autobahn kombinieren, ähnlich wie Boosten, so etwas wie:
In diesem letzten Netzwerk lernt jeder Lernende, alle bisher vom Netzwerk verursachten Probleme zu beheben, anstatt eine eigene, relativ unabhängige Vorhersage zu erstellen. Ein solcher Ansatz kann recht gut funktionieren, dh Boosting usw.
quelle