Skip to content

English · Español

04 — Normas, normas de operador, condicionamiento

🇪🇸 Una norma asigna un "tamaño" a vectores y matrices. La elección de la norma cambia el significado de "grande" y "pequeño". ||Ax|| ≤ ||A||·||x|| es la desigualdad central; toda el análisis de estabilidad de IA se apoya en ella. Ejemplo: la norma de un vector de logits de tiempos verbales nos dice si el modelo es "confiado" o "indeciso".


Normas vectoriales

Una norma asigna un número real no negativo ||v|| a cada vector v, satisfaciendo:

  1. ||v|| ≥ 0, con igualdad sii v = 0.
  2. ||c v|| = |c| ||v|| para escalar c (homogeneidad positiva).
  3. ||u + v|| ≤ ||u|| + ||v|| (desigualdad triangular).

La familia estándar en ML es la p-norma:

\[ \|v\|_p = \left(\sum_i |v_i|^p\right)^{1/p} \]

Casos especiales:

Norma Fórmula Interpretación
||v||_1 Σ |v_i| Peso absoluto total. Robusta a outliers, promueve sparsity.
||v||_2 (Euclídea) √(Σ v_i²) Longitud geométrica estándar. Usada en todas partes en ML.
||v||_∞ max |v_i| Mayor componente. Usada en gradient clipping.
||v||_0 (no es una norma real) conteo de entradas no nulas Sparsity. Optimizada vía relajación L1.

Equivalencias (en dimensiones finitas):

  • ||v||_∞ ≤ ||v||_2 ≤ ||v||_1
  • ||v||_1 ≤ √n ||v||_2
  • ||v||_2 ≤ √n ||v||_∞

Estas implican que "convergencia en cualquier p-norma" es equivalente a "convergencia en cualquier otra p-norma" en dimensiones finitas — pero las constantes difieren, lo que importa para cotas numéricas.

Ejemplos §A13 de normas vectoriales

Toma un vector de logits de clasificación de tiempo verbal de longitud 5 x = [1.2, 4.7, 3.1, 0.5, 2.9]:

  • ||x||_1 = 1.2 + 4.7 + 3.1 + 0.5 + 2.9 = 12.4
  • ||x||_2 = √(1.44 + 22.09 + 9.61 + 0.25 + 8.41) = √41.8 ≈ 6.47
  • ||x||_∞ = 4.7 (el logit de "present"; la clase más confiada del modelo)

Tras el softmax, el vector de probabilidades p ≈ [0.018, 0.612, 0.124, 0.009, 0.237]:

  • ||p||_1 = 1.0 (siempre, por construcción de una probabilidad)
  • ||p||_2 ≈ 0.678 (no es el máximo; el máximo sería uniforme)
  • ||p||_∞ ≈ 0.612 (la confianza predicha de la clase del modelo)

||p||_∞ es una métrica natural de "confianza" para un clasificador. ||p||_2 es la "concentración": picos cerca de 1.0 cuando el modelo está seguro de una clase, cerca de 1/√5 ≈ 0.447 cuando es uniforme. Úsalas en el harness de evaluación (Fase 20).

Normas matriciales

Las matrices necesitan normas de operador — medidas de cuánto puede estirar la matriz a un vector. Para cada norma vectorial ||·||_p, hay una norma matricial inducida:

\[ \|A\|_p = \max_{x \neq 0} \frac{\|Ax\|_p}{\|x\|_p} = \max_{\|x\|_p = 1} \|Ax\|_p \]

Casos especiales:

Norma Fórmula Interpretación
||A||_1 max_j Σ_i |A_{ij}| Máxima suma absoluta por columna
||A||_2 (norma de operador) σ_1 (mayor valor singular) Máximo factor de estiramiento
||A||_∞ max_i Σ_j |A_{ij}| Máxima suma absoluta por fila
||A||_F (Frobenius) √(Σ |A_{ij}|²) = √(Σ σ_i²) L2 elementwise; no es norma de operador

La norma de operador ||A||_2 = σ_1 es la más importante. Se deriva en theory/03-svd-and-rank.md y se usa en todas partes donde se discute estabilidad (gradient clipping, regularización por norma de pesos, normalización espectral, cotas de Lipschitz).

