23 Sous le capot des algorithmes de Machine Learning III: Optimisation de modèle par descente de gradient - Blog Nexeo
Technologies/IT

Sous le capot des algorithmes de Machine Learning III: Optimisation de modèle par descente de gradient

11 octobre 2019

“Quand on ne sait pas où l’on va, il faut y aller… Et le plus vite possible.”

[Proverbe Shadok]

Précédemment, on a vu qu’il fallait trouver la bonne droite (les bons paramètres) qui minimise une fonction de coût.

 

Choix d’une fonction de coût

En Machine Learning, afin de s’assurer que le minimum obtenu n’est pas local mais global, il est préféré de travailler avec une fonction de coût convexe. La particularité de ce type de fonctions est que pour connaître le point sur lequel elles atteignent leur minimum global, il suffit d’annuler la dérivée de celles-ci.

Lorsque l’on est en montagne, pour descendre il suffit de sentir la pente et sa direction et d’aller en sens inverse de celle-ci pas vrai ?

Avec les fonctions de coût c’est pareil.

Le gradient est la direction vers laquelle il faut se diriger pour grimper la montagne.

Plutôt que de suivre celle-ci, on va en sens inverse, comme sur le schéma ci-dessus.

 

Après un certain nombre d’étapes, on finit par atteindre le minimum global dans le cas où la fonction est convexe.

 

Minimisation d’une fonction de coût bruitée

Coût empirique moyen

Imaginons que chaque point présenté ci dessous, est la valeur  , l’erreur de prédiction associée au vecteur d’observations .

 

Comment minimiser une telle moyenne ?

 

Algorithme de descente de gradient stochastique

 

Algorithme de descente de gradient stochastique par batch

 

Approximation du gradient théorique par moyennisation
En rouge les gradients évalués ponctuellement
En vert l’estimation du gradient théorique

 

Accélération de la convergence

De légère modifications peuvent être apportées à ces algorithmes afin d’accélérer la convergence.

Un modèle mathématique peut présenter un nombre important de paramètres, et souvent, il est souhaitable de restreindre le nombre de paramètres afin d’obtenir un modèle moins complexe et qui s’entraîne plus vite (dont l’optimisation des paramètres est plus rapide).

Pour cela, on peut utiliser des méthodes dites de projection.

 

Restreindre le nombre de paramètres revient finalement à forcer certains paramètres à avoir des coordonnées égales à 0. Cela signifie tout simplement que ce paramètre ne rentre pas en compte dans la prédiction renvoyée par le modèle.

On parle de parcimonie du vecteur de paramètres.

 

Une manière de forcer certains paramètres peu importants a être nul est de rajouter aux algorithmes de descente de gradient une étape de projection.

Projeter un vecteur sur la boule L1 ou la boule L2 de rayon R signifie faire en sorte que la “ longueur “ du vecteur ne dépasse pas un R.

 

Une fois le gradient calculé, et la descente effectuée, on projette sur la boule L1 d’un certain rayon fixé, c’est-à-dire que l’on force le vecteur de paramètres à être de norme L1 inférieure ou égale à ce rayon.

Projections sur les boules L2 et L1

 

Le schéma ci-dessus illustre cette étape de projection.

 

Ainsi avec un vecteur de paramètres d’une norme inférieure ou égale à un seuil, certaines coordonnées finissent par être “écrasées” et sont égales à 0.

Cette méthode permet d’accélérer la convergence vers le minimum de la fonction de coût et garantit une “simplification” du modèle.

 

Dans le prochain article, on illustrera cette méthode de descente de gradient stochastique avec pas de projection dans le cadre de la reconnaissance d’images.

 

Ajouter un commentaire


Votre commentaire sera modifié par le site si besoin.

À lire également

On a précédemment vu un modèle simple de neurone, permettant de reconnaître des chiffres. À présent, plutôt…

“En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que…

“Quand on ne sait pas où l’on va, il faut y aller… Et le plus vite possible.”…