Fondamentaux du Deep learning

FST · Programming, Math, etc. · course

Voir tous les documents en intelligence artificielle et données

Titeur : Dr. Haithem Hermessi

Cours : Fondamentaux du Deep learning

A/U :2021-2021

Techniques d’optimisation

1. Descente de gradient :

La méthode la plus élémentaire est la méthode de la descente de gradient.

Problème : Minimiser la fonction de perte % aux paramètres

Solution itérative :

wi+1 et wi sont les valeurs des mise à jour (poids et bias) de l’itération i+1 et i respectivement. γk

est la valeur du pas (learning rate) et ∇𝑓(𝑤𝑘) est le gradient de f.

On suppose ici que la fonction f est continue et différenciable. Notre objectif est de trouver le

point le plus bas (vallée) de la fonction d’optimisation. Cependant, la direction réelle de cette vallée

n’est pas connue. Nous ne pouvons regarder que localement et de ce fait la direction du gradient

négatif est la meilleure information dont nous disposons. Faire un petit pas dans cette direction

ne peut que nous rapprocher du minimum. Une fois que nous avons fait ce petit pas, nous

calculons à nouveau le nouveau gradient et nous nous déplaçons à nouveau un peu dans cette

direction, jusqu’à ce que nous atteignions la vallée. Par conséquent, la descente de de gradient ne

fait essentiellement que suivre la direction de la descente la plus raide (pente négative).

Le paramètre γ dans l’équation de mise à jour itérative est appelé la taille du pas (taux

Publicité

d’apprentissage). En général, nous ne connaissons pas la valeur de la taille de pas optimale. Nous

devons donc essayer différentes valeurs. La pratique courante consiste à essayer un ensemble de

valeurs sur une échelle logarithmique et à utiliser ensuite la meilleure. Quelques scénarios

différents peuvent se produire. L’image ci-dessus représente ces scénarios pour une fonction

quadratique 1D. Si le taux d’apprentissage est trop faible, alors nous progresserons régulièrement

vers le minimum. Cependant, cela pourrait prendre plus de temps que ce qui est idéal. Il est

généralement très difficile (ou impossible) d’obtenir une échelle qui nous mènerait directement au

minimum. L’idéal serait d’avoir une taille de pas un peu plus grande que l’optimale. En

pratique, cela permet d’obtenir la convergence la plus rapide. Cependant, si nous utilisons un taux

d’apprentissage trop élevé, les itérations s’éloignent de plus en plus des minima et nous

obtenons une divergence. Dans la pratique, nous voudrions utiliser un taux d’apprentissage qui

est juste un peu moins que divergent.

Figure 1 : Différentes valeurs du pas appliquer à une fonction quadratique 1D

2. Descente de gradient stochastique :

Dans le cas de la descente de gradient stochastique (SGD en anglais), nous remplaçons le vecteur

de gradient réel par une estimation stochastique du vecteur de gradient. Pour un réseau de

neurones, l’estimation stochastique signifie le gradient de la perte pour un seul point de

données (une seule instance).

Soit fi qui désigne la perte du réseau pour la i-ième instance.

Publicité

La fonction que nous voulons finalement minimiser est f, la perte totale dans tous les cas.

fi=l(𝑥𝑖,𝑦𝑖,w)

Dans SGD, nous mettons à jour les poids en fonction du gradient sur fi (par opposition au gradient

sur la perte totale f).

(i choisi uniformément au hasard)

Si i est choisi au hasard, alors fi est un estimateur bruyant mais non biaisé de f, qui s’écrit

mathématiquement comme :

Par conséquent, le k-ème pas prévu de la SGD est le même que le k-ème pas de la descente en

pleine pente :

Ainsi, toute mise à jour de la SGD est la même que la mise à jour complète attendue.

Cependant, la SGD n’est pas seulement une descente plus rapide avec du bruit. En plus d’être plus

rapide, la SGD peut également nous donner de meilleurs résultats que la descente de gradient

en batch complet. Le bruit dans la SGD peut nous aider à éviter les minima locaux peu

profonds et à trouver de meilleurs minima (plus profonds). Ce phénomène est

appelé annealing.

Figure 2 : Annealing avec SGD

En résumé, les avantages de la descente de gradient stochastique sont les suivants :

1. Il y a beaucoup d’informations redondantes d’une instance à l’autre. La SGD empêche

beaucoup de ces calculs redondants.

Publicité

2. Aux premiers stades, le bruit est faible par rapport aux informations du gradient. Par

conséquent, une étape SGD est virtuellement aussi bonne qu’une étape GD.

3. Le bruit dans la mise à jour de la SGD peut empêcher la convergence vers un mauvais

minimum local (peu profond).

4. La descente stochastique de gradient est considérablement moins coûteuse à calculer

(car vous ne passez pas en revue tous les points de données).

3. Mini-batching :

Avec le mini-batching, nous considérons la perte sur plusieurs instances choisies au hasard au

lieu de la calculer sur une seule instance. Cela permet de réduire le bruit lors de la mise à jour

des étapes.

Souvent, nous pouvons faire un meilleur usage de nos capacités de calcul en utilisant des mini-

batch au lieu d’une seule instance. Par exemple, les GPU sont mal utilisés lorsque nous effectuons

un entraînement avec une seule instance. Les techniques d’entraînement en réseau distribué

répartissent les mini-batchs entre les différentes machines et agrègent ensuite les gradients

résultants. En utilisant une telle distribution, Facebook a récemment entraîné un réseau sur les

données d’ImageNet en moins d’une heure (Goyal et al. (2018)). Il est important de noter que la

descente de gradient ne doit jamais être utilisée avec des batchs entier (taille entière).

4. Momentum :

Avec momentum, nous avons deux itérations (p et w) au lieu d’une seule. Les mises à jour sont les

Publicité

suivantes :

p est appelé le momentum da la SGD. À chaque étape de la mise à jour, nous ajoutons le gradient

stochastique à l’ancienne valeur du momentum, après l’avoir amorti d’un facteur β (valeur

comprise entre 0 et 1). On peut considérer p comme une moyenne mobile des gradients. Enfin,

nous déplaçons w dans la direction du nouvel élan p.

Forme alternative : « méthode stochastique de la boule lourde » :

Cette formule est mathématiquement équivalent à la précédente. Ici, l’étape suivante est une

combinaison de la direction de l’étape précédente (wk - wk−1) et du nouveau gradient négatif.

Informations pratiques

Le momentum doit presque toujours être utilisé avec une descente de gradient stochastique. β =

0,9 ou 0,99 fonctionne presque toujours bien.

La valeur du pas doit généralement être diminuée lorsque le paramètre de momentum est augmenté

pour maintenir la convergence. Si β passe de 0,9 à 0,99, le taux d’apprentissage doit être diminué

d’un facteur 10.

Visualiser l’effet du momentum - Source : distill.pub

Happy Learning 

Contact: [email protected]