maoptimizer : algorithmes d’optimisation

Spécifie les algorithmes d’optimisation pour le réseau neuronal.

Utilisation

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

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

Arguments

decay

Spécifie la vitesse d’atténuation appliquée aux gradients lors du calcul du pas dans l’algorithme d’optimisation adaptative ADADELTA. Ce taux est utilisé pour s’assurer que le taux d’apprentissage continue à progresser en donnant des poids plus petits aux gradients distants dans le calcul de la taille du pas. Mathématiquement, il remplace le carré moyen des gradients par une moyenne exponentielle des gradients au carré dans le dénominateur de la règle de mise à jour. La valeur assignée doit être comprise dans la plage (0,1).

conditioningConst

Spécifie une constante de conditionnement pour l’algorithme d’optimisation adaptative ADADELTA utilisé pour conditionner la taille du pas dans les régions où la moyenne d’atténuation exponentielle des dégradés au carré est petite. La valeur assignée doit être comprise dans la plage (0,1).

learningRate

Spécifie la taille du pas effectué dans la direction du gradient négatif pour chaque itération du processus d’apprentissage. La valeur par défaut est = 0.001.

momentum

Spécifie les pondérations pour chaque dimension qui contrôlent la contribution de l’étape précédente à la taille du pas suivant pendant l’apprentissage. Cela modifie learningRate pour accélérer l’apprentissage. La valeur doit être >= 0 et < 1.

nag

Si TRUE, la descente de gradient accélérée de Nesterov est utilisée. Cette méthode réduit la complexité d’oracle de la descente de gradient et est optimale pour l’optimisation convexe lisse.

weightDecay

Spécifie les poids d’échelle pour la taille de pas. Après chaque mise à jour de poids, les pondérations du réseau sont mises à l’échelle par (1 - ``learningRate * weightDecay). La valeur doit être >= 0 et < 1.

lRateRedRatio

Spécifie le taux de réduction du taux d’apprentissage : taux par lequel le taux d’apprentissage est réduit au cours de l’apprentissage. La réduction du taux d’apprentissage aide à éviter les minima locaux. La valeur doit être > 0 et <= 1.

  • Une valeur de 1.0 signifie qu’il n’y a pas de réduction.
  • Une valeur de 0.9 indique que le taux d’apprentissage est réduit à 90 % de la valeur actuelle.
    La réduction peut être déclenchée régulièrement, se produire après un nombre fixe d’itérations, ou lorsqu’un certain critère d’erreur concernant les augmentations ou diminutions de la fonction de perte est respecté.
  • Pour déclencher une réduction périodique du taux, spécifiez la fréquence en définissant le nombre d’itérations entre les réductions avec l’argument lRateRedFreq.
  • Pour déclencher la réduction du taux selon un critère d’erreur, spécifiez un nombre dans lRateRedErrorRatio.

lRateRedFreq

Définit la fréquence de réduction du taux d’apprentissage en spécifiant le nombre d’itérations entre les réductions. Par exemple, si 10 est spécifié, le taux d’apprentissage est réduit une fois toutes les 10 itérations.

lRateRedErrorRatio

Spécifie le critère d’erreur de réduction du taux d’apprentissage. Si la valeur est 0, le taux d’apprentissage est réduit si la perte augmente entre les itérations. Si elle est définie sur une valeur fractionnaire supérieure à 0, le taux d’apprentissage est réduit si la perte diminue de moins de la fraction de sa valeur précédente.

Détails

Ces fonctions peuvent être utilisées pour l’argument optimizer dans rxNeuralNet.

La fonction sgd spécifie la descente de gradient stochastique. maOptimizer

La fonction adaDeltaSgd spécifie la descente de gradient AdaDelta, décrite dans l’article de 2012 « ADADELTA: An Adaptive Learning Rate Method » de Matthew D.Zeiler.

Valeur

Chaîne de caractères qui contient la spécification de l’algorithme d’optimisation.

Auteur(s)

Microsoft Corporation Microsoft Technical Support

Références

ADADELTA: An Adaptive Learning Rate Method

Voir aussi

rxNeuralNet,

Exemples


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