Ottimizzatore che implementa l'algoritmo Adadelta.
L'ottimizzazione di Adadelta è un metodo di discesa del gradiente stocastico basato sul tasso di apprendimento adattivo per dimensione per risolvere due inconvenienti:
- il continuo decadimento dei tassi di apprendimento durante la formazione
- la necessità di un tasso di apprendimento globale selezionato manualmente
Adadelta è un'estensione più robusta di Adagrad che adatta i tassi di apprendimento in base a una finestra mobile di aggiornamenti dei gradienti, invece di accumulare tutti i gradienti passati. In questo modo Adadelta continua ad apprendere anche dopo aver effettuato molti aggiornamenti. Rispetto ad Adagrad, nella versione originale di Adadelta non è necessario impostare un tasso di apprendimento iniziale. In questa versione è possibile impostare il tasso di apprendimento iniziale, come nella maggior parte degli altri ottimizzatori.
Secondo la sezione 4.3 ("Tassi di apprendimento effettivi"), verso la fine della formazione le dimensioni delle fasi convergono a 1 che è effettivamente un tasso di apprendimento elevato che causerebbe divergenza. Ciò si verifica solo verso la fine dell'addestramento poiché i gradienti e le dimensioni dei passi sono piccoli e la costante epsilon nel numeratore e nel denominatore domina i gradienti passati e gli aggiornamenti dei parametri che convergono la velocità di apprendimento a 1.
Secondo la sezione 4.4 ("Dati vocali"), in cui una grande rete neurale con 4 livelli nascosti è stata addestrata su un corpus di dati in inglese americano, ADADELTA è stato utilizzato con 100 repliche di rete. L'epsilon utilizzato è 1e-6 con rho=0,95 che convergeva più velocemente di ADAGRAD, mediante la seguente costruzione: new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Costanti
Corda | ACCUMULATORE | |
Corda | ACCUMULATORE_AGGIORNAMENTO | |
galleggiante | EPSILON_DEFAULT | |
galleggiante | LEARNING_RATE_DEFAULT | |
galleggiante | RHO_DEFAULT |
Costanti ereditate
Costruttori pubblici
Metodi pubblici
Corda | getOptimizerName () Ottieni il nome dell'ottimizzatore. |
Corda | accordare () |
Metodi ereditati
Costanti
ACCUMULATORE di stringa finale statico pubblico
Stringa finale statica pubblica ACCUMULATOR_UPDATE
float finale statico pubblico EPSILON_DEFAULT
float finale statico pubblico LEARNING_RATE_DEFAULT
float finale statico pubblico RHO_DEFAULT
Costruttori pubblici
AdaDelta pubblico (grafico grafico , tasso di apprendimento float)
Crea un ottimizzatore AdaDelta
Parametri
grafico | il grafico TensorFlow |
---|---|
tasso di apprendimento | il tasso di apprendimento |
public AdaDelta (grafico grafico , float learningRate, float rho, float epsilon)
Crea un ottimizzatore AdaDelta
Parametri
grafico | il grafico TensorFlow |
---|---|
tasso di apprendimento | il tasso di apprendimento |
Rho | Il fattore di decadimento |
epsilon | Un epsilon costante utilizzato per condizionare meglio l'aggiornamento del grad |
public AdaDelta (grafico grafico , nome stringa, float learningRate)
Crea un ottimizzatore AdaDelta
Parametri
grafico | il grafico TensorFlow |
---|---|
nome | il nome di questo ottimizzatore (il valore predefinito è "Adadelta") |
tasso di apprendimento | il tasso di apprendimento |
public AdaDelta (grafico grafico , nome stringa, float learningRate, float rho, float epsilon)
Crea un ottimizzatore AdaDelta
Parametri
grafico | il grafico TensorFlow |
---|---|
nome | il nome di questo ottimizzatore (il valore predefinito è "Adadelta") |
tasso di apprendimento | il tasso di apprendimento |
Rho | Il fattore di decadimento |
epsilon | Un epsilon costante utilizzato per condizionare meglio l'aggiornamento del grad |
Metodi pubblici
public String getOptimizerName ()
Ottieni il nome dell'ottimizzatore.
ritorna
- Il nome dell'ottimizzatore.