maOptimizer: algoritmos de optimización
Especifica algoritmos de optimización para una red neuronal.
Uso
adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)
sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)
Argumentos
decay
Especifica la tasa de depreciación que se aplica a los gradientes al calcular el paso en el algoritmo de optimización adaptable ADADELTA. Esta tasa se usa para garantizar que la velocidad de aprendizaje siga progresando al dar pesos más pequeños a los gradientes remotos en el cálculo del tamaño del paso. Matemáticamente, reemplaza la media cuadrática de los gradientes por un promedio de depreciación exponencial de los gradientes cuadrados en el denominador de la regla de actualización. El valor asignado debe estar en el rango (0,1).
conditioningConst
Especifica una constante de acondicionamiento para el algoritmo de optimización adaptable ADADELTA que se utiliza para condicionar el tamaño del paso en regiones donde el promedio de depreciación exponencial de los gradientes cuadrados es pequeño. El valor asignado debe estar en el rango (0,1).
learningRate
Especifica el tamaño del paso realizado en la dirección del gradiente negativo para cada iteración del proceso de aprendizaje. El valor predeterminado es = 0.001
.
momentum
Especifica los pesos de cada dimensión que controlan la contribución del paso anterior al tamaño del paso siguiente durante el entrenamiento. Esto modifica el valor de learningRate
para acelerar el entrenamiento. El valor debe ser >= 0
y < 1
.
nag
Si es TRUE
, se utiliza el descenso de gradiente acelerado de Nesterov. Este método reduce la complejidad de oráculo del descenso de gradiente y resulta ideal para la optimización convexa fluida.
weightDecay
Especifica los pesos de escala correspondiente al tamaño del paso. Después de cada actualización de peso, los pesos de la red se escalan mediante (1 - ``learningRate * weightDecay)
. El valor debe ser >= 0
y < 1
.
lRateRedRatio
Especifica la tasa de reducción de la velocidad de aprendizaje; es decir, la tasa en la que se reduce la velocidad de aprendizaje durante el entrenamiento. La reducción de la velocidad de aprendizaje puede evitar la mínima local. El valor debe ser > 0
y <= 1
.
- Un valor de
1.0
significa que no hay reducción. - Un valor de
0.9
significa que la velocidad de aprendizaje se reduce a 90 de su valor actual.
La reducción se puede desencadenar periódicamente para que se produzca después de un número fijo de iteraciones o cuando se cumplan determinados criterios de error relativos a aumentos o disminuciones en la función de pérdida. - A fin de desencadenar una reducción de velocidad periódica, especifique la frecuencia. Para ello, establezca la cantidad de iteraciones entre las reducciones con el argumento
lRateRedFreq
. - Para desencadenar la reducción de la velocidad en función de un criterio de error, especifique un número en
lRateRedErrorRatio
.
lRateRedFreq
Establece la frecuencia de reducción de la velocidad de aprendizaje al especificar una cantidad de iteraciones entre las reducciones. Por ejemplo, si se especifica 10
, la velocidad de aprendizaje disminuye una vez cada 10 iteraciones.
lRateRedErrorRatio
Especifica el criterio de error de reducción de la velocidad de aprendizaje. Si se establece en 0
, se reduce la velocidad de aprendizaje si la pérdida aumenta entre las iteraciones. Si se establece en un valor fraccionario mayor que 0
, se reduce la velocidad de aprendizaje si la pérdida aumenta en menos que esa fracción con respecto a su valor anterior.
Detalles
Estas funciones se pueden usar para el argumento optimizer
en rxNeuralNet.
La función sgd
especifica el descenso de gradiente estocástico. maOptimizer
La función adaDeltaSgd
especifica el descenso de gradiente AdaDelta, que se describe en el documento "ADADELTA: An Adaptive Learning Rate Method" (ADADELTA: un método de velocidad de aprendizaje adaptable) de Matthew D.Zeiler (2012).
Value
Cadena de caracteres que contiene la especificación del algoritmo de optimización.
Autores
Microsoft Corporation Microsoft Technical Support
Referencias
ADADELTA: An Adaptive Learning Rate Method
Consulte también
Ejemplos
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))