Beim Koordinatenabstieg wird jeweils ein Parameter aktualisiert , während beim Gradientenabstieg versucht wird, alle Parameter gleichzeitig zu aktualisieren.
Es ist schwer genau anzugeben , wann ein Algorithmus besser abschneidet als der andere. Ich war zum Beispiel sehr schockiert, als ich erfuhr, dass der Koordinatenabstieg für LASSO auf dem neuesten Stand der Technik war. Und ich war nicht der einzige; siehe Folie 17 .
Trotzdem gibt es einige Funktionen, die ein Problem anpassbarer machen können, um den Abstieg zu koordinieren:
(1) Schnelle bedingte Updates. Wenn das Problem aus irgendeinem Grund die Möglichkeit bietet, Parameter sehr schnell individuell zu optimieren, kann der Koordinatenabstieg dies nutzen. Beispielsweise kann es möglich sein, bestimmte Parameter nur unter Verwendung einer Teilmenge der Daten zu aktualisieren, wodurch die Rechenaufwendungen für diese Aktualisierungen erheblich reduziert werden. Ein anderer Fall ist, wenn für einen einzelnen Parameter eine geschlossene Lösung vorliegt, die von den Werten aller anderen Parameter abhängig ist.
(2) Relativ unabhängige Modi für Parameter. Wenn der optimale Wert eines Parameters völlig unabhängig von den anderen Parameterwerten ist, führt eine Runde des Koordinatenabstiegs zur Lösung (unter der Annahme, dass jede Koordinatenaktualisierung den aktuellen Modus findet). Wenn andererseits der Modus für einen bestimmten Parameter sehr stark von anderen Parameterwerten abhängt, ist es sehr wahrscheinlich, dass der Koordinatenabstieg mit sehr kleinen Aktualisierungen bei jeder Runde einsetzt.
Leider gilt für die meisten Probleme (2) nicht, so dass es selten vorkommt, dass der Koordinatenabstieg im Vergleich zu alternativen Algorithmen gut funktioniert. Ich glaube, der Grund für die gute Leistung von LASSO ist, dass es viele Tricks gibt, mit denen man Bedingung (1) umsetzen kann.
α