Optimierung des Gefälles

9

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.y^- -yw1,w2w1w2w1w1w2

Pb89
quelle

Antworten:

10

Beim Gradientenabstieg werden alle Parameter bei jedem Schritt aktualisiert. Sie können dies in der Aktualisierungsregel sehen:

w(t+1)=w(t)- -ηf(w(t)).

Da der Gradient der Verlustfunktion vektorwertig ist und die Dimension mit der von übereinstimmt , werden alle Parameter bei jeder Iteration aktualisiert.f(w)w

Die Lernrate ist eine positive Zahl, die den Gradienten neu skaliert. Wenn Sie einen zu großen Schritt machen, können Sie endlos über die Verlustfläche springen, ohne dass sich Ihre Verlustfunktion verbessert. Ein zu kleiner Schritt kann einen mühsam langsamen Fortschritt in Richtung des Optimums bedeuten.η

Obwohl Sie lineare Regressionsparameter mithilfe des Gradientenabfalls schätzen können, ist dies keine gute Idee.

Ebenso gibt es bessere Möglichkeiten, logistische Regressionskoeffizienten zu schätzen.

Sycorax sagt Reinstate Monica
quelle
Der Algorithmus kann also verschiedene Kombinationen wie Erhöhen w1, Verringern w2basierend 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?
Pb89
und hilft die partielle Ableitung auch zu erklären, wie viel Zunahme oder Abnahme vorgenommen werden muss w1und w2oder ob dies durch Lernrate / Schrumpfung erfolgt, während die partielle Ableitung nur die Abstiegsrichtung angibt?
Pb89
Der Gradient ist ein Vektor, also gibt er eine Richtung und eine Größe an. Ein Vektor kann durch einen positiven Skalar willkürlich neu skaliert werden und hat dieselbe Richtung, aber die Neuskalierung ändert seine Größe.
Sycorax sagt Reinstate Monica
Wenn die Größe auch durch den Gradienten gegeben ist, welche Rolle spielt dann die Schrumpfung oder Lernrate?
Pb89
f(x)w(t)η
7

Wenn die Optimierung durch partielle Ableitungen erfolgt, ändert sie in jeder Runde sowohl w1 als auch w2 oder ist es eine Kombination wie in wenigen Iterationen, bei der nur w1 geändert wird, und wenn w1 den Fehler nicht mehr reduziert, beginnt die Ableitung mit w2 - bis die lokalen Minima erreichen?

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?

Haitao Du
quelle
1

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:

  1. Initialisieren Sie Gewichte nach dem Zufallsprinzip.
  2. Berechnen Sie die Kostenfunktion und den Gradienten mit initialisierten Gewichten.
  3. Aktualisierungsgewichte: Es kann vorkommen, dass der Verlauf für einige Gewichte O ist. In diesem Fall zeigen diese Gewichte nach dem Aktualisieren keine Änderung. Beispiel: Angenommen, der Gradient ist [1,0]. Der W2 bleibt unverändert.
  4. Überprüfen Sie die Kostenfunktion mit aktualisierten Gewichten. Wenn die Dekrementierung akzeptabel genug ist, setzen Sie die Iterationen fort. Andernfalls werden sie beendet.

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).

Ein Santosh Kumar
quelle
"Wenn das Dekrement akzeptabel genug ist, setzen Sie die Iterationen fort, sonst wird es beendet", gibt es einen Standardwert, der in Paketen von Python ( sklearn) - oder R-Paketen angewendet wird, wie z caret. Kann es nur in einer manuell erstellten Gradientenabstiegsfunktion benutzerdefiniert werden?
Pb89
1

Gradient anständig wird auf beide w1und w2fü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 .

Hallo Welt
quelle