Ich gehe die Videos in Andrew Ngs kostenlosem Online-Kurs für maschinelles Lernen in Stanford durch. Er beschreibt Gradient Descent als einen Algorithmus zum Lösen linearer Regression und zum Ausführen von Schreibfunktionen in Octave. Vermutlich könnte ich diese Funktionen in R umschreiben, aber meine Frage ist, gibt mir die Funktion lm () nicht bereits die Ausgabe einer linearen Regression? Warum sollte ich meine eigene Gradientenabstiegsfunktion schreiben wollen? Gibt es einen Vorteil oder ist es nur eine Lernübung? Führt lm () einen Gefälleabstieg durch?
r
regression
machine-learning
gradient-descent
Benutzer
quelle
quelle
Antworten:
Gradientenabstieg ist eigentlich eine ziemlich schlechte Möglichkeit, ein lineares Regressionsproblem zu lösen. Die
lm()
Funktion in R verwendet intern eine Form der QR-Zerlegung , die wesentlich effizienter ist. Gradientenabstieg ist jedoch eine allgemein nützliche Technik, die in diesem einfachen Kontext eingeführt werden sollte, damit klarer wird, wie sie bei komplexeren Problemen angewendet werden kann. Wenn Sie Ihre eigene Version als Lernübung implementieren möchten, lohnt es sich, dies zu tun, ist jedoch dielm()
bessere Wahl, wenn Sie nur ein Tool für die lineare Regression benötigen.quelle
Der Grund, warum Online-Farbverläufe nützlich sind, liegt in Anwendungen mit großem Maßstab. Auf jeden Fall gibt es jetzt Bibliotheken, die es implementieren, so dass Sie es nicht programmieren müssen. Es ist eine gute Möglichkeit zu lernen, wie Dinge funktionieren.
In Leon Bottou Worten:
Lernen in großem Maßstab
SGD-Projekt
quelle