Otimizador que implementa o algoritmo Adadelta.
A otimização Adadelta é um método estocástico de descida gradiente baseado na taxa de aprendizagem adaptativa por dimensão para resolver duas desvantagens:
- a queda contínua das taxas de aprendizagem ao longo do treinamento
- a necessidade de uma taxa de aprendizagem global selecionada manualmente
Adadelta é uma extensão mais robusta do Adagrad que adapta as taxas de aprendizagem com base em uma janela móvel de atualizações de gradiente, em vez de acumular todos os gradientes anteriores. Dessa forma, Adadelta continua aprendendo mesmo depois de muitas atualizações terem sido feitas. Comparado ao Adagrad, na versão original do Adadelta você não precisa definir uma taxa de aprendizagem inicial. Nesta versão, a taxa de aprendizagem inicial pode ser definida, como na maioria dos outros otimizadores.
De acordo com a seção 4.3 ("Taxas de aprendizagem efetiva"), perto do final do treinamento, os tamanhos dos passos convergem para 1, o que é efetivamente uma alta taxa de aprendizagem que causaria divergência. Isso ocorre apenas perto do final do treinamento, pois os gradientes e os tamanhos dos passos são pequenos, e a constante épsilon no numerador e no denominador domina os gradientes anteriores e as atualizações de parâmetros que convergem a taxa de aprendizado para 1.
De acordo com a seção 4.4 ("Dados de fala"), onde uma grande rede neural com 4 camadas ocultas foi treinada em um corpus de dados em inglês dos EUA, o ADADELTA foi usado com 100 réplicas de rede. O épsilon usado é 1e-6 com rho = 0,95, que convergiu mais rápido que o ADAGRAD, pela seguinte construção: new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Constantes
Corda | ACUMULADOR | |
Corda | ACCUMULATOR_UPDATE | |
flutuador | EPSILON_DEFAULT | |
flutuador | LEARNING_RATE_DEFAULT | |
flutuador | RHO_DEFAULT |
Constantes herdadas
Construtores Públicos
Métodos Públicos
Corda | getOptimizerName () Obtenha o nome do otimizador. |
Corda |
Métodos herdados
Constantes
público estático final String ACCUMULATOR
String final estática pública ACCUMULATOR_UPDATE
flutuador final estático público EPSILON_DEFAULT
flutuador final estático público LEARNING_RATE_DEFAULT
flutuador final estático público RHO_DEFAULT
Construtores Públicos
public AdaDelta (gráfico gráfico , float learningRate)
Cria um otimizador AdaDelta
Parâmetros
gráfico | o gráfico do TensorFlow |
---|---|
taxa de Aprendizagem | a taxa de aprendizagem |
public AdaDelta (gráfico gráfico , float learningRate, float rho, float epsilon)
Cria um otimizador AdaDelta
Parâmetros
gráfico | o gráfico do TensorFlow |
---|---|
taxa de Aprendizagem | a taxa de aprendizagem |
ró | O fator de decadência |
épsilon | Um épsilon constante usado para condicionar melhor a atualização da graduação |
public AdaDelta ( gráfico , nome da string, float learningRate)
Cria um otimizador AdaDelta
Parâmetros
gráfico | o gráfico do TensorFlow |
---|---|
nome | o nome deste otimizador (o padrão é 'Adadelta') |
taxa de Aprendizagem | a taxa de aprendizagem |
public AdaDelta (gráfico gráfico , nome da string, float learningRate, float rho, float epsilon)
Cria um otimizador AdaDelta
Parâmetros
gráfico | o gráfico do TensorFlow |
---|---|
nome | o nome deste otimizador (o padrão é 'Adadelta') |
taxa de Aprendizagem | a taxa de aprendizagem |
ró | O fator de decadência |
épsilon | Um épsilon constante usado para condicionar melhor a atualização da graduação |
Métodos Públicos
String pública getOptimizerName ()
Obtenha o nome do otimizador.
Devoluções
- O nome do otimizador.