• Aucun résultat trouvé

Cours IFT6266, Optimisation `a base de gradient 1 Petit rappel sur le gradient

N/A
N/A
Protected

Academic year: 2022

Partager "Cours IFT6266, Optimisation `a base de gradient 1 Petit rappel sur le gradient"

Copied!
5
0
0

Texte intégral

(1)

Cours IFT6266,

Optimisation ` a base de gradient 1 Petit rappel sur le gradient

La d´ eriv´ ee partielle de C (qui peut d´ ependre de w et d’autres variables), est

∂C(w)

∂w = lim

δw→0

C(w + δw) − C(w) δw

donc cela nous dit comment un changement de w affecte C. Supposons que w soit un vecteur de param` etres et C une fonction de coˆ ut ` a minimiser. Si ∂w ∂C

i

< 0 cela signifie qu’une augmentation (infinit´ esimale) du param` etre w i ferait baisser l’erreur C. On voudrait donc changer w dans la direction du vecteur de gradient

∂C

∂w = ( ∂w ∂C

1

, , ∂w ∂C

2

, . . . , ∂w ∂C

m

). C’est le principe de la descente de gradient:

w t+1 ← w t − η t ∂C(w t )

∂w

Si η t est suffisamment petit, cette proc´ edure est garantie de r´ eduire C ` a chaque fois. Si η t n’est pas trop petit on aura convergeance vers un minimum de C, mais

¸ca pourrait ˆ etre un minimum local.

(2)

2 Calcul du gradient et graphe de flot

On applique les r` egles de d´ erivation, et en particulier la r` egle de d´ erivation en chaˆıne est la plus utile:

∂C(u 1 (w), u 2 (w), . . . , u n (w))

∂w =

n

X

i=1

∂C

∂u i

∂u i

∂w

La puissance de cette r` egle de d´ erivation en chaˆıne devient apparente quand on l’applique r´ ecursivement. Supposons que l’on peut d´ ecompose C(w) en une s´ erie d’op´ erations diff´ erentiables, telles que le calcul peut se repr´ esenter par une s´ equence de ces op´ erations, o` u les intrants de chaque op´ eration s’obtiennent ` a partir des r´ esultats des op´ erations pr´ ec´ edentes (ou bien ` a partir de w ou ` a partir de quantit´ es externes ou constantes). Notons v i le r´ esultat de la i-` eme op´ eration, obtenu en appliquant la fonction f i ` a un sous-ensemble de {v 1 , . . . , v i−1 }. Pour simplifier la notation on va prendre v 1 = w, et on s’int´ eresse donc ` a obtenir ∂v ∂C

1

. On va le faire en calculant les r´ esultats interm´ ediaires ∂v ∂C

i

. Le temps total du calcul de C est donc la somme des temps de calcul de chacun des v i = f i (v 1 , . . . , v i−1 ).

On peut montrer que l’on peut obtenir le gradient ∂C ∂w dans le mˆ eme ordre de temps de calcul, en appliquant la r` egle de d´ erivation en chaˆıne r´ ecursivement. De mˆ eme qu’on visite et calcule les v i s´ equentiellement pour calculer C, on va faire la mˆ eme chose pour le gradient, mais en sens inverse (en commen¸cant par le dernier v i , qui est C lui-mˆ eme). Pour chacun on va calculer

∂C

∂v i = X

j>i

∂C

∂v j

∂f j

∂v i o` u ∂f ∂v

j

i

vaut 0 si v i ne rentre pas comme argument direct de la fonction f j . On ini- tialise la r´ ecursion avec ∂C ∂C = 1 et on continue en r´ etro-propageant le gradient dans le graphe de flot, dans le sens inverse du calcul de C. Pour chaque noeud du graphe on a donc v i , calcul´ e dans la passe avant du calcul de C en fonction de w, et ∂v ∂C

i

, calcul´ e dans la passe arri` ere de r´ etro-propagation du gradient, dans l’ordre inverse.

Des implantations g´ en´ eriques de cette proc´ edure r´ ecursive existent et utilisent justement une structure de donn´ ees en graphe, avec pour chaque noeud les champs v i et ∂C ∂v

i

. Notons que les v i peuvent ˆ etre scalaires, vecteurs, matrices, etc...

