Warum ist ein Gefälle erforderlich?


9

Wenn wir die Kostenfunktion differenzieren und Parameter finden können, indem wir Gleichungen lösen, die durch partielle Differenzierung in Bezug auf jeden Parameter erhalten wurden, und herausfinden, wo die Kostenfunktion minimal ist. Ich denke auch, dass es möglich ist, mehrere Orte zu finden, an denen die Ableitungen Null sind, wodurch wir nach all diesen Orten suchen und globale Minima finden können

Warum wird stattdessen ein Gradientenabstieg durchgeführt?


2
Wie setzt man die Ableitungen für eine Funktion generisch auf 0? Mit Algorithmen wie Gradientenabstieg.
Cliff AB

3
Sie können sich den Gradientenabstieg als die Methode vorstellen, mit der die Gleichungen gelöst werden, auf die Sie sich beziehen. Wenn Sie der Überzeugung sind, dass Sie solche Gleichungen mit geschickter algebraischer Manipulation generisch lösen können, lade ich Sie ein, dies für die logistische Regression zu versuchen.
Matthew Drury



Sie können nicht alles analytisch lösen. Selbst wenn Sie eine unzählige Anzahl von Nullen hätten, würden Sie lange brauchen, um alle kritischen Punkte zu überprüfen.
Pinocchio

Antworten:


7

Selbst bei linearen Modellen, bei denen Sie eine analytische Lösung haben, ist es möglicherweise am besten, einen solchen iterativen Löser zu verwenden.

Wenn wir beispielsweise die lineare Regression betrachten, erfordert die explizite Lösung das Invertieren einer Matrix mit der Komplexität . Dies wird im Zusammenhang mit Big Data unerschwinglich.Ö(N.3)

Außerdem sind viele Probleme beim maschinellen Lernen konvex, sodass die Verwendung von Verläufen sicherstellt, dass wir bis zum Äußersten gelangen.

Wie bereits erwähnt, gibt es immer noch relevante nichtkonvexe Probleme wie neuronale Netze, bei denen Gradientenmethoden (Backpropagation) einen effizienten Löser darstellen. Auch dies ist besonders relevant für den Fall des tiefen Lernens.


2
Das Invertieren einer Matrix ist hier ein bisschen wie ein Strohmann, da die QR-Zerlegung mit teilweisem Schwenken genauer und schneller ist, aber ja, QR ist immer noch . Ich bin damit einverstanden, dass bei ausreichend großen Systemen (z. B.> 10.000 Variablen) dies zu einem Problem werden kann. Der moderne High-Tech-Ansatz besteht dann darin, die Lösung mit iterativen Krylov-Subraummethoden (z. B. konjugierter Gradient, GMRES) zu approximieren. Ö(n3)
Matthew Gunn

1
Ein Punkt, den manche Leute vielleicht verwirren, ist, wie das Lösen eines linearen Systems ein Optimierungsproblem ist. Die Antwort ist natürlich, dass das Lösen eines linearen Systems so umformuliert werden kann, dass ein quadratisches Ziel minimiert wird. Einige iterative Methoden zum Lösen linearer Systeme sind aus der Perspektive leichter zu verstehen, dass sie ein quadratisches Ziel iterativ minimieren. (ZB basiert die Schrittrichtung der konjugierten Gradientenmethode der Krylov-Subraummethode auf dem Gradienten ... sie hängt lose mit dem Gradientenabstieg zusammen.)
Matthew Gunn

12

Ein Gefälle ist nicht erforderlich. Es stellt sich heraus, dass der Gradientenabstieg oft ein schrecklich ineffizienter Optimierungsalgorithmus ist! Bei iterativen Methoden ist es oft möglich, eine bessere Bewegungsrichtung zu finden als dort, wo der Gradient am steilsten ist.

Das ist allerdings eine kleine Antwort. Ihre Frage sollte wirklich lauten: "Warum brauchen wir iterative Methoden?" Z.B. Warum nicht gleich zur Lösung gehen, wenn das Problem konvex ist, Slaters Bedingung gilt und die Bedingungen erster Ordnung notwendig und ausreichend für ein Optimum sind? Das heißt, wenn die Lösung als Lösung für ein Gleichungssystem beschrieben werden kann, warum nicht einfach das System lösen? Die Antwort lautet:

  • Für ein quadratisches Optimierungsproblem ist die Bedingung erster Ordnung ein System linearer Gleichungen, und wir können fast direkt zur Lösung gehen, da lineare Systeme effizient gelöst werden können! Wir tun verwenden , um die Bedingungen erster Ordnung und lösen Sie das System (z. B. mit QR - Zerlegung, caveat unten).
  • Allgemeiner jedoch definieren die Bedingungen erster Ordnung ein nichtlineares Gleichungssystem, und ein nichtlineares System kann ziemlich schwierig zu lösen sein! Tatsächlich lösen Sie ein System nichtlinearer Gleichungen häufig numerisch, indem Sie es als Optimierungsproblem umformulieren ...
  • Bei extrem großen linearen Systemen ist es nicht möglich, das System direkt mit QR-Zerlegung und teilweisem Schwenken zu lösen. Was machen Leute?! Iterative Methoden! (zB iterative Krylov-Subraummethoden ...)

7

In Kalkül 101 haben wir gelernt, wie man eine Funktion mit der "analytischen Methode" optimiert: Wir müssen nur die Ableitung der Kostenfunktion erhalten und die Ableitung auf 0 setzen und dann die Gleichung lösen. Dies ist wirklich ein Spielzeugproblem und wird in der realen Welt so gut wie nie auftreten.

x7+x3- -52+ex+lÖG(x+x2)+1/.x=0x=1,4786, aber keine analytische Lösung kennen). Wir müssen einige numerische Methoden anwenden (überprüfen Sie, warum hier in Polynomfällen der Abel-Ruffin-Satz ).

f(x)=x2x=0x=1.1234×10- -20

f(x1,x2)=x12+x22+|x1+x2|(1,1)4.0(x1,x2)x1 x2xy(1,1)(3,3)α=0,001(- -0,003,- -0,003)1,1(0,997,0,997)


Weitere Informationen finden Sie in diesem verwandten Beitrag
Haitao Du

4

Der von Ihnen erwähnte Ansatz kann nur zum Lösen eines Satzes linearer Gleichungen verwendet werden, beispielsweise im Fall einer linearen Regression. Zum Lösen eines Satzes nichtlinearer Gleichungen, beispielsweise in Fällen wie neuronalen Netzen mit Sigmoidaktivierungen, ist der Gradientenabstieg der Ansatz zu gehen. Gradient Descent ist daher ein allgemeinerer Ansatz.

Selbst für lineare Gleichungen ist die Größe der Matrizen, die durch den Satz linearer Gleichungen gegeben sind, sehr groß und es kann schwierig sein, den Speicherbedarf einzuschränken.

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.