Quasi tous les tutoriels, cours ou articles de blog parlant de la régularisation L2 que j'ai pu voir n'abordent qu'une seule chose :

❝

La régularisation L2 est une technique de machine learning qui évite l'overfitting en ajoutant un terme de pénalité à la loss function du modèle, basé sur le carré de ses paramètres.

Dans les tâches de classification, par exemple, augmenter l'effet de la régularisation produit des frontières de décision plus simples.

Bien sûr, ces affirmations sont tout à fait correctes, et je ne le nie absolument pas.

D'ailleurs, on peut le vérifier avec le schéma ci-dessous :

Comparaison des frontières de décision selon la valeur du paramètre de régularisation λ sur 5 datasets

Sur l'image ci-dessus, plus on se déplace vers la droite, plus le paramètre de régularisation augmente, et le modèle crée une frontière de décision plus simple sur les 5 datasets.

Revenons à notre sujet…

Ce qui me déçoit le plus, c'est que la plupart des ressources ne mentionnent pas que la régularisation L2 est un excellent remède contre la multicolinéarité.

La multicolinéarité apparaît quand deux (ou plusieurs) features sont fortement corrélées, OU quand deux (ou plusieurs) features permettent de prédire une autre feature :

Illustration de la multicolinéarité entre featureA, featureB et featureC

Quand on utilise la régularisation L2 dans une régression linéaire, l'algorithme est aussi appelé Ridge regression.

Formule de la ridge regression : somme des carrés des résidus plus la pénalité L2

Mais comment la régularisation L2 élimine-t-elle la multicolinéarité ?

Aujourd'hui, je vais te donner une intuition démonstrative sur ce sujet, qui expliquera aussi pourquoi la "ridge regression" porte ce nom.

C'est parti !

Dataset factice

Pour la démonstration, prenons ce dataset factice à deux features :

Code Python : dataset factice avec featureB corrélée à featureA pour illustrer la multicolinéarité

Comme montré ci-dessus, on a volontairement rendu featureB fortement corrélée à featureA. Cela nous donne un dataset factice avec lequel travailler.

❝

Pour la suite, on va ignorer tout terme d'intercept, histoire de simplifier.

Régression linéaire sans pénalité L2

Lors de la modélisation par régression, l'objectif est de déterminer les paramètres spécifiques (θ₁, θ₂) qui minimisent la somme des carrés des résidus (RSS) :

Formule de la somme des carrés des résidus (RSS) à minimiser

Voici ce qu'on va faire :

On va tracer la valeur du RSS pour de nombreuses combinaisons différentes de paramètres (θ₁, θ₂). Cela va créer un graphique 3D :

  • axe x → θ₁

  • axe y → θ₂

  • axe z → valeur du RSS

Ensuite, on va examiner visuellement ce graphique pour repérer les paramètres spécifiques (θ₁, θ₂) qui minimisent la valeur du RSS.

Allons-y.

Sans la pénalité L2, on obtient le graphique suivant (c'est le même graphique, mais vu sous différents angles) :

Graphique 3D du RSS sans régularisation L2, montrant une vallée

Tu as remarqué quelque chose ?

Le graphique 3D présente une vallée. Il existe plusieurs combinaisons de valeurs de paramètres (θ₁, θ₂) pour lesquelles le RSS est minimal.

Il est donc impossible d'obtenir une valeur unique pour les paramètres (θ₁, θ₂) qui minimisent le RSS.

Régression linéaire avec pénalité L2

Quand on utilise une pénalité L2, l'objectif est de minimiser l'expression suivante :

Formule de la somme des carrés des résidus additionnée de la pénalité L2

En traçant à nouveau le même graphique que précédemment, on obtient ceci :

Graphique 3D du RSS avec régularisation L2, sans vallée

Tu remarques quelque chose de différent cette fois-ci ?

Comme le montre l'image ci-dessus, l'utilisation de la régularisation L2 supprime la vallée qu'on avait observée plus tôt et donne un minimum global à l'erreur RSS.

Il est désormais possible d'obtenir une valeur unique pour les paramètres (θ₁, θ₂) qui minimise le RSS.

Comme par magie, la régularisation L2 nous a permis d'éliminer la multicolinéarité.

Pourquoi le nom "ridge regression" ?

C'est d'ailleurs de là que vient le nom "ridge regression" : elle élimine la crête ("ridge") présente dans la fonction de vraisemblance quand on applique la pénalité L2.

Comparaison visuelle entre une vallée et une crête en montagne

Bien sûr, dans les démonstrations qu'on vient de voir, on a observé une vallée, pas une crête.

Cependant, dans ce cas, on considérait la somme des carrés des résidus, une grandeur qu'on minimise pour obtenir les paramètres optimaux.

La fonction d'erreur donne donc logiquement une vallée.

Si on utilisait plutôt la vraisemblance, une grandeur qu'on cherche à maximiser, cela inverserait (en quelque sorte) le graphique et donnerait une crête à la place :

Transformation du graphique RSS (vallée) en fonction de vraisemblance (crête)

Apparemment, c'est la fonction de vraisemblance qui a été prise en compte au moment de nommer l'algorithme.

Et c'est pour ça qu'on l'a appelé "ridge regression".

Plutôt cool, non ?

Quand j'ai découvert ça il y a quelques années, je n'avais littéralement aucune idée qu'on avait réfléchi aussi profondément avant de nommer la ridge regression.

J'espère que tu as appris quelque chose de nouveau aujourd'hui :)

Si tu veux en savoir plus sur l'origine probabiliste de la régularisation L2, jette un œil à cet article :

Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.

👉 À toi de jouer : quels sont, selon toi, d'autres avantages de la régularisation L2 ?


Commentaires

Avatar

ou participer

À lire ensuite

Des shots dans la même veine, à lire entre deux tâches.

Voir tous les shots
caret-right