Warum die maximale Log-Wahrscheinlichkeit anstelle der Wahrscheinlichkeit optimieren?


66

In den meisten maschinellen Lernaufgaben, in denen Sie eine Wahrscheinlichkeit formulieren können, die maximiert werden sollte, würden wir tatsächlich die log-Wahrscheinlichkeit anstelle der Wahrscheinlichkeit für einige Parameter optimieren . ZB beim Maximum-Likelihood-Training ist es normalerweise die Log-Likelihood. Wenn Sie dies mit einer Gradientenmethode tun, beinhaltet dies einen Faktor:plogpθ

logpθ=1ppθ

Sehen Sie hier oder hier für einige Beispiele.

Natürlich ist die Optimierung äquivalent, aber der Gradient wird unterschiedlich sein, so dass sich jede gradientenbasierte Methode anders verhält (insbesondere stochastische Gradientenmethoden). Gibt es eine Rechtfertigung dafür, dass der Gradient besser funktioniert als der Gradient?logpp


3
Sie müssen beachten, dass wir normalerweise die Wahrscheinlichkeit des Einsatzes von Derivaten maximieren. Andererseits wird in vielen Fällen die Unabhängigkeitsbedingung angewendet, was bedeutet, dass die Wahrscheinlichkeit das Produkt einiger Funktionen der Wahrscheinlichkeitsdichte ist. Darüber hinaus führt ein Produkt mit vielen kleinen Werten (im [0,1] Intervall) zu einem sehr kleinen Wert. Dies führt zu einer Rechenschwierigkeit.
TPArrow

@ Alejandro Rodriguez Check meine Antwort hier für mehr Details.
Paul

Antworten:


65

Gradientenmethoden optimieren Allgemeinen besser als da der Gradient von im Allgemeinen besser skaliert ist . Das heißt, es hat eine Größe, die die Geometrie der Zielfunktion konsistent und hilfreich widerspiegelt, sodass es einfacher ist, eine geeignete Schrittgröße auszuwählen und in weniger Schritten das Optimum zu erreichen.logp(x)p(x)logp(x)

Um zu sehen, was ich meine, vergleichen Sie den Gradientenoptimierungsprozess für und . An jedem Punkt , der Gradient von istWenn wir das mit multiplizieren , erhalten wir die genaue Schrittgröße, die erforderlich ist, um das globale Optimum am Ursprung zu erreichen, unabhängig davon, wasp(x)=exp(x2)f(x)=logp(x)=x2xf(x)

f(x)=2x.
1/2xist. Dies bedeutet, dass wir nicht zu hart arbeiten müssen, um eine gute Schrittgröße (oder "Lernrate" im ML-Jargon) zu erhalten. Egal wo unser Ausgangspunkt ist, wir setzen unseren Schritt auf die Hälfte des Gefälles und sind in einem Schritt am Ursprung. Und wenn wir den genauen Faktor nicht kennen, können wir einfach eine Schrittgröße um 1 auswählen, ein bisschen nach Zeilen suchen und sehr schnell eine gute Schrittgröße finden, die überall gut funktioniert ist. Diese Eigenschaft ist robust gegenüber der Translation und Skalierung von . Während die Skalierung von führt, dass die optimale Stufenskalierung von 1/2 abweicht, ist die Stufenskalierung unabhängig von mindestens gleich , sodass wir nur einen Parameter finden müssen, um eine effiziente gradientenbasierte Optimierung zu erhalten planen.xf(x)f(x)x

Im Gegensatz dazu hat der Gradient von sehr schlechte globale Eigenschaften zur Optimierung. Wir habenDies multipliziert den perfekt schönen, gut erzogenen Gradienten mit einem Faktor der mit zunehmendem exponentiell abfällt (schneller als) . Bei haben wir bereits , so dass ein Schritt entlang des Gradientenvektors etwa mal zu klein ist. Um eine vernünftige Schrittgröße für das Optimum zu erhalten, müssten wir den Gradienten um den Kehrwert skalieren, eine enorme Konstantep(x)

