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

31

Ich habe versucht, maschinelles Lernen mit dem Coursera-Material zu erlernen . In dieser Vorlesung verwendet Andrew Ng den Algorithmus der Gradientenabnahme, um die Koeffizienten des linearen Regressionsmodells zu ermitteln, mit denen die Fehlerfunktion (Kostenfunktion) minimiert wird.

Benötigen wir für die lineare Regression einen Gradientenabstieg? Es scheint, dass ich die Fehlerfunktion analytisch unterscheiden und auf Null setzen kann, um nach den Koeffizienten zu suchen. ist das richtig?

Sieger
quelle
3
Lineare Modelle wurden seit dem 18. Jahrhundert ordentlich gehandhabt. Es gibt unzählige Möglichkeiten, mit ihnen umzugehen, für die kein Gefälle erforderlich ist. Es gibt nichtlineare Modelle, bei denen die meisten dieser Methoden flach ins Gesicht fallen. Andrew lässt Sie eine ungewohnte, aber sehr nützliche Methode gegen ein sehr einfaches Problem anwenden, damit Sie Ihren Ansatz debuggen können. Wenn Sie mit der Methode vertraut sind, können Sie sie auf die erstaunlich nichtlinearen Probleme anwenden, bei denen GD die einzige Methode ist, mit der Sie Ergebnisse erzielen.
EngrStudent
10
Nein, Sie müssen keine Ansätze wie Gradientenabstieg verwenden (das ist auf jeden Fall nicht die einzige Optimierungsmethode). Sie können es tatsächlich analytisch lösen, wie Sie vorschlagen; Sie differenzieren in Bezug auf jeden Parameter, sodass Sie eine Gleichung pro Parameter erhalten. Es ist jedoch nützlich, einfache Probleme zu lösen, die auf andere Weise gelöst werden können. Wenn Sie die Antwort bereits kennen, können Sie sicher sein, dass Sie die richtige Antwort mit Gefälle erhalten.
Glen_b -Reinstate Monica
Wenn die Kostenfunktion die übliche quadratische ("Entfernungs-") Strafe ist, gibt es eine geschlossene Formlösung. Gradientenabstieg ist jedoch in der Regel viel schneller, weshalb er normalerweise verwendet wird.
Aginensky
Darüber hinaus kann der Gradientenabstieg verwendet werden, um numerische Lösungen für Probleme zu finden, die analytisch nicht zu lösen sind. Ich würde vermuten, dass er sich frühzeitig mit dem Gefälle daran gewöhnt. Ich glaube, er verwendet dann Gradientenabstieg mit neuronalen Netzen. Unnötig zu erwähnen, dass die neuronale Netzsituation komplizierter ist. Ich denke, ausgehend von einer pädagogischen Situation, in der sie zuvor mit linearen Modellen gesehen wurden, erscheint ein Gradientenabstieg für die Verwendung mit neuronalen Netzen vernünftiger.
Aginensky
3
Danke, dass du den Link zu den Andre Ng-Videos gepostet hast, die ich mir angesehen habe. Ich wusste es bereits, wenn auch nicht so extrem, aber es ist beängstigend zu sehen, was die große Mehrheit der Leute, die Optimierungen lernen, lernt, ganz zu schweigen davon, was zumindest einige von ihnen über statistisches Rechnen lernen. Gene Golub, der Pionier bei der Berechnung und SVD verwendet wird , wäre in seinem Grab rollen über , wenn er weiß , was jetzt lustigsten‘in seiner Stanford-Institut für Informatik Der“ Video ist gelehrt wird youtube.com/watch?v=B3vseKmgi8E , die empfiehlt und vergleicht die 2 schlechtesten Algorithmen für die kleinsten Quadrate.
Mark L. Stone

Antworten:

43

Lineare Kleinste Quadrate können durch gelöst werden

0) Verwenden eines hochwertigen Lösers für lineare kleinste Quadrate, basierend entweder auf SVD oder QR, wie unten beschrieben, für nicht beschränkte lineare kleinste Quadrate oder basierend auf einer Version der quadratischen Programmierung oder der konischen Optimierung für gebundene oder linear beschränkte kleinste Quadrate, wie unten beschrieben. Ein solcher Solver ist vorinstalliert, intensiv getestet und einsatzbereit - verwenden Sie ihn.

