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
La règle de mise à jour pour ADAGRAD est la suivante:
ΔXt= -η∑tτ= 1g2τ√gt( 5 )
Ici, le dénominateur calcule la l 2norme de tous les gradients précédents sur une base par dimension et η est un taux d'apprentissage global partagé par toutes les dimensions.
Bien qu'il existe un taux d'apprentissage global réglé manuellement, chaque dimension a son propre taux dynamique.
C'est-à-dire si les gradients des trois premières étapes sont g1=⎛⎝une1b1c1⎞⎠,g2=⎛⎝une2b2c2⎞⎠,g3=⎛⎝une3b3c3⎞⎠, puis:
ΔX3= -η∑3τ= 1g2τ-------√g3= -η⎛⎝⎜une21+une22+une23b21+b22+b23c21+c22+c23⎞⎠⎟--------------⎷⎛⎝une3b3c3⎞⎠↓ΔX3= -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜ηune21+une22+une23----------√une3ηb21+b22+b23---------√b3ηc21+c22+c23---------√c3⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Ici, il est plus facile de voir que chaque dimension a son propre taux d'apprentissage dynamique, comme promis.
Problèmes d'ADAGRAD que ADADELTA essaie de contrer
L'idée présentée dans cet article est dérivée d'ADAGRAD afin d'améliorer les deux principaux inconvénients de la méthode: 1) la décroissance continue des taux d'apprentissage tout au long de la formation, et 2) la nécessité d'un taux d'apprentissage global sélectionné manuellement.
Le deuxième inconvénient est assez explicite.
Voici un exemple lorsque le premier inconvénient est un problème:
considérons un cas dans lequel la valeur absolue de chaque composant deg2est beaucoup plus grande que la valeur absolue de la composante respective du gradient dans toute autre étape.
Pour toutet > 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 ΔXtest très petit.
De plus, au fur et à mesure que l'algorithme progresse, il se rapproche d'un minimum, donc le gradient devient plus petit, et ainsiΔXtdevient de plus en plus petit.
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 dernier w dégradés.
Depuis le stockage wles gradients carrés précédents sont inefficaces, nos méthodes implémentent cette accumulation comme une moyenne exponentiellement décroissante des gradients carrés. Supposons à tempst cette moyenne courante est E[g2]t on calcule ensuite:
E[g2]t= ρ E[g2]t - 1+ ( 1 - ρ )g2t( 8 )
où ρest une constante de décroissance [...]. Puisque nous avons besoin de la racine carrée de cette quantité dans les mises à jour des paramètres, cela devient effectivement leRMS
des gradients carrés précédents jusqu'à temps t:
RMS[ g]t=E[g2]t+ ϵ--------√( 9 )
où une constante ϵ est ajouté pour mieux conditionner le dénominateur
(RMSsignifie Root Mean Square .)
De même:
E[ ΔX2]t - 1= ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1
RMS[ Δ x ]t - 1=E[ ΔX2]t - 1+ ϵ------------√
Et enfin:
[...] approximatif ΔXt en calculant la décomposition exponentielle RMS sur une fenêtre de taille w des précédents Δ x pour donner la méthode ADADELTA:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tgt( 14 )
où la même constante ϵ est ajouté au numérateur RMSainsi que. Cette constante sert à la fois à démarrer la première itération oùΔX0= 0et pour garantir que des progrès continuent d'être réalisés même si les mises à jour précédentes deviennent petites.
[...]
Le numérateur agit comme un terme d'accélération, accumulant les gradients précédents sur une fenêtre de temps [...]
C'est-à-dire si le gradient à l'étape r est gr=⎛⎝unerbrcr⎞⎠ et ΔXr=⎛⎝jerjrkr⎞⎠, puis:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tgt= -E[ ΔX2]t - 1+ ϵ-----------√E[g2]t+ ϵ--------√gt=-ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1+ ϵ-------------------------√ρ E[g2]t - 1+ ( 1 - ρ )g2t+ ϵ--------------------√gt=-ρ ( ρ E[ ΔX2]t - 3+ ( 1 - ρ ) ΔX2t - 2) + ( 1 - ρ ) ΔX2t - 1+ ϵ----------------------------------------√ρ ( ρ E[g2]t - 2+ ( 1 - ρ )g2t - 1) + ( 1 - ρ )g2t+ ϵ----------------------------------√gt=-ρ2E[ ΔX2]t - 3+p1( 1 - ρ ) ΔX2t - 2+p0( 1 - ρ ) ΔX2t - 1+ ϵ------------------------------------------√ρ2E[g2]t - 2+p1( 1 - ρ )g2t - 1+p0( 1 - ρ )g2t+ ϵ------------------------------------√gt=-ρt - 1E[ ΔX2]0+∑r = 1t - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ-------------------------------√ρt - 1E[g2]1+∑r = 2tρt - r( 1 - ρ )g2r+ ϵ---------------------------√gt
ρ est une constante de décroissance, donc nous la choisissons de telle sorte que ρ ∈ ( 0 , 1 ) (typiquement ρ ≥ 0,9).
Par conséquent, en multipliant par une puissance élevée deρentraîne un très petit nombre.
Laisserw être l'exposant le plus bas tel que nous considérons le produit de la multiplication des valeurs sensées par ρwnégligeable.
Maintenant, nous pouvons approximerΔXt en supprimant des termes négligeables:
ΔXt≈ -∑r = t - wt - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ---------------------√∑r = t + 1 - wtρt - r( 1 - ρ )g2r+ ϵ--------------------√gt=-∑r = t - wt - 1ρt - 1 - r( 1 - ρ )⎛⎝⎜je2rj2rk2r⎞⎠⎟+ ϵ------------------------⎷∑r = t + 1 - wtρt - r( 1 - ρ )⎛⎝⎜une2rb2rc2r⎞⎠⎟+ ϵ------------------------⎷⎛⎝unetbtct⎞⎠↓ΔXt≈ -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑r = t - wt - 1ρt - 1 - r( 1 - ρ )je2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )une2r+ ϵ--------------------√unet∑r = t - wt - 1ρt - 1 - r( 1 - ρ )j2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )b2r+ ϵ--------------------√bt∑r = t - wt - 1ρt - 1 - r( 1 - ρ )k2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )c2r+ ϵ--------------------√ct⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