Qué tan sensible es una matriz a errores
El número de condición mide qué tan sensible es el resultado de un problema matemático a pequeños cambios en los datos de entrada. Es un concepto clave en álgebra lineal numérica y machine learning.
👉 En términos simples:
indica si un problema es estable o inestable
Definición corta
El número de condición mide la sensibilidad de una matriz o sistema a perturbaciones.
Definición detallada
Para una matriz A, el número de condición se define como:κ(A)=∥A∥⋅∥A−1∥
👉 En la norma L2 (más común):
Donde:
- σmax = mayor valor singular
- σmin = menor valor singular
Intuición
El número de condición responde:
👉 “¿Cuánto cambia la salida si cambio ligeramente la entrada?”
Interpretación
| κ(A) | Significado |
|---|---|
| ≈ 1 | muy estable |
| moderado | aceptable |
| muy grande | inestable |
| ∞ | singular (no invertible) |
Ejemplo intuitivo
Pequeño error en datos
↓
Gran error en resultado
→ matriz mal condicionada
Relación con otros conceptos
- Inversa de matriz
- SVD
- Estabilidad numérica
- Rango
Interpretación geométrica
Una matriz con alto número de condición:
👉 “estira” el espacio en una dirección y lo “comprime” en otra
Círculo → elipse muy alargada
👉 Esto causa inestabilidad.
Número de condición en redes neuronales
🔹 1. Entrenamiento
Matrices mal condicionadas:
👉 dificultan el aprendizaje
🔹 2. Gradientes
Puede causar:
- gradientes explosivos
- gradientes muy pequeños
🔹 3. Optimización
Problemas mal condicionados:
👉 convergen lentamente
🔹 4. Inicialización
Matrices bien condicionadas:
👉 mejor estabilidad
Ejemplo paso a paso
Valores singulares:σmax=1,σmin=0.001
👉 Muy mal condicionada.
Relación con SVD
A=UΣVT
👉 Número de condición depende de:Σ
Ejemplo conceptual
Dirección 1 → gran escala
Dirección 2 → casi cero
→ problema inestable
Ejemplo en Python
import numpy as npA = np.array([ [1, 0], [0, 0.001]])cond = np.linalg.cond(A)print("Número de condición:", cond)
Ejemplo con SVD
import numpy as npA = np.array([ [1, 0], [0, 0.001]])U, S, V = np.linalg.svd(A)cond = S.max() / S.min()print("Condición:", cond)
Ejemplo en PyTorch
import torchA = torch.tensor([ [1.0, 0.0], [0.0, 0.001]])cond = torch.linalg.cond(A)print("Número de condición:", cond.item())
Ejemplo comparativo
import numpy as npA1 = np.eye(2)A2 = np.array([[1, 0], [0, 0.001]])print("Cond(A1):", np.linalg.cond(A1))print("Cond(A2):", np.linalg.cond(A2))
Qué muestra este ejemplo
- Diferencia entre matrices estables e inestables
- Relación con valores singulares
- Impacto en cálculos
Errores comunes
Ignorar el número de condición
Puede causar errores graves.
Confundir con determinante
No son equivalentes.
No usar regularización
Puede mejorar estabilidad.
Ejemplo conceptual en ML
Dataset mal condicionado
↓
Modelo inestable
↓
Peor generalización
Interpretación profunda
El número de condición permite:
- evaluar estabilidad
- detectar problemas numéricos
- mejorar optimización
- entender comportamiento del modelo
👉 Es clave para sistemas robustos.
Conclusión
El número de condición mide la estabilidad de un sistema frente a perturbaciones. Es fundamental para entender cuándo un modelo o cálculo es confiable.
👉 Un buen modelo no solo es preciso — también es estable.