Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 7

Vector Norms: L1 and L2

Recommended resources

Bonjour ! Dans la leçon précédente, nous avons conclu notre étude des opérations sur les matrices en apprenant à calculer l'inverse d'une matrice 2x2. Nous avons vu la formule, mais aussi l'approche pratique avec NumPy, un pont entre la théorie et l'application qui sera essentiel pour vous.

Aujourd'hui, nous allons revenir aux vecteurs pour explorer une de leurs propriétés les plus fondamentales : leur "taille" ou "longueur". En algèbre linéaire, cette notion est formalisée par le concept de norme. Comprendre les normes est crucial, car elles sont utilisées partout en apprentissage automatique, que ce soit pour mesurer l'erreur d'un modèle, pour comprendre la distance entre des points de données, ou pour régulariser des modèles afin d'éviter le surapprentissage.

Dans cette leçon, vous apprendrez à calculer les deux normes de vecteurs les plus courantes : la norme L1 et la norme L2.

Qu'est-ce qu'une norme de vecteur ?

Intuitivement, lorsque nous pensons à la longueur d'un vecteur, nous imaginons la distance en ligne droite de l'origine à la pointe de sa flèche. C'est une excellente intuition, mais ce n'est qu'une des nombreuses manières de mesurer la "taille" d'un vecteur. Une norme est une fonction qui prend un vecteur en entrée et renvoie un nombre scalaire non négatif représentant sa magnitude.

La courte vidéo suivante de la chaîne Normalized Nerd offre une excellente introduction visuelle à ce concept.

What is Norm in Machine Learning?

Cette vidéo explique de manière simple et visuelle ce qu'est une norme et présente l'intuition derrière les normes L1 et L2.

Regardez l'intégralité de la vidéo (2 minutes). Elle établit une base solide en définissant ce qu'est une norme, en introduisant la norme L2 comme la distance euclidienne intuitive, puis la norme L1 comme une alternative.


La norme L2 : Distance Euclidienne

Comme la vidéo le mentionne, la norme L2 est la plus intuitive. Elle correspond à ce que nous appelons la distance euclidienne, que vous avez probablement déjà rencontrée avec le théorème de Pythagore. C'est la distance "à vol d'oiseau" entre l'origine et le point défini par le vecteur.

Pour un vecteur , la formule de la norme L2, notée , est :

Cette norme est si courante qu'elle est souvent notée simplement sans le sous-indice 2.

Vector Norms: L1 and L2 Norms - ApX Machine Learning

Cet article d'ApX Machine Learning détaille la formule de la norme L2 et l'illustre avec un exemple simple.

Lisez la section intitulée "The L2 Norm: Euclidean Distance". Faites attention à la formule et à la manière dont elle est appliquée au vecteur [3, 4].

Prenons l'exemple de l'article avec le vecteur .
Le calcul de sa norme L2 est :

La longueur euclidienne du vecteur est de 5 unités.


La norme L1 : Distance de Manhattan

La norme L1 propose une autre façon de mesurer la longueur. Au lieu de la ligne droite, elle mesure la distance en suivant les axes du repère. On l'appelle souvent la "distance de Manhattan" ou "distance du taxi", en imaginant un taxi qui se déplace dans une ville au plan quadrillé et ne peut pas traverser les immeubles.

La formule de la norme L1, notée , est la somme des valeurs absolues de ses composantes :

Vector Norms: L1 and L2 Norms - ApX Machine Learning

Continuons avec le même article pour comprendre la norme L1 et la comparer directement à la norme L2.

Lisez la section intitulée "The L1 Norm: Manhattan Distance". L'analogie avec la distance de Manhattan est la clé pour saisir l'intuition.

Reprenons notre vecteur .
Le calcul de sa norme L1 est :

Pour le même vecteur, nous obtenons deux "longueurs" différentes : 5 (L2) et 7 (L1). L'image ci-dessous illustre bien cette différence.

Cette illustration montre comment un même vecteur d'entrée, \([3, 4]\), produit des valeurs de sortie différentes en fonction de la norme appliquée. Nous voyons ici les résultats pour les normes L1 (7) et L2 (5).

