Número de condición

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 AAA, el número de condición se define como:κ(A)=AA1\kappa(A) = \|A\| \cdot \|A^{-1}\|κ(A)=∥A∥⋅∥A−1∥

👉 En la norma L2 (más común):κ(A)=σmaxσmin\kappa(A) = \frac{\sigma_{\max}}{\sigma_{\min}}

Donde:

  • σmax\sigma_{\max}σmax​ = mayor valor singular
  • σmin\sigma_{\min}σ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
≈ 1muy estable
moderadoaceptable
muy grandeinestable
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

A=[1000.001]A = \begin{bmatrix} 1 & 0 \\ 0 & 0.001 \end{bmatrix}

Valores singulares:σmax=1,σmin=0.001\sigma_{\max} = 1, \quad \sigma_{\min} = 0.001σmax​=1,σmin​=0.001


κ(A)=1000\kappa(A) = 1000


👉 Muy mal condicionada.

Relación con SVD

A=UΣVTA = U \Sigma V^TA=UΣVT

👉 Número de condición depende de:Σ\SigmaΣ

Ejemplo conceptual

Dirección 1 → gran escala  
Dirección 2 → casi cero
→ problema inestable

Ejemplo en Python

import numpy as np
A = 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 np
A = 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 torch
A = 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 np
A1 = 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.

Related Concepts

  • SVD
  • Rango
  • Inversa de matriz
  • Estabilidad numérica
  • Optimización