Warum Gradientenabstieg für lineare Regression verwenden, wenn eine geschlossene mathematische Lösung verfügbar ist?

73

Ich nehme an den Online-Kursen für maschinelles Lernen teil und habe etwas über Gradient Descent gelernt, um die optimalen Werte in der Hypothese zu berechnen.

h(x) = B0 + B1X

Warum müssen wir Gradient Descent verwenden, wenn wir die Werte mit der folgenden Formel leicht finden können? Das sieht einfach und unkompliziert aus. GD benötigt jedoch mehrere Iterationen, um den Wert zu erhalten.

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

HINWEIS: Siehe https://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial

Ich habe die folgenden Fragen geprüft und es war für mich nicht klar zu verstehen.

Warum ist ein Gefälle erforderlich?

Warum wird die Optimierung nicht mit einer analytischen Lösung, sondern mit einem Gefälle gelöst?

Die obigen Antworten vergleichen GD mit Derivaten.

Purus
quelle
5
Sie brauchen keinen Gradientenabstieg, um lineare Regressionskoeffizienten zu schätzen.
Sycorax
8
@Sycorax "nicht brauchen" ist eine starke Aussage. Die iterative Methode kann für große Datenmengen nützlich sein. Angenommen, die Datenmatrix ist sehr groß und passt nicht in den Speicher.
Haitao Du
8
@ hxd1011 Vielen Dank, dass Sie diese praktische Dimension des Problems geklärt haben. Ich habe rein mathematisch gedacht.
Sycorax

Antworten:

89

Der Hauptgrund, warum der Gradientenabstieg für die lineare Regression verwendet wird, ist die Komplexität der Berechnung: In einigen Fällen ist es rechenaufwendiger (schneller), die Lösung mithilfe des Gradientenabstiegs zu finden.

Die Formel, die Sie geschrieben haben, sieht auch rechnerisch sehr einfach aus, da sie nur für den univariaten Fall funktioniert, dh wenn Sie nur eine Variable haben. Im multivariaten Fall, wenn Sie viele Variablen haben, sind die Formeln auf dem Papier etwas komplizierter und erfordern viel mehr Berechnungen, wenn Sie sie in Software implementieren: Hier, Sie müssen die Matrix berechnen dann invertieren (siehe Hinweis unten). Es ist eine teure Rechnung. Zu Ihrer Information hat die (Entwurfs-) Matrix X K + 1 Spalten, wobei K die Anzahl der Prädiktoren und N Reihen von Beobachtungen ist. In einem Algorithmus für maschinelles Lernen können Sie K> 1000 und N> 1.000.000 erhalten. Die der Matrix selbst dauert eine Weile, dann muss sie invertiert werdenX ' X X ' X K × K

β=(XX)1XY
XXXXK×K Matrix - das ist teuer.

Der Gradientenabstieg spart also viel Rechenzeit. Darüber hinaus ermöglicht die Vorgehensweise eine einfache Parallelisierung, dh die Verteilung der Berechnungen auf mehrere Prozessoren oder Maschinen. Die lineare Algebra-Lösung kann auch parallelisiert werden, ist jedoch komplizierter und dennoch teuer.

Darüber hinaus gibt es Versionen mit Gefälle, bei denen Sie nur einen Teil Ihrer Daten im Speicher behalten, wodurch sich die Anforderungen an den Computerspeicher verringern. Insgesamt ist es für besonders große Probleme effizienter als eine Lösung mit linearer Algebra.

Dies wird mit zunehmender Dimensionalität noch wichtiger, wenn Sie Tausende von Variablen wie beim maschinellen Lernen haben.

Bemerkung . Ich war überrascht, wie viel Aufmerksamkeit dem Gefälle in Ngs Vorlesungen geschenkt wird. Er verbringt nicht unerhebliche Zeit damit, darüber zu sprechen, vielleicht 20% des gesamten Kurses. Für mich ist es nur ein Implementierungsdetail, wie genau Sie das Optimum finden. Der Schlüssel liegt in der Formulierung des Optimierungsproblems, und wie genau Sie es finden, ist nicht wesentlich. Ich würde mir nicht allzu viele Sorgen machen. Überlassen Sie es den Informatikern und konzentrieren Sie sich auf das, was Ihnen als Statistiker wichtig ist.

Vor diesem Hintergrund muss ich zugeben, dass es in der Tat wichtig ist, die Komplexität der Berechnungen und die numerische Stabilität der Lösungsalgorithmen zu verstehen . Ich glaube immer noch nicht, dass Sie die Details der Implementierung und den Code der Algorithmen kennen müssen. Es ist normalerweise nicht die beste Nutzung Ihrer Zeit als Statistiker.

Anmerkung 1 . Ich habe geschrieben, dass man die Matrix aus didaktischen Gründen umkehren muss und nicht, wie gewöhnlich man die Gleichung löst. In der Praxis werden die Probleme der linearen Algebra durch eine Art Faktorisierung wie QR gelöst, bei der Sie die Matrix nicht direkt invertieren, sondern andere mathematisch äquivalente Manipulationen ausführen, um eine Antwort zu erhalten. Sie tun dies, weil die Matrixinversion in vielen Fällen eine teure und numerisch instabile Operation ist.