1) SVD ist die zuverlässigste und numerisch genaueste Methode, erfordert jedoch mehr Rechenaufwand als Alternativen. In MATLAB ist die SVD-Lösung des ungezwungenen linearen Problems der kleinsten Quadrate A * X = b Pinv (A) * b, was sehr genau und zuverlässig ist.

2) QR, das ziemlich zuverlässig und numerisch genau ist, aber nicht so viel wie SVD und schneller als SVD. In MATLAB ist die QR-Lösung des ungezwungenen linearen Problems der kleinsten Quadrate A * X = b A \ b, was ziemlich genau und zuverlässig ist, außer wenn A schlecht konditioniert ist, dh eine große Bedingungszahl hat. A \ b ist schneller zu berechnen als pinv (A) * b, aber nicht so zuverlässig oder genau.

3) Bilden der Normalgleichungen (vom Standpunkt der Zuverlässigkeit und der numerischen Genauigkeit her SCHRECKLICH, weil sie die Bedingungsnummer quadrieren, was sehr schlecht ist) und

3a) Lösen durch Cholesky-Faktorisierung (nicht gut)

3b) explizit invertierende Matrix (HORRIBLE)

4) Lösen als quadratisches Programmierproblem oder Kegelproblem zweiter Ordnung

4a) Lösen Sie mit einer hochwertigen quadratischen Programmiersoftware. Dies ist zuverlässig und numerisch korrekt, dauert jedoch länger als SVD oder QR. Es ist jedoch einfach, der Zielfunktion gebundene oder allgemeine lineare Bedingungen oder lineare oder quadratische (zwei Norm-) Straf- oder Regularisierungsterme hinzuzufügen und das Problem dennoch mit der Quadratic Programming-Software zu lösen.

4b) Lösen Sie das Problem als Kegel zweiter Ordnung mit einer hochwertigen Conic Optimization-Software. Die Anmerkungen sind die gleichen wie bei der Quadratic Programming-Software, Sie können jedoch auch gebundene oder allgemeine lineare Einschränkungen und andere konische Einschränkungen oder objektive Funktionsausdrücke wie Straf- oder Regularisierungsausdrücke in verschiedenen Normen hinzufügen.

5) Lösen Sie mit einer hochwertigen nichtlinearen Optimierungssoftware für allgemeine Zwecke. Dies funktioniert zwar immer noch gut, ist jedoch im Allgemeinen langsamer als die Software Quadratic Programming oder Conic Optimization und möglicherweise nicht ganz so zuverlässig. Es kann jedoch möglich sein, nicht nur gebundene und allgemeine lineare Nebenbedingungen, sondern auch nichtlineare Nebenbedingungen in die Optimierung der kleinsten Quadrate einzubeziehen. Kann auch für nichtlineare kleinste Quadrate verwendet werden und wenn andere nichtlineare Terme zur Zielfunktion hinzugefügt werden.

6) Lösen Sie mit miesen nichtlinearen Allzweck-Optimierungsalgorithmen -> TUN SIE DAS NICHT.

7) Lösen Sie mit DEM SCHLECHTESTEN MÖGLICHEN nichtlinearen Allzweck-Optimierungsalgorithmus, dh Gradientenabfall. Verwenden Sie diese Option nur, wenn Sie sehen möchten, wie schlecht und unzuverlässig eine Lösungsmethode sein kann

7 i) Lerne etwas über statistisches Rechnen von jemandem, der etwas darüber weiß

7 ii) Lernen Sie die Optimierung von jemandem, der etwas darüber weiß.

