ParcoursOuvrir l'appli

Les dérivées : la pente

Les maths du ML, en code · 45 min

La pente d'une courbe

Tu marches sur une colline dans le brouillard. Tu ne vois pas le sommet, ni le fond de la vallée. Mais sous tes pieds, tu sens si le sol monte ou descend, et à quel point. Cette information locale, la pente, suffit pour trouver le fond de la vallée : il suffit de toujours marcher vers le bas.

C'est l'idée qui fait apprendre presque tous les modèles de machine learning. Il faut d'abord savoir mesurer la pente.

Pour une courbe, la pente change à chaque endroit. Sur la courbe y = x² (une parabole en forme de U) : à gauche du creux elle descend, à droite elle monte, et tout au fond, en x = 0, elle est plate.

La calculer avec un ordinateur

On peut l'approcher très simplement : on avance d'un tout petit pas h, on regarde de combien la fonction a changé, et on divise par h.

f'(x) ≈ ( f(x + h) - f(x) ) / h, avec h très petit, par exemple 0,000001.

def f(x):
    return x ** 2

h = 0.000001
x = 3
print((f(x + h) - f(x)) / h)      # environ 6.000001

Au lycée, tu as peut-être appris les règles exactes : la dérivée de x² est 2x. En x = 3, elle vaut 6 : la dérivée numérique retrouve bien ce résultat.

Exercice : Une fonction qui dérive les autres

Écris derivee(f, x) qui renvoie la dérivée numérique de la fonction f au point x, avec h = 0,000001.

Oui, en Python, on peut passer une fonction en paramètre à une autre fonction, comme n'importe quelle valeur : c'est ce que tu faisais déjà avec key= dans sorted et max.

Voir une solution
def derivee(f, x):
    """Renvoie la pente de la courbe de f au point x (dérivée numérique)."""
    h = 0.000001
    return (f(x + h) - f(x)) / h


def carre(x):
    return x ** 2


print(derivee(carre, 3))

Dans l'appli, ton code est exécuté et corrigé automatiquement. Faire l'exercice

Trouver le minimum

Au fond de la vallée, le sol est plat : la pente vaut 0. C'est vrai pour toute courbe en U : son minimum est l'endroit où la dérivée s'annule.

Et ailleurs, le signe de la dérivée dit dans quel sens aller :

Dérivée La courbe... Pour descendre, il faut...
positive monte vers la droite aller à gauche (diminuer x)
négative descend vers la droite aller à droite (augmenter x)
nulle est plate rester : on est au fond

Dans les deux cas, on va dans le sens opposé au signe de la dérivée. En une formule :

nouveau x = x - pas x dérivée

C'est la descente de gradient, le moteur de l'apprentissage. Si la dérivée est grande, on fait un grand pas ; si elle est petite, on est presque au fond, on fait un petit pas.

Teste-toi

En x = 4, la dérivée d'une fonction vaut -2. Pour se rapprocher de son minimum, il faut...
  1. diminuer x
  2. augmenter x (bonne réponse)
  3. ne rien changer, on est au minimum
  4. doubler la fonction