J'ai construit des modèles pour un projet, mais je ne peux pas me concentrer sur les mathématiques des algorithmes Adagrad et Adadelta.
Je comprends le fonctionnement de la descente en gradient de vanille et j'ai écrit du code pour le faire fonctionner avec succès.
Je serais reconnaissant si quelqu'un m'expliquait ces deux choses ou fournissait des ressources pour les comprendre.
machine-learning
gradient-descent
Malay Hazarika
la source
la source
Réponses:
Concernant les ressources:
Voici quelques citations centrales d' ADADELTA: Une méthode de taux d'apprentissage adaptatif , ainsi que quelques exemples et de courtes explications:
ADAGRAD
C'est-à-dire si les gradients des trois premières étapes sontg1=⎛⎝une1b1c1⎞⎠,g2=⎛⎝une2b2c2⎞⎠,g3=⎛⎝une3b3c3⎞⎠ , puis:
Problèmes d'ADAGRAD que ADADELTA essaie de contrer
Le deuxième inconvénient est assez explicite.
Voici un exemple lorsque le premier inconvénient est un problème:g2 est beaucoup plus grande que la valeur absolue de la composante respective du gradient dans toute autre étape. t > 2 , il considère que chaque composant de ∑tτ= 1g2τ-------√ est supérieure à la valeur absolue de la composante respective de g2 . Mais la valeur absolue de chaque composant deg2 est beaucoup plus grande que la valeur absolue de la composante respective de gt , et donc ΔXt est très petit. ΔXt devient de plus en plus petit.
considérons un cas dans lequel la valeur absolue de chaque composant de
Pour toute
De plus, au fur et à mesure que l'algorithme progresse, il se rapproche d'un minimum, donc le gradient devient plus petit, et ainsi
Ainsi, il se pourrait que l'algorithme s'arrête pratiquement avant d'atteindre un minimum.
ADADELTA
Au lieu de considérer tous les gradients qui ont été calculés, ADADELTA ne considère que le dernierw dégradés.
(RMS signifie Root Mean Square .)
De même:
C'est-à-dire si le gradient à l'étaper est gr=⎛⎝unerbrcr⎞⎠ et ΔXr=⎛⎝jerjrkr⎞⎠ , puis:
Par conséquent, en multipliant par une puissance élevée de
Laisser
Maintenant, nous pouvons approximer
la source
De quora, vous trouverez un guide plus complet, mais les idées principales sont qu'AdaGrad essaie de balancer ces problèmes dans la sélection du taux d'apprentissage du gradient dans l'apprentissage automatique:
1 Sélection manuelle du taux d'apprentissage η.
2 Le vecteur de gradient gt est mis à l'échelle uniformément par un taux d'apprentissage scalaire η.
3 Le taux d'apprentissage η reste constant tout au long du processus d'apprentissage.
Il présente en soi les problèmes suivants:
1 Taux d'apprentissage en décroissance continue η.
2 Sélection manuelle du taux d'apprentissage η.
La solution de la préoccupation 2 concerne l'inadéquation des unités de gradient et donc
Le dernier calcul nécessite une compréhension de la théorie de l'impulsion et il y a été brièvement expliqué dans l'article.
Mon idée était de donner les principales causes de ce qui était prévu, peut-être que cela facilite la lecture.
la source