Mark L. Stone
quelle
Netter Beitrag, warum denkst du, dass Cholesky nicht gut ist, wenn man bedenkt, dass dein System PD ist? (und nicht mit einer lächerlichen Bedingungsnummer) Übrigens, ich denke, Sie möchten den Begriff der verallgemeinerten Umkehrung (die meistens offensichtlich zu Bildungszwecken verwendet wird) entweder an der "SVD" - oder der "explizit umkehrenden" Stelle sagen (oder hinzufügen).
usεr11852 sagt Reinstate Monic
2
Übrigens ist es lächerlich, wie oft Matrizen mit sehr hohen Zustandszahlen erzeugt werden, insbesondere von ungewaschenen Massen (dh der Mehrheit der Leute, die gerade die kleinsten Quadrate machen, insbesondere angesichts der Demokratisierung beim Zugang), die nicht darauf abgestimmt sind.
Mark L. Stone
1
Mldivide, dh. Backslash, dh \ verwendet QR, wenn m ~ = n (kleinste Quadrate), wie ich im 2. Satz meines Absatzes (2) oben angegeben habe. Sie wären überrascht, wie viel Mist in MATLAB steckt - nicht nur in den Toolboxen, von denen einige absolut schrecklich sind, sondern in geringerem Maße auch in einigen Kernfunktionen.
Mark L. Stone
1
@ MarkL.Stone, tolle Antwort! Könnten Sie uns bitte etwas näher erläutern, warum es nicht ratsam ist, den Gradientenabstieg zum Lösen der kleinsten Quadrate zu verwenden? (Meines Erachtens handelt es sich nur um einen iterativen Ansatz im Vergleich zu den anderen (Richtungslösungsansätzen), die Sie oben erwähnt haben). Könnten Sie das Problem auch kommentieren: "Wenn ich für ein Problem n> = 30.000 Merkmale habe, ist die Methode der Normalen Gleichung sehr langsam, da das Invertieren der n * n-Matrix schrecklich wäre! Andererseits würde GD in diesem Fall funktionieren Fall ziemlich! irgendwelche Gedanken darüber, wie SVD & QR durchführen wird ". Jeder Vorschlag wäre hilfreich.
Anu
1
@ anu Verwenden Sie als letzten Ausweg nur den Gefälle-Abstieg. und das wäre nur, wenn das problem zu groß ist, um von SVD oder QR gelöst zu werden. Bilden Sie niemals die normalen Gleichungen, geschweige denn invertieren Sie explizit eine Matrix, um normale Gleichungen zu lösen, NIE. 30.000 Features klingen heutzutage nicht mehr nach vielen.
Mark L. Stone
0

Das Finden von Koeffizienten eines linearen Modells ist technisch der Prozess , Lösungen für einen Satz linearer Gleichungen zu finden .

Für die Berechnung solcher Lösungen wurden viele optimization techniquesentwickelt und Gradient Descentsind eine davon.
Daher ist Gradient Descent nicht die einzige Möglichkeit , dies zu tun.

Andrew Ng verwendet es im Kurs, weil es einfach zu verstehen ist, ohne sich mit fortgeschrittener linearer Algebra und numerischem Rechnen zu befassen.

Vikas Raturi
quelle
Ich bin zwar nicht falsch, aber ich denke, dass Ihre Antwort das Gesamtbild verfehlt, wenn Sie sich auf einen Sonderfall konzentrieren. Die überwiegende Mehrheit der linearen Regressionsmodelle wird mithilfe einer QR-Zerlegung unter Verwendung einer Lösung in geschlossener Form angepasst. GD-gradient decent- wird als Beispiel verwendet, um fortgeschrittenere Methoden einzuführen (z. B. SGD- stochastisch GD).
usεr11852 sagt Reinstate Monic
Können Sie erläutern, was eine QR-Zerlegung ist?
Victor
3
EINx=bEIN=Q.RRQ.EINx=bQ.Rx=bRx=Q.TbRQ.TQ.=ichSGD. Da die meisten Menschen keine sehr großen Matrizen haben, ist die QR-Zerlegung besser. Im Allgemeinen hat die QR-Zerlegung die numerische Welt geprägt; SIAM wählte es zu einem der Top10-Algorithmen des 20. Jahrhunderts.
usεr11852 sagt Reinstate Monic
@ usεr11852 ja natürlich. Das liegt daran, dass ich die Antwort einfach halten wollte, um Konzepte wie die QR-Dekompostion zu vermeiden, die für den Bereich des Kursniveaus von Ng relevant bleiben.
Vikas Raturi
3
QR war einer der Top 10 Algorithmen des 20. Jahrhunderts. Die Zeit schreitet jedoch voran, und obwohl effektive Algorithmen für die Berechnung von SVD bereits in den 1960er-Jahren eingesetzt wurden, müssen Sie die Bedeutung der Anwendungsbereiche berücksichtigen. Daher glaube ich, dass SVD der TOP-Algorithmus des 21. Jahrhunderts ist. Ehrlich gesagt, haben Sie jemals davon gehört, dass QR verwendet wird, um Filme zu empfehlen? Nein, SVD wird für diese kritische Anwendung verwendet. SVD ist eindeutig der Algorithmus der Wahl, wenn Twitter konservativen alten Leuten unaufgefordert Empfehlungen sendet, welchen Prominenten im Teenageralter sie folgen sollten. Mal sehen, wie QR das macht !!!
Mark L. Stone