Dies bringt als Nebeneffekt einen weiteren kleinen Vorteil des Algorithmus für den Gradientenabstieg mit sich: Er funktioniert auch dann, wenn die Entwurfsmatrix Kollinearitätsprobleme aufweist. Der übliche lineare Algebra-Pfad würde explodieren und der Gradientenabstieg wird auch für kollineare Prädiktoren fortgesetzt.

Aksakal
quelle
17
Aber Ng ist ein Informatiker.
Amöbe
21
Zu Ihrer Bemerkung: Als Mathematiker stimmte ich zu. Ich verstehe jetzt jedoch, dass im modernen maschinellen Lernen die Methode der Optimierung inhärent mit dem zu optimierenden Ziel verknüpft ist. Einige Formen der Regularisierung, wie z. B. Dropout, werden sauberer im Algorithmus als im Ziel ausgedrückt. Kurz gesagt: Wenn Sie ein tiefes Netz nehmen, die Zielfunktion beibehalten, aber die Optimierungsmethode ändern, erhalten Sie möglicherweise eine sehr unterschiedliche Leistung. Tatsächlich liefert manchmal ein besserer Optimierer in der Praxis schlechtere Ergebnisse ...
A. Rex
14
Kleiner Trottel: Du würdest sicher nicht invertieren ; Stattdessen lösen Sie das lineare Gleichungssystem für . Abstrakt ist es das gleiche, aber numerisch gesehen ist es weitaus stabiler und möglicherweise sogar billiger. X ' X β = X ' y βXXXXβ=Xyβ
Stephan Kolassa
3
@AnderBiguri-Lösung mit QR-Faktorisierung ist dagegen rückwärtsstabil und liefert daher eine Lösung, die angesichts der Unsicherheit in den Eingabedaten so genau wie möglich ist.
Federico Poloni
7
Ich denke, wir sollten alle aufhören, schreiben und einfach die ganze Zeit schreiben . X t X β = X t yβ=(XtX)1XtyXtXβ=Xty
Matthew Drury
21

Erstens würde ich dringend empfehlen, dass Sie die folgenden zwei Beiträge lesen (wenn nicht doppelt)

Bitte überprüfen Sie die Antwort von JM

Welcher Algorithmus wird bei der linearen Regression verwendet?

Bitte überprüfen Sie Marks Antwort (aus der Sicht der numerischen Stabilität) in

Benötigen wir einen Gradientenabstieg, um die Koeffizienten eines linearen Regressionsmodells zu finden?


Kurz gesagt, nehmen wir an, wir wollen das lineare Regressionsproblem mit dem Quadratverlust lösen. Wir können die Ableitung auf und sie wird gelöst das lineare System

minimize Axb2
2AT(Axb)0
ATAx=ATb

Auf hoher Ebene gibt es zwei Möglichkeiten, ein lineares System zu lösen. Direkte Methode und die iterative Methode. Beachten Sie, dass die direkte Methode löst und die Gradientenabnahme (ein Beispiel für eine iterative Methode) direkt löst .ATAx=ATbminimize Axb2

Vergleich mit direkten Methoden (Sagen Sie QR / LU- Zerlegung). Iterative Methoden haben einige Vorteile, wenn wir eine große Datenmenge haben oder die Daten sehr dünn sind.

Auf der anderen Seite glaube ich, dass einer der Gründe, warum Andrew Ng dies betont, darin besteht, dass es sich um eine generische Methode handelt (die am häufigsten beim maschinellen Lernen verwendet wird) und in anderen Modellen wie der logistischen Regression oder dem neuronalen Netzwerk verwendet werden kann.

Haitao Du
quelle
Du liegst absolut richtig. SGD ist sehr hilfreich beim Umgang mit einer großen Datenmenge. Die Methode, die Prof Ng demonstriert, ist die klassischste und reinste. Man sollte von diesem Punkt ausgehen, um eine klare Vorstellung zu haben. Wenn man das Motto verstehen kann, ist die ganze lineare Schätzung für ihn / sie kristallklar.
Sandipan Karmakar
1
Die Größe der Datenmaxtrix ist eigentlich kein Problem, wenn man die Beziehung ; Sie können und eine Beobachtung berechnen . So war es damals in SAS, als der Computerspeicher weitaus knapper war als heute. Es ist die Anzahl der Spalten in , die den begrenzenden Faktor darstellt. XTX=xixiTXTXXTyX
Bogenschütze
6

Sycorax hat Recht, dass Sie für die Schätzung der linearen Regression keinen Gradientenabstieg benötigen. In Ihrem Kurs lernen Sie möglicherweise anhand eines einfachen Beispiels, wie Sie mit einem Gefälle kompliziertere Versionen vorbereiten können.

Eine nette Sache, die ich hinzufügen möchte, ist, dass es derzeit eine kleine Forschungslücke gibt, in der der Gradientenabstieg vorzeitig beendet wird , um eine Überanpassung eines Modells zu verhindern.

