Gradient der multivariaten Gaußschen Log-Wahrscheinlichkeit

8

Ich versuche, die MAP-Schätzung für ein Modell durch Gradientenabstieg zu finden. Mein Prior ist ein multivariater Gaußscher mit einer bekannten Kovarianzmatrix.

Auf konzeptioneller Ebene glaube ich zu wissen, wie man das macht, aber ich hatte auf Hilfe bei den Details gehofft. Insbesondere wenn es einen einfacheren Weg gibt, sich dem Problem zu nähern, wäre dies besonders nützlich.

Ich denke, ich muss Folgendes tun:

  • Finden Sie für jede Dimension die bedingte Verteilung unter Berücksichtigung meiner aktuellen Position in den anderen Dimensionen.
  • Dies gibt mir einen lokalen univariaten Gaußschen Wert in jeder Dimension mit dem richtigen Mittelwert und der richtigen Standardabweichung.
  • Ich denke, dass der Gradient nur ein Vektor von Ableitungen für jede dieser univariaten Verteilungen sein sollte.

Meine Frage besteht aus zwei Teilen:

  1. Ist dies der beste Ansatz oder gibt es einen einfacheren Weg?
  2. Angenommen, ich muss diesen Weg gehen, was ist der beste Weg, um diese bedingten Verteilungen zu finden?
David J. Harris
quelle
Gibt es einen Grund, warum Sie dies mit Gefälle tun möchten? Das Finden des MAP eines MVN mit einigen früheren Klängen scheint ein ziemlich gut untersuchtes Problem zu sein. Da das MVN selbstkonjugiert ist, sollte sogar ein vollständig Bayes'scher Ansatz möglich sein.
Bayerj
@ Bayerj Gute Frage. Der Prior ist MVN, die Wahrscheinlichkeit jedoch nicht. Ich denke, das schränkt meine Möglichkeiten ein.
David J. Harris
Ah ok, das habe ich nicht verstanden.
Bayerj

Antworten:

8

Was ist mit Optimierung?

Mal sehen, ob ich dich richtig verstehe. Sie haben ein Modell , das von einer Beobachtung abhängig ist, und einen Satz von Parametern und ein vorheriges was zu einer gemeinsamen Wahrscheinlichkeit von . Die Parameter werden gemäß einer bekannten multivariaten Normalen verteilt, dh . Sie möchten die MAP-Lösung für dieses Problem finden, dh Ein Sonderfall dieses Problems ist in der Gemeinschaft der neuronalen Netze, der als Gewichtsabfall bekannt ist, gut untersucht. In diesem Fall und .x θ p ( θ ) L = p ( y | x , θ ) p ( θ ) θ ~ N ( μ , Σ ) argmax θ L . μ = 0 Σ = I σ 2p(y|x,θ)xθp(θ)L=p(y|x,θ)p(θ)θN(μ,Σ)

argmaxθL.
μ=0Σ=Iσ2

Wie Sie bereits bemerkt haben, besteht der Trick darin, dass . Wenn Sie das Protokoll der Gaußschen Dichte nehmen, verschwinden viele hässliche Terme (das Exponential) und Sie erhalten etw wie . Wenn Sie das unterscheiden, sind die Matrixidentitäten von Sam Roweis nützlich und lassen Sie zu log p ( & thgr ; ) = 1argmaxθL=argmaxθlogLlogp(θ)=12(θμ)TΣ1(θμ)+const

12(θμ)TΣ1(θμ)θ=Σ1(θμ).

(Bitte überprüfen Sie, dass dies schnell und in meinem Kopf erledigt wurde.) Zusammen mit den Derivaten Ihres Modells können Sie Standardoptimierer verwenden, um zu einer MAP-Lösung zu gelangen.

Update : Eingebauter Kommentar von David J. Harris. Formeln sollten jetzt korrekt sein.

bayerj
quelle
(+1) Das sieht genau so aus, wie ich es brauche. Ich werde heute Nachmittag ein bisschen nachprüfen und dann das Häkchen "Akzeptieren" setzen, wenn alles klappt. Vielen Dank!
David J. Harris
Ich habe vergessen hinzuzufügen: Wenn Ihr Modell einfach ist (dh linear in den Parametern), könnte es sogar funktionieren , die Ableitung der Log-Wahrscheinlichkeit mit Null gleichzusetzen und nach lösen . θ
Bayerj
Ich habe ein bisschen numerisch damit herumgespielt, und ich denke, es ist um den Faktor 2 verschoben, aber ansonsten richtig. Vielleicht bricht es mit der aus der Formel für die multivariate Normaldichte ab? Danke noch einmal! 1/2
David J. Harris
Das sollte es sein, ja. Ich habe es vergessen!
Bayerj
1
Es sollte beachtet werden, dass ein benutzerdefinierter multivariater Gaußscher Prior (mit nicht diagonaler Kovarianzmatrix) die Tikhonov-Regularisierung
Artem Sobolev
0

Wenn die Wahrscheinlichkeit nicht Gaußsch ist, kann nicht gesagt werden, ob analytische Ergebnisse vorliegen. Auch die zweite Kugel ist dann im Allgemeinen falsch. Da die Gaußsche vorherige und allgemeine Wahrscheinlichkeit keine bedingten Gaußschen Verteilungen auf den Vektorkomponenten ergibt.

Eine Möglichkeit, den MAP zu erhalten, besteht darin, eine vollständige Bayes'sche Analyse durchzuführen, z. B. mit MCMC, und die Proben aus dem Seitenzahnbereich zu verwenden, um sie abzuschätzen. [In welchem ​​Fall hätten Sie bessere Informationen als nur die Verwendung des MAP.] Aus Interesse - warum nicht trotzdem diesen Weg gehen?

Ein anderer Ansatz könnte sein, dies zu tun (ich habe dies im Allgemeinen nicht gesehen, also korrigiert mich bitte jemand, wenn es verrückt ist):

p(θ|x)=p(x|θ)p(θ)p(x)

l(θ|x)=l(x|θ)+l(θ)l(x)

dl(θ|x)dθ=dl(x|θ)dθ+dl(θ)dθ=0

Dann lösen Sie nach (wahrscheinlich numerisch).θ

Vermutungen
quelle
danke für deinen Beitrag. Ich war vielleicht nicht klar: Im Moment bin ich nur daran interessiert, den Gradienten für den Prior zu finden. Der Gradient des Log-Posterior ist nur der Gradient der Log-Wahrscheinlichkeit plus des Gradienten des Log-Prior. Daher sollte es in Ordnung sein, diese beiden Gradienten getrennt zu finden.
David J. Harris
1
Ähm, Ihr Vorschlag, numerisch zu lösen, ist ... der grundlegende Ansatz. Wie soll man sonst die Zielfunktion optimieren, ohne eine Wurzel eines Gradienten zu finden? θ
Artem Sobolev