Quel est l’avantage de cette approche r´ ecursive? c’est qu’elle peut nous perme-

ttre d’obtenir le gradient en un temps exponentiellement plus petit qu’une ap-

proche na¨ıve qui n’exploite pas le fait que l’expansion de C(w) contient des termes

(3)

r´ eutilis´ es ` a beaucoup d’endroits. C’est en fait une application du principe g´ en´ eral de programmation dynamique en informatique.

3 Gradient stochastique

Dans le contexte de l’apprentissage, la fonction de coˆ ut est souvent exprim´ ee comme une somme de termes ind´ ependents associ´ es ` a chaque exemple:

C(w) = X

i

Q(f(x i , w), y i ) = X

i

C i (w)

La descente de gradient ordinaire (appel´ ee “batch” en anglais) utilise simplement

∂C

∂w pour calculer chaque modification de w. La descente de gradient stochastique utilise ∂C ∂w

i

et les param` etres sont modifi´ es apr` es chaque exemple:

w t+1 ← w t − η ∂C i (w t )

∂w .

Si on a un ensemble d’apprentissage fini (qui ne grossit pas plus vite que le temps que ¸ca nous prend pour faire ces mise ` a jour), on va recycler les exemples d´ ej` a vus (i.e., it´ erer plusieurs fois sur l’ensemble d’apprentissage). Avec cette m´ ethode, l’apprentissage se fait g´ en´ eralement de mani` ere beaucoup plus rapide (` a cause de la redondance pr´ esente dans les exemples), et de mani` ere plus robuste au probl` eme des minima locaux.

L’apprentissage par descente de gradient stochastique est un cas particulier de ce qu’on appelle l’apprentissage “on-line”, ou exemple par exemple. Consid´ erez un ensemble d’entraˆınement qui est l’union de deux copies d’un mˆ eme sous-ensemble d’exemples. Dans ce cas il est clair que la descente de gradient “batch” va faire deux fois le calcul des gradients, pour rien, alors que la descente de gradient stochastique ira aussi vite que si on avait pas fait de copie des donn´ ees. L’application de cette id´ ee donne lieu au fait que la descente de gradient stochastique devient proportion- nellement de plus en plus efficace par rapport aux m´ ethodes “batch” au fur et ` a mesure que le nombre d’exemples augmente. On voit aussi clairement que quand ce nombre d’exemples tend vers l’infini, on ne peut pas utiliser les m´ ethodes “batch”

(puisque celles-ci requi` erent plusieurs it´ erations sur l’ensemble d’apprentissage, et qu’on a seulement le temps d’en faire UNE), mais on peut utiliser une m´ ethode

“on-line” comme la descente de gradient stochastique, et obtenir la convergence de

l’apprentissage. Dans le cas o` u nous avons non pas un ensemble fixe d’exemples

mais une SOURCE d’exemples (par exemple les donn´ ees arrivent en temps r´ eel

(4)

de la t´ el´ e), ` a un taux comparable ou plus ´ elev´ e que le temps requis pour traiter (et faire une mise ` a jour des param` etres) chaque exemple, alors nous n’avons pas le choix d’utiliser une m´ ethode “on-line”. Au mieux nous pouvons stocker une quantit´ e limit´ ee d’exemples ` a la fois et faire des “mini-batch”, mais nous ne pou- vons engoufrer tout l’ensemble d’exemples et faire plusieurs it´ erations dessus. Cela

´

elimine la grande majorit´ e des m´ ethodes d’optimisation num´ erique classiques, qui supposent que l’on peut calculer C(w) un grand nombre de fois pour diff´ erentes valeurs de w.

Pour ce qui est des minima locaux et aussi pour mieux comprendre la nature du gradient stochastique, il faut voir ∂C ∂w

i

(w

t

) comme un estimateur sans biais de ∂C ∂w (w

t

) . Cela est clairement vrai puisque la moyenne des ∂C ∂w

i

(w

t

) est ´ egal (` a une constante multiplicative pr` es) ` a ∂C(w ∂w

t

) . Donc

∂C i (w t )

∂w = ∂C(w t )

∂w + bruit