p(x)=f(x)p(x)=2xexp(x2).
2xexp(x2)xx=5exp(x2)=1.4101110111011. Solch ein schlecht skalierter Gradient ist für Optimierungszwecke schlimmer als nutzlos - es ist besser, nur einen Einheitsschritt in Aufwärtsrichtung zu versuchen, als unseren Schritt durch Skalieren gegen ! (In vielen Variablen wird ein bisschen nützlicher, da wir zumindest Richtungsinformationen aus dem Gradienten erhalten, aber das Skalierungsproblem bleibt bestehen.)p(x)p(x)

Im Allgemeinen gibt es keine Garantie dafür, dass so gute Gradientenskalierungseigenschaften aufweist wie dieses Spielzeugbeispiel, insbesondere wenn wir mehr als eine Variable haben. wird jedoch für so ziemlich jedes nicht triviale Problem viel , viel besser sein als . Dies liegt daran, dass die Wahrscheinlichkeit ein großes Produkt mit einer Reihe von Begriffen ist und das Protokoll dieses Produkt in eine Summe umwandelt, wie in mehreren anderen Antworten angegeben. Vorgesehen sind , die Bedingungen der Wahrscheinlichkeit artig von einer Optimierung Sicht ist ihre Log im Allgemeinen gut erzogene, und die Summe von gut erzogene Funktionen ist brav. Mit brav meine ichlogp(x)logp(x)p(x)f(x)ändert sich weder zu schnell noch zu stark, was zu einer nahezu quadratischen Funktion führt, die sich leicht mit Gradientenmethoden optimieren lässt. Die Summe eines Derivats ist die Ableitung der Summe, unabhängig von der Reihenfolge des Derivats, was dazu beiträgt, dass dieser große Haufen von Summenbegriffen eine sehr vernünftige zweite Ableitung hat!


4
+1 In dieser Antwort werden Punkte angesprochen und hervorgehoben, die den Kern der Sache ausmachen.
whuber

47

Unterlauf

Der Computer verwendet eine begrenzte Fließkommadarstellung von Brüchen, wobei das Multiplizieren so vieler Wahrscheinlichkeiten garantiert sehr nahe bei Null liegt.

Mit haben wir dieses Problem nicht.log


3
+1 für numerische Stabilität - dies und die Antwort von Yuril sollten eins sein!
Alec Teal

1
Sie können das Produkt im Protokollbereich berechnen, so dass es zu einer Summe wird, und es dann zurück übertragen. Oder Sie berechnen was gleich . Numerische Stabilität ist also nicht die Frage. logpθppθ
Albert

1
Denken Sie daran, dass das von Ihnen erwähnte die Multiplikation der Wahrscheinlichkeiten aller Ereignisse in der Stichprobe ist und das Element ist, das einem Unterlauf unterliegt. pp
Uri Goren

5
@Filip Die Terminologie in diesem Thread ist etwas ungeeignet. Wir diskutieren Wahrscheinlichkeitsdichten , nicht Wahrscheinlichkeiten. Die Dichte ist willkürlich: Sie hängt von den Maßeinheiten ab. Darüber hinaus wird bei ausreichenden Stichprobengrößen die Wahrscheinlichkeitsdichte einer einfachen Stichprobe aus einem parametrischen Modell unter . Bei großen Problemen (mit Millionen von Daten) betragen die Wahrscheinlichkeitsdichten routinemäßig oder weniger. Selbst eine Stichprobe der Größe aus der Standardnormalverteilung hat mit ziemlicher Sicherheit eine Wahrscheinlichkeitsdichte von weniger als . 212721000000802127
Whuber

4
@FilipHaglund: whuber ist richtig, aber die Tatsache, dass es Dichten ist, ist hier nicht die entscheidende Beobachtung. Wir könnten genauso gut einen diskreten Prozess diskutieren und über tatsächliche Wahrscheinlichkeiten sprechen (und tatsächlich hat das OP nichts gesagt, was diesen Fall ausschließt). Wir sprechen jedoch über Wahrscheinlichkeiten für sehr spezifische Ergebnisse (z. B. eine Million Beobachtungen, die in eine bestimmte Richtung gehen). Ein einzelnes spezifisches Ergebnis ist unwahrscheinlich, aber bei Bayes'schen Inferenzen sind Wahrscheinlichkeitsverhältnisse wichtig, daher müssen wir wissen, wie viel größer eine winzige Wahrscheinlichkeit von einer anderen ist.
Meni Rosenfeld

