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.
Antworten:
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
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.
quelle
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 Systemminimize ∥Ax−b∥2 2AT(Ax−b) 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=ATb minimize ∥Ax−b∥2
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.
Angenommen, unsere Datenmatrix ist riesig und es ist nicht möglich, in den Speicher zu passen. Es kann ein stochastischer Gradientenabstieg verwendet werden. Ich habe eine Antwort, um zu erklären, warum der stochastische Gradientenabstieg im Vergleich zum normalen Gradientenabstieg Zeit sparen kann.A
Informationen zu spärlichen Daten finden Sie im Buch Iterative Methoden für spärliche lineare Systeme
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.
quelle
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.
quelle
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) N X X
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.
quelle
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.)
quelle
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.
quelle