Midiendo la magnitud de vectores en redes neuronales
La norma es una medida matemática que indica el tamaño o longitud de un vector. En redes neuronales, las normas son fundamentales para regularización, cálculo de distancias, estabilidad numérica y análisis de modelos.
Las dos normas más importantes en deep learning son:
- Norma L1
- Norma L2 (norma euclidiana)
Definición corta
Una norma es una función que mide la magnitud de un vector.
Definición detallada
Dado un vector:
🔹 Norma L1
👉 Suma de valores absolutos.
🔹 Norma L2
👉 Distancia euclidiana (la más común).
Intuición
La norma mide qué tan grande es un vector.
Ejemplo:
- Norma L1 → 3+4=7
- Norma L2 → 9+16=5
👉 La L2 representa la distancia real en el espacio.
Interpretación geométrica
Norma L2
Es la distancia desde el origen:
👉 Como medir la longitud de una flecha en el espacio.
Norma L1
Es la distancia “por ejes”:
👉 Como moverse en una cuadrícula (tipo Manhattan).
Comparación L1 vs L2
| Propiedad | Norma L1 | Norma L2 |
|---|---|---|
| Cálculo | Suma absoluta | Raíz cuadrada |
| Sensibilidad | Menos sensible a outliers | Más sensible |
| Efecto | Sparsity | Suavizado |
| Geometría | Forma de diamante | Forma circular |
Normas en redes neuronales
🔹 1. Regularización
L1 (Lasso)
👉 Promueve:
- Pesos exactamente cero
- Modelos más simples
L2 (Ridge)
👉 Promueve:
- Pesos pequeños
- Estabilidad
🔹 2. Control de magnitud
Evita que los pesos crezcan demasiado.
🔹 3. Cálculo de distancias
Usado en:
- KNN
- Clustering
- Embeddings
🔹 4. Normalización
Escalar vectores para estabilidad:
Ejemplo paso a paso
L1
L2
Relación con otros conceptos
- Distancia
- Regularización
- Gradiente
- Optimización
- Espacio vectorial
Ejemplo en Python
# Cálculo manualx = [1, -2, 3]l1 = sum(abs(v) for v in x)l2 = sum(v**2 for v in x) ** 0.5print("Norma L1:", l1)print("Norma L2:", l2)
Ejemplo en NumPy
import numpy as npx = np.array([1, -2, 3])l1 = np.linalg.norm(x, ord=1)l2 = np.linalg.norm(x, ord=2)print("L1:", l1)print("L2:", l2)
Ejemplo en PyTorch
import torchx = torch.tensor([1.0, -2.0, 3.0])l1 = torch.norm(x, p=1)l2 = torch.norm(x, p=2)print("L1:", l1.item())print("L2:", l2.item())
Ejemplo con regularización
import torchw = torch.tensor([0.5, -1.2, 0.3], requires_grad=True)# L1 regularizationl1_reg = torch.norm(w, p=1)# L2 regularizationl2_reg = torch.norm(w, p=2)loss = l1_reg + l2_regloss.backward()print("Loss:", loss.item())print("Gradiente:", w.grad)
Qué muestra este ejemplo
- Las normas se usan directamente en la función de pérdida
- Generan gradientes que afectan los pesos
- Influyen en el entrenamiento
Errores comunes
Confundir L1 y L2
Tienen efectos muy diferentes en el modelo.
Ignorar el cuadrado en L2
En regularización suele usarse ∣∣w∣∣22
No normalizar vectores
Puede afectar estabilidad numérica.
Ejemplo conceptual en ML
Embedding:
[0.2, 0.5, 0.3]
Norma:
👉 indica qué tan “fuerte” es la representación.
Interpretación profunda
Las normas permiten:
- medir magnitudes
- controlar complejidad del modelo
- mejorar generalización
- estabilizar entrenamiento
👉 Son esenciales en casi todos los algoritmos de machine learning.
Conclusión
La norma (L1 y L2) es una herramienta fundamental para medir magnitudes y controlar el comportamiento de los modelos. No solo describe vectores, sino que también juega un papel clave en la regularización y la estabilidad del entrenamiento.
👉 Entender normas significa entender cómo mantener modelos eficientes y robustos.
Related Concepts
- Vector
- Distancia
- Regularización
- Gradiente
- Optimización
- Espacio vectorial