Die erste Frage ist: Warum SGD (was ich hier vermute). Es gibt speziellere Lernverfahren für die lineare Regression, die diese Art der Hyperparameter-Abstimmung teilweise nicht benötigen. Vielleicht sind Sie in einem sehr großen Umfeld, wo SGD ein gültiger Ansatz ist.
SGD-basiertes Lernen Unter der Annahme, ist der Weg zu gehen:
- Sie sollten eine Art Lern-Zeitplan verwenden
- mindestens hinzufügen, um eine Lernrate Verfall, der die Lernrate reduziert zum Beispiel nach jeder Epoche um einen Faktor von etwa 0,9 (ja, noch ein Hyperparameter)
- Versuchen Sie, eine Art von Impuls zu verwenden, z Nesterov-Dynamik, die für konvex-Optimierung entwickelt wurde (der Fall ist konvex) und hält starke Garantien
- Diese Art von Dynamik ist auch beliebt in der nicht-konvexen Einstellung
- meisten DeepLearning libs sollte diese bieten out-of -die-Box
- Sie können wie adaptive Lernrate basierte Algorithmen versuchen:
- Adam, AdaDelta, AdaGrad, ...
- Diese versuchen, die Last von der Auswahl dieser LR-Hyper zu entfernen, während noch so schnell wie möglich
- Natürlich zur Konvergenz versuchen, sind sie Heuristiken (streng gesprochen), aber sie scheinen für die meisten Menschen gut zu funktionieren (obwohl ein optimiert SGD ist die meiste Zeit das beste)
- meisten DeepLearning libs bieten sollten diese out-of-the-box
- Verwendung spezieller Software für lineare Modelle wie liblinear oder andere
Und noch eine Sache, denn ich bin überrascht, dass es so einfach ist, Abweichungen von diesem einfachen Problem zu beobachten: normalisieren Sie Ihre Eingabe!