Régularisation à des fins de parcimonie: régularisation L1

Les vecteurs creux contiennent souvent de nombreuses dimensions. La création d'un croisement de caractéristiques donne encore plus de dimensions. Compte tenu de ces vecteurs de caractéristiques de grande dimension, la taille du modèle peut devenir considérable et nécessiter d'énormes quantités de RAM.

Dans un vecteur creux de grande dimension, il est judicieux de favoriser des pondérations exactement égales à 0 lorsque cela est possible. Une pondération exactement égale à zéro supprime la caractéristique correspondante du modèle. La mise à zéro des caractéristiques permet d'économiser de la RAM et de réduire le bruit dans le modèle.

Prenons l'exemple d'un ensemble de données sur le logement qui ne couvre pas seulement la Californie, mais le monde entier. Le binning des latitudes mondiales par minute (60 minutes par degré) donne environ 10 000 dimensions avec un encodage creux, tandis que la longitude mondiale au niveau des minutes donne environ 20 000 dimensions. Un croisement de ces deux caractéristiques donne environ 200 000 000 de dimensions. Nombre de ces 200 000 000 de dimensions représentent des zones de résidence si limitées (par exemple, le milieu de l'océan) qu'il serait difficile d'utiliser ces données pour une généralisation efficace. Il serait absurde de payer le coût de la RAM pour stocker ces dimensions inutiles. Il est donc conseillé que les pondérations des dimensions insignifiantes tombent exactement à 0, ce qui nous permettrait d'éviter de payer le coût de stockage de ces coefficients du modèle au moment de l'inférence.

Nous pouvons peut-être encoder cette idée dans le problème d'optimisation effectué lors de l'entraînement, en ajoutant un terme de régularisation approprié.

La régularisation L2 remplirait-elle cette tâche ? Malheureusement, non. La régularisation L2 réduit les pondérations, mais ne les oblige pas à être exactement égales à 0,0.

Une autre idée consisterait à essayer de créer un terme de régularisation qui pénalise le nombre de valeurs de coefficient non nulles dans un modèle. L'augmentation de ce nombre n'est justifiée que s'il y a eu un gain suffisant dans la capacité du modèle à intégrer les données. Malheureusement, bien que cette approche basée sur le nombre soit intuitivement attrayante, elle transformerait notre problème d'optimisation convexe en un problème d'optimisation non convexe. En pratique, cette idée, appelée régularisation L0, ne peut donc pas être utilisée efficacement.

Cependant, il existe un facteur de régularisation appelé L1 qui se rapproche de L0, mais a l'avantage d'être convexe et donc d'être efficace en calcul. Nous pouvons donc utiliser la régularisation L1 pour encourager un grand nombre de coefficients non informatifs de notre modèle à être exactement 0, et ainsi économiser de la RAM au moment de l'inférence.

Comparaison entre les régularisations L1 et L2

L2 et L1 pénalisent les pondérations différemment:

  • La pénalisation L2 entraîne la pondération2.
  • Pénalité L1 |pondération|.

Par conséquent, L2 et L1 ont des dérivées différentes:

  • La dérivée de L2 est 2 * pondération.
  • La dérivée de L1 est k (une constante, dont la valeur est indépendante de la pondération).

La dérivée de L2 est comparable à une force qui retire x% de la pondération à chaque fois. Comme le savait Zeno, même si vous supprimez x pour cent d'un nombre de milliards de fois, le nombre réduit ne sera jamais tout à fait égal à zéro. (Zeno connaissait moins les limitations de la précision à virgule flottante, qui pouvaient parfois produire exactement zéro.) Quoi qu'il en soit, L2 ne fait généralement pas baisser les pondérations à zéro.

La dérivée de L1 est comparable à une force qui soustrait une constante de la pondération à chaque fois. Cependant, grâce aux valeurs absolues, L1 présente une discontinuité à 0, ce qui entraîne la remise à zéro des résultats de la soustraction qui dépassent 0. Par exemple, si la soustraction aurait forcé une pondération de +0,1 à -0,2, L1 définira la pondération sur exactement 0. Eureka, L1 a remis à zéro la pondération.

La régularisation L1, c'est-à-dire pénaliser la valeur absolue de toutes les pondérations, s'avère particulièrement efficace pour les modèles larges.

Notez que cette description est vraie pour un modèle unidimensionnel.

Cliquez sur le bouton de lecture () ci-dessous pour comparer l'effet des régularisations L1 et L2 sur un réseau de pondérations.