Ich versuche, die Gradientenabstiegsoptimierung in ML-Algorithmen (Machine Learning) zu verstehen. Ich verstehe , dass es eine Kostenfunktion-wo das Ziel ist , den Fehler zu minimieren . In einem Szenario, in dem die Gewichte optimiert werden, um den minimalen Fehler zu ergeben, und partielle Ableitungen verwendet werden, ändert sich in jedem Schritt sowohl als auch oder handelt es sich um eine Kombination (z. B. wird in wenigen Iterationen nur geändert und Wenn den Fehler nicht mehr reduziert, beginnt die Ableitung mit )? Die Anwendung kann ein lineares Regressionsmodell, ein logistisches Regressionsmodell oder Boosting-Algorithmen sein.
w1
, Verringernw2
basierend auf der Richtung von der partiellen Ableitung versuchen , um lokale Minima zu erreichen, und nur um zu bestätigen, dass der Algorithmus nicht unbedingt immer die globalen Minima angibt?w1
undw2
oder ob dies durch Lernrate / Schrumpfung erfolgt, während die partielle Ableitung nur die Abstiegsrichtung angibt?In jeder Iteration ändert der Algorithmus alle Gewichte gleichzeitig basierend auf dem Gradientenvektor. Tatsächlich ist der Gradient ein Vektor. Die Länge des Verlaufs entspricht der Anzahl der Gewichte im Modell.
Auf der anderen Seite gab es jeweils eine Änderung eines Parameters, und dies wird als koordinierter anständiger Algorithmus bezeichnet , bei dem es sich um eine Art gradientenfreien Optimierungsalgorithmus handelt . In der Praxis funktioniert es möglicherweise nicht so gut wie ein gradientenbasierter Algorithmus.
Hier ist eine interessante Antwort zum gradientenfreien Algorithmus
Ist es möglich, ein neuronales Netzwerk ohne Backpropagation zu trainieren?
quelle
Ziel des Gradientenabfalls ist es, die Kostenfunktion zu minimieren. Diese Minimierung wird durch Anpassen der Gewichte für Ihren Fall w1 und w2 erreicht. Im Allgemeinen könnte es n solche Gewichte geben.
Der Gradientenabstieg erfolgt auf folgende Weise:
Beim Aktualisieren von Gewichten wird das Gewicht (W1 oder W2) vollständig durch den Gradienten bestimmt. Alle Gewichte werden aktualisiert (einige Gewichte ändern sich möglicherweise nicht aufgrund des Verlaufs).
quelle
sklearn
) - oder R-Paketen angewendet wird, wie zcaret
. Kann es nur in einer manuell erstellten Gradientenabstiegsfunktion benutzerdefiniert werden?Gradient anständig wird auf beide
w1
undw2
für jede Iteration angewendet . Während jeder Iteration werden die Parameter entsprechend den Verläufen aktualisiert. Sie hätten wahrscheinlich unterschiedliche partielle Ableitungen.Überprüfen Sie hier .
quelle