maOptimizer: Optimierungsalgorithmen

Gibt Optimierungsalgorithmen für Neural Net an.

Verwendung

  adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)

  sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
    lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)

Argumente

decay

Gibt die Verfallsrate an, die auf Gradienten angewendet wird, wenn der Schritt im adaptiven ADADELTA-Optimierungsalgorithmus berechnet wird. Diese Rate wird verwendet, um sicherzustellen, dass die Lernrate weitere Fortschritte macht, indem Remotegradienten bei der Berechnung der Schrittweite geringere Gewichtungen erhalten. Mathematisch wird das quadratische Mittel der Gradienten durch einen exponentiell abfallenden Durchschnitt der quadrierten Gradienten im Nenner der Aktualisierungsregel ersetzt. Der zugewiesene Wert muss im Bereich (0,1) liegen.

conditioningConst

Gibt eine Konditionierungskonstante für den adaptiven ADADELTA-Optimierungsalgorithmus an, mit der die Schrittweite in Regionen konditioniert wird, in denen der exponentiell abfallende Durchschnitt der quadrierten Gradienten klein ist. Der zugewiesene Wert muss im Bereich (0,1) liegen.

learningRate

Gibt die Weite des Schritts in Richtung des negativen Gradienten für jede Iteration des Lernprozesses an. Standardwert: = 0.001.

momentum

Gibt Gewichtungen für jede Dimension an, die den Beitrag des vorherigen Schritts zur Weite des nächsten Schritts während des Trainings steuern. Dies ändert die learningRate, um das Training zu beschleunigen. Der Wert muss >= 0 und < 1 sein.

nag

Wenn TRUE, wird der beschleunigte Gradientenabstieg von Nesterow verwendet. Diese Methode reduziert die Oracle-Komplexität des Gradientenabstiegs und ist optimal für eine reibungslose konvexe Optimierung.

weightDecay

Gibt die Skalierungsgewichtungen für die Schrittweite an. Nach jeder Gewichtungsaktualisierung werden die Gewichtungen im Netzwerk um (1 - ``learningRate * weightDecay) skaliert. Der Wert muss >= 0 und < 1 sein.

lRateRedRatio

Gibt das Verhältnis der Lernratenreduzierung an: das Verhältnis, um das die Lernrate während des Trainings reduziert wird. Die Reduzierung der Lernrate kann lokale Minima vermeiden. Der Wert muss > 0 und <= 1 sein.

  • Ein Wert von 1.0 bedeutet keine Reduzierung.
  • Der Wert 0.9 bedeutet, dass die Lernrate auf 90 % ihres aktuellen Werts reduziert wird.
    Die Verringerung kann entweder in regelmäßigen Abständen ausgelöst werden, um nach einer festen Anzahl von Iterationen zu erfolgen, oder wenn ein bestimmtes Fehlerkriterium hinsichtlich der Erhöhung oder Verringerung in der Verlustfunktion erfüllt ist.
  • Um eine regelmäßige Reduzierung der Rate auszulösen, geben Sie die Häufigkeit an, indem Sie die Anzahl der Iterationen zwischen Reduzierungen mit dem Argument lRateRedFreq festlegen.
  • Um eine Reduzierung der Rate auf einem Fehlerkriterium basierend auszulösen, geben Sie eine Zahl in lRateRedErrorRatio an.

lRateRedFreq

Legt die Häufigkeit der Verringerung der Lernrate fest, indem die Anzahl der Iterationen zwischen den Reduzierungen angegeben wird. Wenn beispielsweise 10 angegeben wird, wird die Lernrate alle 10 Iterationen reduziert.

lRateRedErrorRatio

Gibt das Fehlerkriterium zur Verringerung der Lernrate an. Bei Festlegung auf 0 wird die Lernrate reduziert, wenn der Verlust zwischen Iterationen zunimmt. Bei Festlegung auf einen größeren Bruchwert als 0 wird die Lernrate reduziert, wenn der Verlust um weniger als diesen Bruchteil des vorherigen Werts abnimmt.

Details

Diese Funktionen können für das Argument optimizer in rxNeuralNet verwendet werden.

Die sgd-Funktion gibt das stochastische Gradientenabstiegsverfahren an. maOptimizer

Die adaDeltaSgd-Funktion gibt das AdaDelta-Gradientenabstiegsverfahren an, das im Dokument „ADADELTA: An Adaptive Learning Rate Method“ (ADADELTA: Eine adaptive Lernratenmethode) aus dem Jahr 2012 von Matthew D. Zeiler beschrieben wird.

Wert

Eine Zeichenfolge, die die Spezifikation für den Optimierungsalgorithmus enthält.

Autor(en)

Microsoft Corporation Microsoft Technical Support

References

ADADELTA: An Adaptive Learning Rate Method

Weitere Informationen

rxNeuralNet,

Beispiele


 myIris = iris
 myIris$Setosa <- iris$Species == "setosa"

 res1 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
         data = myIris, 
         optimizer = sgd(learningRate = .002))

 res2 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
         data = myIris, 
         optimizer = adaDeltaSgd(decay = .9, conditioningConst = 1e-05))