La norma de Frobenius ||A||_F es fácil de calcular (suma de cuadrados, raíz cuadrada) y no es una norma de operador — en su lugar es la norma L2 de la matriz vista como un vector plano. Es igual a √(Σ σ_i²). A veces es un proxy útil cuando σ_1 es caro de calcular (pero para nuestras matrices pequeñas, la SVD es barata).

La desigualdad central

Para cualquier norma de operador ||·||_p:

\[ \|Ax\|_p \leq \|A\|_p \|x\|_p \]

Esta es la submultiplicatividad de la norma de operador respecto de vectores. Demostración:

\[ \frac{\|Ax\|_p}{\|x\|_p} \leq \max_{y \neq 0} \frac{\|Ay\|_p}{\|y\|_p} = \|A\|_p \]

(La definición de ||A||_p es el máximo de ese cociente, así que cualquier x particular da un cociente a lo sumo ||A||_p.)

Para dos matrices A, B:

\[ \|AB\|_p \leq \|A\|_p \|B\|_p \]

Demostración: ||AB x|| = ||A (Bx)|| ≤ ||A|| ||Bx|| ≤ ||A|| ||B|| ||x||. Tomando sup sobre ||x||_p = 1.

Esta es la submultiplicatividad de las normas de operador. Implica que si compones L mapas lineales cada uno con ||A||_2 ≤ 1, la composición tiene norma de operador ≤ 1. La normalización espectral usa esto para acotar la constante de Lipschitz de una red.

Número de condición

El número de condición de una matriz A (respecto de la norma L2) es:

\[ \kappa(A) = \|A\|_2 \cdot \|A^{-1}\|_2 = \frac{\sigma_1}{\sigma_n} \]

Si A es cuadrada e invertible. (Para no cuadrada, κ = σ_max / σ_min donde el mínimo es sobre σ no nulos.)

El número de condición mide cuánto amplifica Ax = b las pequeñas perturbaciones en x. Si κ(A) = 10^6, entonces resolver Ax = b puede amplificar una perturbación de 10^{-7} en b a una perturbación de 0.1 en x. Malas noticias para la estabilidad numérica.

Las matrices con σ_n ≈ 0 son casi singularesκ → ∞. Aparecen en:

  • Modelos lineales sobreparametrizados con features colineares.
  • Attention cuando muchos tokens tienen embeddings casi idénticos.
  • Cómputo de gradientes cuando las activaciones abarcan muchos órdenes de magnitud.

El arreglo suele ser uno de: regularización (sumar λ I a A, elevando σ_min), precondicionamiento (multiplicar por una M bien condicionada), o simplemente usar SVD en lugar de inversa (más estable).

Norma de Frobenius y la traza

Para matrices reales, ||A||_F² = trace(A^T A). Dos consecuencias:

  1. ||A||_F² es la suma de los valores singulares al cuadrado: Σ σ_i². (Lo mismo que la traza de Σ².)
  2. El producto interno de Frobenius <A, B>_F = trace(A^T B) = Σ_{ij} A_{ij} B_{ij} es el producto interno natural sobre el espacio de matrices. Usado en cómputo de gradientes (la derivada de Frobenius de f(A) es la matriz de derivadas parciales).

Para la matriz de conteos de conjugaciones §A13 C de shape (20, 15):

  • ||C||_F² = Σ_{ij} C_{ij}² — cálculo directo.
  • Igual a Σ σ_i² a partir de la SVD — da un cálculo alternativo que también es una comprobación de cordura.

Por qué las normas importan en ML