Interprétation Géométrique

Une manière très puissante de visualiser la différence entre ces normes est de tracer tous les vecteurs qui ont une longueur de 1.

  • Avec la norme L2, l'ensemble des points tels que forme un cercle.
  • Avec la norme L1, l'ensemble des points tels que forme un losange (ou un carré tourné de 45 degrés).
Cette image compare les "cercles unité" pour la norme 2 (à gauche) et la norme 1 (à droite). Elle montre l'ensemble de tous les points situés à une distance de 1 de l'origine selon chaque norme.

Cette différence géométrique a des implications profondes en apprentissage automatique, notamment dans les techniques de régularisation (Lasso et Ridge) que vous étudierez plus tard.


Calcul pratique avec NumPy

Comme toujours, nous nous tournons vers NumPy pour les calculs pratiques. La fonction numpy.linalg.norm() est l'outil parfait pour cela. Par défaut, elle calcule la norme L2, mais on peut spécifier la norme L1 avec l'argument ord=1.

Vector Norms: L1 and L2 Norms - ApX Machine Learning

L'article d'ApX Machine Learning conclut en montrant comment effectuer ces calculs en Python, ce qui correspond à votre objectif pratique.

Lisez la dernière section, "Calculating Norms with NumPy". Examinez attentive-ment le code Python et comment le paramètre ord est utilisé pour basculer entre les normes L1 et L2.

Voici comment l'utiliser en pratique. Créons un vecteur et calculons ses deux normes :

import numpy as np




# Définir un vecteur
v = np.array([3, -4])




# Calculer la norme L2 (par défaut)
l2_norm = np.linalg.norm(v)
print(f"Vecteur: {v}")
print(f"Norme L2 (Euclidienne): {l2_norm}")




# Calculer la norme L1 (en spécifiant ord=1)
l1_norm = np.linalg.norm(v, ord=1)
print(f"Norme L1 (Manhattan): {l1_norm}")

Résultat attendu :

Vecteur: [ 3 -4]
Norme L2 (Euclidienne): 5.0
Norme L1 (Manhattan): 7.0

Notez que pour la norme L1, on utilise la valeur absolue : .

La vidéo suivante de Jon Krohn montre également comment effectuer ces calculs en Python, d'abord "manuellement" puis avec NumPy, ce qui peut aider à solidifier votre compréhension.

Norms and Unit Vectors — Topic 6 of Machine Learning Foundations

Cette vidéo offre une explication détaillée des normes L2 et L1 avec des démonstrations de code concrètes.

Regardez la présentation de la norme L2 et sa notation. Puis, suivez la démonstration en Python qui montre le calcul manuel et celui avec NumPy. Enfin, regardez l'introduction à la norme L1 et son calcul.


Conclusion

Dans cette leçon, nous avons appris à quantifier la taille d'un vecteur à l'aide des normes, un concept fondamental pour la suite de votre parcours.

Voici les points essentiels à retenir :

  • Une norme est une fonction qui mesure la "longueur" ou la "magnitude" d'un vecteur.
  • La norme L2 (ou Euclidienne) est la distance en ligne droite de l'origine au point, calculée avec la racine carrée de la somme des carrés des composantes. C'est la notion de distance la plus courante.
  • La norme L1 (ou de Manhattan) est la distance parcourue en suivant les axes, calculée comme la somme des valeurs absolues des composantes.
  • En pratique, la fonction numpy.linalg.norm(v, ord=...) est l'outil à utiliser en Python pour calculer efficacement ces normes.

Nous avons maintenant presque terminé notre exploration des fondations de l'algèbre linéaire. Dans la prochaine et dernière leçon de ce module, nous aborderons un sujet puissant et élégant : les vecteurs propres et valeurs propres. Nous découvrirons comment certaines transformations matricielles agissent sur des vecteurs spéciaux en ne faisant que les étirer ou les contracter, sans changer leur direction. Ce concept est au cœur d'algorithmes majeurs en apprentissage automatique comme l'Analyse en Composantes Principales (ACP).