Optimiseur qui implémente l'algorithme Adadelta.
L'optimisation Adadelta est une méthode de descente de gradient stochastique basée sur un taux d'apprentissage adaptatif par dimension pour résoudre deux inconvénients :
- la baisse continue des taux d’apprentissage tout au long de la formation
- la nécessité d'un taux d'apprentissage global sélectionné manuellement
Adadelta est une extension plus robuste d'Adagrad qui adapte les taux d'apprentissage en fonction d'une fenêtre mobile de mises à jour de gradient, au lieu d'accumuler tous les gradients passés. De cette façon, Adadelta continue d'apprendre même lorsque de nombreuses mises à jour ont été effectuées. Par rapport à Adagrad, dans la version originale d'Adadelta, vous n'avez pas besoin de définir un taux d'apprentissage initial. Dans cette version, le taux d'apprentissage initial peut être défini, comme dans la plupart des autres optimiseurs.
Selon la section 4.3 (« Taux d'apprentissage effectifs »), vers la fin de la taille des étapes de formation convergent vers 1, ce qui est effectivement un taux d'apprentissage élevé qui entraînerait une divergence. Cela ne se produit que vers la fin de la formation, car les gradients et les tailles de pas sont petits et la constante epsilon au numérateur et au dénominateur domine les gradients passés et les mises à jour des paramètres qui font converger le taux d'apprentissage vers 1.
Selon la section 4.4 (« Données vocales »), où un grand réseau neuronal avec 4 couches cachées a été formé sur un corpus de données en anglais américain, ADADELTA a été utilisé avec 100 répliques de réseau. L'epsilon utilisé est 1e-6 avec rho=0,95 qui a convergé plus rapidement qu'ADAGRAD, par la construction suivante : new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Constantes
Chaîne | ACCUMULATEUR | |
Chaîne | ACCUMULATEUR_UPDATE | |
flotter | EPSILON_DEFAULT | |
flotter | LEARNING_RATE_DEFAULT | |
flotter | RHO_DEFAULT |
Constantes héritées
Constructeurs Publics
Méthodes publiques
Chaîne | getOptimizerName () Obtenez le nom de l'optimiseur. |
Chaîne | àChaîne () |
Méthodes héritées
Constantes
chaîne finale statique publique ACCUMULATEUR
chaîne finale statique publique ACCUMULATOR_UPDATE
public statique final float EPSILON_DEFAULT
public statique final float LEARNING_RATE_DEFAULT
public statique final float RHO_DEFAULT
Constructeurs Publics
public AdaDelta ( Graphique , float learningRate)
Crée un optimiseur AdaDelta
Paramètres
graphique | le graphique TensorFlow |
---|---|
taux d'apprentissage | le taux d'apprentissage |
public AdaDelta ( Graphique , float learningRate, float rho, float epsilon)
Crée un optimiseur AdaDelta
Paramètres
graphique | le graphique TensorFlow |
---|---|
taux d'apprentissage | le taux d'apprentissage |
rho | Le facteur de désintégration |
épsilon | Un epsilon constant utilisé pour mieux conditionner la mise à jour des diplômés |
public AdaDelta ( Graphique , nom de la chaîne, float learningRate)
Crée un optimiseur AdaDelta
Paramètres
graphique | le graphique TensorFlow |
---|---|
nom | le nom de cet optimiseur (par défaut "Adadelta") |
taux d'apprentissage | le taux d'apprentissage |
public AdaDelta ( Graphique , nom de chaîne, float learningRate, float rho, float epsilon)
Crée un optimiseur AdaDelta
Paramètres
graphique | le graphique TensorFlow |
---|---|
nom | le nom de cet optimiseur (par défaut "Adadelta") |
taux d'apprentissage | le taux d'apprentissage |
rho | Le facteur de désintégration |
épsilon | Un epsilon constant utilisé pour mieux conditionner la mise à jour des diplômés |
Méthodes publiques
chaîne publique getOptimizerName ()
Obtenez le nom de l'optimiseur.
Retour
- Le nom de l'optimiseur.