Cinco usos concretos:

  1. Gradient clipping (Fase 18). Cuando ||grad||_2 > τ, reescala grad ← τ · grad / ||grad||. Acota el tamaño de paso del optimizador; previene explosiones de pérdida en batches malos.
  2. Regularización de pesos. La regularización L2 añade λ ||W||_F² a la pérdida; la L1 añade λ ||W||_1. Ambas penalizan pesos "grandes", con distintos comportamientos de sparsity.
  3. Inicialización (Fase 10). Xavier/Glorot elige Var(W) = 2/(fan_in + fan_out) para que ||W|| ni sea demasiado grande ni demasiado pequeño — manteniendo las activaciones acotadas.
  4. LayerNorm / RMSNorm (Fase 10). Ambas normalizan las activaciones para tener ||x||_2 = √D (o similar), eliminando la dependencia de la escala de entrada.
  5. Normalización espectral. Divide W por σ_max(W) para que ||W||_2 = 1. Acota la constante de Lipschitz de la capa por 1. Usado en algunas GANs y trabajo de análisis.

Ejemplo §A13 — acotando el cambio en los logits de tiempos verbales

Supón que la matriz de pesos del clasificador de tiempos W de shape (5, D) de Borja se ha medido con ||W||_2 = 3.0. El estado oculto h de shape (D,) tiene ||h||_2 = 2.0. Entonces los logits de tiempos z = W h satisfacen:

\[ \|z\|_2 \leq \|W\|_2 \|h\|_2 = 3.0 \times 2.0 = 6.0 \]

Así que ningún logit individual puede exceder 6.0 en valor absoluto. Esto garantiza que las probabilidades post-softmax no se vuelvan demasiado puntiagudas — incluso el gap de logits más extremo es 12.0 (entre máximo y mínimo). Con exp(12) ≈ 1.6e5, softmax da una probabilidad de la clase principal ≤ 1.6e5 / (1.6e5 + 4) ≈ 0.99997. La cota previene exceso de confianza patológica.

Este tipo de razonamiento, multiplicado a lo largo de cada capa de MiniGPT, es cómo mantienes estable el entrenamiento. La Fase 18 lo ejercitará.

Problemas de práctica

Soluciones en solutions/04-norms-and-conditioning-ref.md (apertura de fase).

  1. Calcula ||v||_1, ||v||_2, ||v||_∞ para v = [3, -4, 0, 1].
  2. Demuestra que ||v||_∞ ≤ ||v||_2 ≤ ||v||_1 para cualquier vector real de dimensión finita.
  3. La matriz de conteos de conjugaciones §A13 C.shape = (20, 15) tiene valores singulares σ_1, ..., σ_15. Expresa ||C||_2, ||C||_F, κ(C) en términos de σ.
  4. Deriva ||AB||_2 ≤ ||A||_2 ||B||_2 a partir de las SVDs de A y B. (Pista: usa que las matrices ortogonales preservan las normas L2.)
  5. Para el MiniGPT de Borja, supón que cada peso de capa tiene ||W||_2 = 1.5. El modelo tiene 4 capas, cada una seguida de una no-linealidad con constante de Lipschitz 1. ¿Cuál es la cota de Lipschitz en el peor caso sobre la salida respecto del embedding de entrada? ¿Por qué este argumento falla en la práctica (conexiones residuales, layer norm)? Guarda la segunda respuesta para la Fase 10.
  6. Muestra que la norma de Frobenius es √(trace(A^T A)).

Recapitulación en un párrafo

Las normas vectoriales (L1, L2, L∞) miden tamaño; las normas matriciales (normas de operador inducidas, Frobenius) miden tamaño de matrices. La norma de operador ||A||_2 = σ_1 es la más importante — da la desigualdad ||Ax|| ≤ ||A|| ||x||, el fundamento de todo argumento de estabilidad en ML (gradient clipping, regularización, normalización espectral, escala de inicialización). El número de condición κ(A) = σ_1 / σ_n mide sensibilidad a perturbaciones. La SVD (teoría 03) es la herramienta universal para calcularlas todas.

Lo que esta página NO cubre

  • p-normas de Schatten (normas de vectores de valores singulares). Fuera de alcance.
  • Norma nuclear (suma de σ). Usada en algunos contextos de completion de matrices / recuperación de bajo rango; no en este currículo.
  • Normas sobre espacios de dimensión infinita. Fuera de alcance.
  • Optimización con preservación de norma (métodos riemannianos). Fuera de alcance.

Teoría de la Fase 3 completa. Siguiente: lab/00-shapes-by-hand.md.