Tim Atreides
quelle
2
Können Sie den Link für eine Überanpassung angeben? ist das Hinzufügen des Regularisierungsbegriffs besser als das Begrenzen der Anzahl der Iterationen?
Haitao Du
Sie können sich Kapitel 7 von Deep Learning von Goodfellow et al. Ansehen, in dem ein frühzeitiges Anhalten erwähnt wird, um eine Überanpassung in neuronalen Netzen zu verhindern.
Batman
2
Die Regularisierung durch frühzeitiges Anhalten ist keineswegs eine neue Technik. Es ist eine bekannte Technik, zum Beispiel in der Landweber-Iteration: en.wikipedia.org/wiki/Landweber_iteration
vgl.
3

Wenn ich mich nicht irre, dann deuten Sie auf das MOOC von Prof. Andrew Ng hin. Um die optimalen Regressionskoeffizienten zu finden, stehen grob zwei Methoden zur Verfügung. Zum einen durch Verwendung von Normalgleichungen, dh durch einfaches Herausfinden von und zum anderen durch Minimieren der kleinsten Quadratkriterium, das sich aus der von Ihnen zitierten Hypothese ableitet. Übrigens ist die erste Methode, dh die Normalgleichungen, ein Produkt der zweiten Methode, dh der Optimierungsmethode.(XTX)1XTy

Die Methode, die Sie erwähnt haben, dh die Korrelation verwendet, gilt nur für einen Prädiktor und eine Intercept-Größe. Beachten Sie einfach das Formular. Wenn also die Anzahl der Prädiktoren größer als eins ist, wie ist der Ausweg? Dann muss man auf die anderen Methoden zurückgreifen, dh die normale Gleichung oder Optimierung.

Nun warum Optimierung (hier Gradient Descent) obwohl direkte Normalgleichung zur Verfügung steht. Beachten Sie, dass man in einer normalen Gleichung eine Matrix invertieren muss. Jetzt kostet das Invertieren einer Matrix für die Berechnung, wobei die Anzahl der Zeilen in der -Matrix ist, dh die Beobachtungen. Wenn das schlecht konditioniert ist, führt es außerdem zu Rechenfehlern bei der Schätzung. Es ist also der Gradient-Descent-Optimierungsalgorithmus, der uns vor dieser Art von Problemen bewahren kann. Ein weiteres Problem ist die Über- und Unteranpassung bei der Schätzung von Regressionskoeffizienten.O(N3)NXX

Mein Vorschlag an Sie ist, nicht nur ein Problem zu lösen. Versuche die Theorie zu verstehen. Prof. Ng ist einer der besten Professoren der Welt, der freundlicherweise maschinelles Lernen im MOOC lehrt. Wenn er also auf diese Weise unterrichtet, muss es einige latente Absichten haben. Ich hoffe, meine Worte machen Ihnen nichts aus.

Alles Gute.

Sandipan Karmakar
quelle
5
"Invertieren einer Matrix" wird dringend NICHT empfohlen. QR ist numerisch stabiler, um ein lineares System zu lösen.
Haitao Du
1
Ich stimme dem rechnerischen Argument zu. Über- oder Unteranpassung hat jedoch nichts mit der Verwendung von GD im Vergleich zur Normalgleichung zu tun, sondern vielmehr mit der Komplexität des (Regressions-) Modells. Beide Methoden (GD, wenn es richtig funktioniert) finden die gleiche Lösung der kleinsten Quadrate (falls vorhanden) und passen die Daten daher um die gleiche Menge über- oder unter an.
Ruben van Bergen
2

Erstens, ja, der wahre Grund ist der von Tim Atreides angegebene. Dies ist eine pädagogische Übung.

Es ist jedoch möglich, wenn auch unwahrscheinlich, dass eine lineare Regression beispielsweise für mehrere Billionen Datenpunkte durchgeführt werden soll, die von einem Netzwerk-Socket eingespeist werden. In diesem Fall wäre die naive Bewertung der analytischen Lösung nicht durchführbar, während einige Varianten der stochastischen / adaptiven Gradientenabnahme mit minimalem Speicheraufwand zur richtigen Lösung konvergieren würden.

(Für eine lineare Regression könnte man die analytische Lösung als ein Wiederholungssystem umformulieren, aber dies ist keine allgemeine Technik.)

Timothy Teräväinen
quelle
2

Ein weiterer Grund ist, dass der Gradientenabstieg eine allgemeinere Methode ist. Bei vielen maschinellen Lernproblemen ist die Kostenfunktion nicht konvex (z. B. Matrixfaktorisierung, neuronale Netze), sodass Sie keine geschlossene Lösung verwenden können. In diesen Fällen wird der Gradientenabstieg verwendet, um einige gute lokale optimale Punkte zu finden. Oder wenn Sie eine Online-Version implementieren möchten, müssen Sie erneut einen Algorithmus verwenden, der auf dem Gradientenabstieg basiert.

Sanyo Mn
quelle