o` u le bruit est de moyenne nulle. Un autre facteur int´ eressant est que sous l’hypoth` ese i.i.d. des donn´ ees, les ∂C ∂w

i

(w

t

) sont i.i.d. entre eux. Donc la moyenne d’un petit nombre d’entre eux (une “mini-batch”) devient rapidement un bon es- timateur de leur esp´ erance, et ce ` a un coˆ ut de calcul consid´ erablement moindre (et le bruit diminue en 1 sur la racine carr´ ee de la taille de la “mini-batch”). Avec le gradient stochastique, on devrait penser non pas en terme d’une valeur unique pour w t mais plutˆ ot en fonction d’un nuage de valeurs, car w t va “s’agiter” de mani` ere al´ eatoire ` a cause du bruit, et c’est le nuage dans son ensemble qui se d´ eplace au fur et ` a mesure que l’on descend vers des valeurs plus faibles de C. La taille de ce nuage est proportionnelle au bruit et au pas de gradient η. Le nuage ne pourra pas rentrer dans un “trou”, ou un bol, qui est plus mince que le nuage lui-mˆ eme. On va donc ´ eviter les minima locaux “pointus”, qui sont ceux que l’on veut justement ´ eviter le plus (ils donnent g´ en´ eralement lieu ` a une mauvaise g´ en´ eralisation car ils correspondent ` a des solutions qui requi` erent une grande pr´ ecision en w, donc une classe de fonctions plus grande, et correspondent g´ en´ eralement ` a des solutions peu stables par rapport au tirage particulier des ex- emples d’apprentissage). Avec cette vision des choses, on voit aussi pourquoi il sera important de graduellement r´ eduire η si on veut descendre au fond du bol de notre minimum final.

On peut ´ evidemment utiliser le mˆ eme truc du calcul efficace du gradient par r´ etro-

propagation dans un graphe de flot, mais avec C i comme noeud terminal du graphe.

(5)

4 Convergence de la descente de gradient

Dans le cas de la descente de gradient ordinaire comme celui de la descente de gradient stochastique, on peut garantir asymptotiquement la convergence vers un minimum (qui peut ˆ etre local) si les pas de gradients η sont positifs et sont gradu- ellement r´ eduits:

X

t=1

η t = ∞

et ∞

X

t=1

η 2 t < ∞

Voir la th` ese de L´ eon Bottou sur le site du cours pour des preuves de la convergence.

En pratique on peut prendre un pas de la forme η t = η 1

1 + t/c

et on se retrouve avec deux hyper-param` etres η 1 (le pas de gradient initial) et c (la

vitesse de d´ ecroissance), qu’il faudra estimer en essayant diff´ erentes valeurs. On

peut commencer avec c = ∞, donc un pas constant, pour choisir η 1 , en se basant

sur la vitesse de convergence initiale. Ensuite, on choisira c en se basant sur la

convergence finale. Ce que l’on peut esp´ erer c’est qu’une fois ce choix fait, il sera

relativement stable par rapport ` a des variations mineures de nos donn´ ees et de

notre classe de fonctions.

Références

Documents relatifs

Le gradient est donc un champ vectoriel qui caractérise les variations spatiales du champ scalaire

On développe une version stochastique des méthodes de descente en optimi- sation. La théorie des multiapplications permet dans le cas déterministe de démontrer la

But strong convexity is a more powerful property than convexity : If we know the value and gradient at a point x of a strongly convex function, we know a quadratic lower bound for

On peut alors choisir comme matrice de pr´econditionnement une matrice L voisine de B T en effectuant ce que l’on appelle une d´ecomposition de Cholesky incompl`ete qui consiste `a

Suivre l’exemple de classification avec le gradient boosting de la page 20 des slides de Peter Pret- tenhofer et Gilles Louppe disponibles ` a

• Si vous avez besoin de convertir une matrice PLearn en ASCII, vous pouvez faire plearn vmat convert plearn matrix ascii matrix.amat (´editez le fichier r´esultat `a la main si

Introduction Méthode de gradient à pas constant Méthode de gradient à pas optimal.. Méthodes

La DG s'applique lorsque l'on cherche le minimum d'une fonction dont on connaît l'expression analytique, qui est dérivable, mais dont le calcul direct du minimum est difficile..