Middle — Senior
¿Por qué la regularización L1 pone a cero algunos pesos, mientras que la L2 no?
sobes.tech AI
Respuesta de la IA
La regularización L1 (Lasso) añade a la función de pérdida la suma de los valores absolutos de los pesos (||w||₁), lo que conduce a la aparición de puntos angulosos en la superficie de optimización. Esto favorece que la solución óptima tenga valores exactamente nulos para algunos pesos, es decir, que los anule, proporcionando esparsidad en el modelo.
La regularización L2 (Ridge) añade la suma de los cuadrados de los pesos (||w||₂²), creando una superficie parabólica suave sin ángulos. Como resultado, los pesos disminuyen, pero rara vez se vuelven exactamente nulos, ya que la optimización busca valores pequeños pero no nulos.
Ejemplo:
import numpy as np
from sklearn.linear_model import Lasso, Ridge
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])
lasso = Lasso(alpha=0.1)
lasso.fit(X, y)
print('Pesos L1:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Pesos L2:', ridge.coef_)
Aquí, L1 puede poner a cero algunos pesos, mientras que L2 solo los reduce.