maOptimizer: algoritmos de otimização
Especifica os algoritmos de otimização para Rede Neural.
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 a taxa de decaimento aplicada aos gradientes ao calcular a etapa no algoritmo de otimização adaptável ADADELTA. Essa taxa é usada para garantir que a taxa de aprendizado continue progredindo, fornecendo pesos menores aos gradientes remotos no cálculo do tamanho da etapa. Matematicamente, ele substitui o quadrado médio dos gradientes por uma média de decaimento exponencial dos gradientes quadrados no denominador da regra de atualização. O valor atribuído deve estar no intervalo (0,1).
conditioningConst
Especifica uma constante condicional para o algoritmo de otimização adaptável ADADELTA usado para condicionar o tamanho da etapa em regiões em que a média de decaimento exponencial dos gradientes quadrados é pequena. O valor atribuído deve estar no intervalo (0,1).
learningRate
Especifica o tamanho da etapa realizada na direção do gradiente negativo em cada iteração do processo de aprendizado. O valor padrão é = 0.001
.
momentum
Especifica os pesos para cada dimensão que controla a contribuição da etapa anterior para o tamanho da próxima etapa durante o treinamento. Isso modifica o learningRate
para acelerar o treinamento. O valor deve ser >= 0
e < 1
.
nag
Se for TRUE
, o gradiente descendente acelerado do Nesterov será usado. Esse método reduz a complexidade do oráculo de gradiente descendente e é ideal para otimização convexa suave.
weightDecay
Especifica os pesos de escala para o tamanho da etapa. Após cada atualização de peso, os pesos na rede são dimensionados por (1 - ``learningRate * weightDecay)
. O valor deve ser >= 0
e < 1
.
lRateRedRatio
Especifica a redução da taxa de aprendizado: a quantia pela qual a taxa de aprendizado é reduzida durante o treinamento. Reduzir a taxa de aprendizado pode evitar a mínima local. O valor deve ser > 0
e <= 1
.
- Um valor de
1.0
significa nenhuma redução. - Um valor de
0.9
significa que a taxa de aprendizado é reduzida para 90, seu valor atual.
A redução pode ser disparada periodicamente, para ocorrer após um número fixo de iterações ou quando são atendidos determinados critérios de erro relativos a aumentos ou diminuições na função de perda. - Para disparar uma redução de taxa periódica, especifique a frequência definindo o número de iterações entre reduções com o argumento
lRateRedFreq
. - Para disparar a redução de taxa com base em um critério de erro, especifique um número em
lRateRedErrorRatio
.
lRateRedFreq
Define a frequência de redução da taxa de aprendizado especificando o número de iterações entre reduções. Por exemplo, se 10
for especificado, a taxa de aprendizado será reduzida uma vez a cada dez iterações.
lRateRedErrorRatio
Especifica o critério de erro de redução da taxa de aprendizado. Se definido como 0
, a taxa de aprendizado será reduzida se a perda aumentar entre iterações. Se definido como um valor fracionado maior que 0
, a taxa de aprendizado será reduzida se a perda diminuir em menos do que essa fração de seu valor anterior.
Detalhes
Essas funções podem ser usadas para o argumento optimizer
em rxNeuralNet.
A função sgd
especifica o Gradiente Descendente Estocástico. maOptimizer
A função adaDeltaSgd
especifica o gradiente descendente AdaDelta, descrito no artigo de 2012 "ADADELTA: um método de taxa de aprendizado adaptável" de Mateus D.Zeiler.
Valor
Uma cadeia de caracteres que contém a especificação do algoritmo de otimização.
Autor(es)
Microsoft Corporation Microsoft Technical Support
Referências
ADADELTA: An Adaptive Learning Rate Method
Confira também
Exemplos
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))