34
  1. Der Logarithmus der Wahrscheinlichkeit mehrerer gemeinsamer Wahrscheinlichkeiten vereinfacht sich zu der Summe der Logarithmen der einzelnen Wahrscheinlichkeiten (und die Summenregel ist einfacher als die Produktregel zur Differenzierung).

    log(iP(xi))=ilog(P(xi))

  2. Der Logarithmus eines Mitglieds der Familie der exponentiellen Wahrscheinlichkeitsverteilungen (einschließlich der allgegenwärtigen Normalen) ist in den Parametern polynomisch (dh die Maximalwahrscheinlichkeit wird bei Normalverteilungen auf die kleinsten Quadrate reduziert ).

    log(exp(12x2))=12x2

  3. Die letztere Form ist sowohl numerisch stabiler als auch symbolisch leichter zu unterscheiden als die erstere.

  4. Last but not least ist der Logarithmus eine monotone Transformation, bei der die Orte der Extrema erhalten bleiben (insbesondere sind die geschätzten Parameter der maximalen Wahrscheinlichkeit für die ursprüngliche und die logarithmisch transformierte Formulierung identisch).


5
Grund 2 kann nicht genug betont werden. Um die log-Wahrscheinlichkeit für ein lineares Modell mit Gaußschem Rauschen zu maximieren, müssen Sie nur ein Problem der kleinsten Quadrate lösen, das der Lösung eines linearen Gleichungssystems gleichkommt.
Paul

Grund 1 und 3 beschreiben nur, wie man es berechnet. Sie können es auf diese Weise berechnen und dann zurückkonvertieren (mit multiplizieren ), um . Es ist eigentlich üblich, im Log-Raum für die numerische Stabilität zu berechnen. Das erklärt jedoch nicht, warum Sie diesen Verlauf verwenden. Grund 4 ist auch kein Grund, warum der Gradient besser ist. Sie können dies auch mit vielen anderen Transformationen tun. Grund 2 ist interessant, aber ich weiß immer noch nicht genau, warum der Gradient eines Polynoms besser ist als der Gradient einer anderen Funktion. ppθlogp
Albert

@ Albert die Ableitung eines Polynoms ist ein Polynom von einem Grad niedriger (insbesondere quadratisch geht zu linear), während Exponentiale nicht einfach unter Differenzierung
TemplateRex

@ TemplateRex: Ja, das ist klar. Aber ich frage nach den Konvergenzeigenschaften in einer stochastischen Gradientenmethode.
Albert

25

Es ist viel einfacher, eine Ableitung der Summe der Logarithmen zu nehmen, als eine Ableitung des Produkts, das beispielsweise 100 Multiplikatoren enthält.


10
Außerdem reduzieren Sie potenzielle numerische Probleme, wenn Begriffe sehr klein oder groß werden.
Björn

8
Im Gegenteil, das OP bietet implizit eine hervorragende Möglichkeit, die Ableitung eines Produkts nichtnegativer Funktionen zu berechnen: Multiplizieren Sie die Summe der Ableitungen der Protokolle mit dem Produkt selbst. (Diese Multiplikation wird am besten in Form von Logarithmen durchgeführt, wodurch auch die in @ Björns Kommentar erwähnten numerischen Probleme beseitigt werden.) Somit bietet "Leichtigkeit" keine wirkliche Erklärungskraft und befasst sich auch nicht mit der aussagekräftigeren Frage nach dem Vergleich der Gradienten .
Whuber

10

In der Regel besteht das grundlegendste und einfachste Optimierungsproblem darin, eine quadratische Funktion zu optimieren. Sie können das Optimum einer solchen Funktion leicht finden, egal wo Sie anfangen. Wie sich dies manifestiert, hängt von der jeweiligen Methode ab. Je näher Ihre Funktion an einem Quadrat liegt, desto besser.

