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

rxNeuralNet,

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