Descente graduelle

apprentissage profond
mathématiques
descente de gradient
Descente graduelle cover image

Introduction

Imaginez que nous ayons une fonction f(x)f(x) et que nous aimerions trouver son minimum. Que feriez-vous ?

Simple, non ? Il suffit de résoudre l'équation suivante :

f(x)=0f'(x) = 0

Le fait est que trouver la formule de ff' n'est pas toujours facile car elle a tendance à être extrêmement compliquée, surtout en apprentissage profond où nous traitons de fonctions complexes. Nous devons donc trouver une autre méthode qui puisse nous fournir le minimum d'une fonction sans avoir besoin de trouver la formule de la dérivée ff'.

Construisons une certaine intuition

Supposons que nous ayons une fonction f avec le graphe correspondant :

Graph 1

Commençons par un point aléatoire x0x_{0}. Le but est de déplacer ce point et de le rapprocher de plus en plus de xx* tel que f(f'(x*)=0) = 0. Le problème peut donc être divisé en deux parties :

  • Dans quelle direction doit-on déplacer le point xx ? Gauche ou droite ?

  • De combien doit-on le déplacer ?

La direction

Construisons une certaine intuition afin de répondre à la première question. Jetez un œil au point suivant :

Graph 2

Graph 3

Noter que:

  • lorsque le point x0x_{0} est à droite du point optimal xx* sa tangente monte.

  • lorsque le point x0x_{0} est à droite du point optimal xx* sa tangente descend.

La direction d'une ligne est déterminée par le signe de sa pente :

  • Une ligne monte \implique\implique la pente aa est positive.

  • Une ligne descend \implique\implique la pente aa est négative.

Notez que : \

La pente de la tangente d'une fonction en un certain point x0x_{0} n'est pas supérieure à la dérivée en ce point f(x0)f'(x_{0}) :

tangent(x0):g(x)=f(x0).(xx0)+f(x0)tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0})

Donc, pour répondre à la question "Où devrions-nous déplacer x0x_{0} ?" :

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} à droite de xx*     \implies Nous devons déplacer x0x_{0} vers la gauche.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} à gauche de xx*     \implies Nous devons déplacer x0x_{0} vers la droite.

Les marches

Passons maintenant à la deuxième question : De combien devrions-nous déplacer x0x_{0} ?

Jetez un œil aux exemples suivants :

Graph 4

Graph 5

Nous pouvons conclure que:

  • x0x_{0} est proche de xx* => La pente de la tangente est petite => f(x0)f'(x_{0}) est petite.

  • x0x_{0} est éloigné de xx* => La pente de la tangente est grande => f(x0)f'(x_{0}) est grande.

En répondant aux deux questions, nous avons conclu que seule la connaissance de la dérivée au point x0x_{0} peut nous donner de nombreuses informations sur la direction et la distance du point optimal x0x_{0}.

Descente graduelle

La descente de gradient est la formulation des réponses aux deux questions précédentes. Il s'agit d'un algorithme itératif d'optimisation qui se rapproche du xx* minimum de la fonction à partir d'un point initial aléatoire x0x_{0}. L'algorithme s'énonce comme suit :

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

où:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} n'est rien de plus que la dérivée de ff au point xnx*{n}.

  • lrlr est une constante positive qui détermine l'ampleur des pas.

Remarquerez que:

  • xnx_{n} est à droite de xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnpositifx_{n+ 1} = x_{n} - positif => xnx_{n} se déplace vers la gauche.

  • xnx_{n} est à gauche de xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+positifx*{n +1} = x*{n} + positif => xnx_{n} se déplace vers la droite.

  • xnx_{n} proche de xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} proche de 00 => Petite mise à jour de xnx_{ n}.

Quizz

  • Quand la descente de gradient arrête-t-elle d'itérer :

  • Lorsque xnx_{n} est suffisamment petit.

  • Lorsque xnx_{n} est proche de x0x_{0} .

  • Lorsque dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 . XXX

  • Comment choisissons-nous x0x_{0} :

  • Nous le choisissons au hasard. XXX

  • On le prend aux alentours de xnx{n}.

  • Cela dépend du problème.

  • Pourquoi avons-nous besoin d'une descente de pente :

  • Parce que les ordinateurs ne sont pas assez puissants pour calculer des dérivées.

  • Parce qu'il est extrêmement difficile de trouver les formules dérivées des modèles de deep learning. XXX

  • Parce que les fonctions ont plus d'un minimum local.


Career Services background pattern

Services de carrière

Contact Section background image

Restons en contact

Code Labs Academy © 2025 Tous droits réservés.