Wie von TemplateRex festgestellt, ergeben sich bei einer Vielzahl von Problemen die Wahrscheinlichkeiten, mit denen die Wahrscheinlichkeitsfunktion berechnet wird, aus der Normalverteilung oder werden durch diese angenähert. Wenn Sie also am Protokoll arbeiten, erhalten Sie eine schöne quadratische Funktion. Wenn Sie dagegen an den Wahrscheinlichkeiten arbeiten, haben Sie eine Funktion, die

  1. Ist nicht konvex (der Fluch der Optimierungsalgorithmen überall)
  2. Überquert mehrere Skalen schnell und hat daher einen sehr engen Bereich, in dem die Funktionswerte angeben, wohin Ihre Suche geleitet werden soll.

Welche Funktion würden Sie lieber optimieren, dies oder das ?

(Das war eigentlich ganz einfach; in der Praxis kann Ihre Suche so weit vom Optimum entfernt beginnen, dass die Funktionswerte und Verläufe, auch wenn Sie sie numerisch berechnen könnten, für die Zwecke der Optimierung nicht von 0 zu unterscheiden und nutzlos sind Algorithmus. Aber die Umwandlung in eine quadratische Funktion macht dies zu einem Kinderspiel.)

Beachten Sie, dass dies mit den bereits erwähnten numerischen Stabilitätsproblemen völlig im Einklang steht. Der Grund, warum die Protokollskala erforderlich ist, um mit dieser Funktion zu arbeiten, ist genau derselbe Grund, warum sich die Protokollwahrscheinlichkeit (für Optimierungszwecke und andere Zwecke) viel besser verhält als das Original.

Sie könnten dies auch auf eine andere Weise angehen. Auch wenn es keinen Vorteil für das Protokoll gab (was es gibt) - wir werden die Protokollskala trotzdem für Ableitungen und Berechnungen verwenden. Aus welchem ​​Grund sollte die exp-Transformation nur zur Berechnung des Gradienten angewendet werden? Wir können genauso gut mit dem Protokoll konsistent bleiben.


@TemplateRex: Das Protokoll einer (abwärts) konvexen positiven Funktion ist konvex, aber das Gegenteil ist nicht wahr. Die Wahrscheinlichkeiten sind nicht konvex, daher müssen sie nicht beibehalten werden, aber das Protokoll ist konvex. Schauen Sie sich die von mir verknüpften Grafiken an - exp (-10x ^ 2) ist offensichtlich nicht konvex, aber -10x ^ 2 ist.
Meni Rosenfeld

4

Mit erhöhen wir den Dynamikumfang des Optimierungsalgorithmus. Die in -Anwendungen sind normalerweise ein Produkt von Funktionen. Zum Beispiel ist es bei der Maximum-Likelihood-Schätzung das Produkt der Form , wobei Die Dichtefunktion ist, die sein kann größer oder kleiner als 1, übrigenslnppL(x|θ)=Πi=1nf(xi|θ)f(.)

Wenn also sehr groß ist, dh eine große Stichprobe, ist Ihre Wahrscheinlichkeitsfunktion Normalerweise weit von 1 entfernt: Sie ist entweder sehr klein oder sehr groß, weil es sich um eine Potenzfunktion .nL(.)Lf(.)n

Indem wir ein Protokoll erstellen, verbessern wir einfach den Dynamikbereich jedes Optimierungsalgorithmus, sodass dieser auf die gleiche Weise mit extrem großen oder kleinen Werten arbeiten kann.


0

Einige nette Antworten wurden bereits gegeben. Aber ich bin kürzlich auf einen neuen gestoßen:

Häufig erhalten Sie einen riesigen Trainingsdatensatz , und Sie definieren ein Wahrscheinlichkeitsmodell , und Sie möchten die Wahrscheinlichkeit für maximieren . Es wird angenommen, dass sie unabhängig sind, dh Sie haben Nun, man oft eine Art von stochastischen tun (Mini-Batch) Gradienten-based Training, das heißt in jedem Schritt für Ihren Verlust , optimieren Sie für , dh Xp(x|θ)xX

p(X|θ)=xXp(x|θ).
LL(X|θ)XX
θ:=θxXL(x|θ)θ.
Nun werden diese stochastischen Schritte additiv akkumuliert. Aus diesem Grund möchten Sie die Eigenschaft, dass im Allgemeinen Dies ist der Fall für
L(X|θ)=xXL(x|θ).
L(x|θ)=logp(x|θ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.