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?
Antworten:
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ß.
quelle
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 techniques
entwickelt undGradient Descent
sind 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.
quelle
GD
-gradient decent- wird als Beispiel verwendet, um fortgeschrittenere Methoden einzuführen (z. B.SGD
- stochastischGD
).SGD
. 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.