Entendiendo cómo una transformación estira el espacio
Los valores propios (eigenvalues) son un concepto central del álgebra lineal que describe cómo una matriz transforma ciertos vectores especiales. En redes neuronales, ayudan a entender estabilidad, dinámica del entrenamiento y comportamiento de las transformaciones.
👉 Son clave para analizar qué hace realmente una capa al espacio de datos.
Definición corta
Un valor propio es un escalar que indica cuánto se estira o comprime un vector especial (vector propio) al aplicar una transformación lineal.
Definición detallada
Dada una matriz A, un vector v es un vector propio si:
👉 Donde:
- = vector propio
- = valor propio
Interpretación
Aplicar la matriz a :
👉 No cambia su dirección
👉 Solo cambia su magnitud
Intuición
La mayoría de vectores cambian de dirección al aplicar una transformación.
👉 Pero los vectores propios son especiales:
- Se mantienen en la misma dirección
- Solo se escalan
Interpretación geométrica
Una matriz puede:
- Rotar
- Escalar
- Deformar
Los valores propios indican:
👉 cuánto se estira el espacio en ciertas direcciones específicas
Ejemplo simple
Vectores propios:
- [1,0] → λ=2
- [0,1] → λ=3
👉 Significa:
- eje X se escala por 2
- eje Y se escala por 3
Cómo se calculan
Se resuelve:det(A−λI)=0
👉 Esto genera el polinomio característico.
Valores propios en redes neuronales
🔹 1. Estabilidad del entrenamiento
Valores propios grandes:
👉 pueden causar explosión de gradientes
Valores pequeños:
👉 pueden causar desaparición de gradientes
🔹 2. Análisis de capas
Permiten entender:
- cómo una capa transforma datos
- qué direcciones se amplifican
🔹 3. PCA (Análisis de componentes principales)
Los valores propios indican:
👉 qué direcciones contienen más información
🔹 4. Dinámica en RNNs
Los valores propios del Jacobiano afectan:
- memoria
- estabilidad
Ejemplo paso a paso
Se calcula:det(A−λI)=0
Solución:
👉 Dos valores propios.
Relación con otros conceptos
- Matriz
- Transformación lineal
- Espacio vectorial
- Descomposición espectral
- PCA
Ejemplo en Python
import numpy as npA = np.array([ [4, 2], [1, 3]])eigenvalues, eigenvectors = np.linalg.eig(A)print("Valores propios:", eigenvalues)print("Vectores propios:\n", eigenvectors)
Ejemplo en PyTorch
import torchA = torch.tensor([ [4.0, 2.0], [1.0, 3.0]])eigenvalues, eigenvectors = torch.linalg.eig(A)print("Valores propios:", eigenvalues)print("Vectores propios:\n", eigenvectors)
Ejemplo conceptual
Transformación:
Un círculo → elipse
👉 Los ejes de la elipse = vectores propios
👉 Las longitudes = valores propios
⚠️ Errores comunes
Confundir valores propios con vectores propios
Son conceptos distintos pero relacionados.
Ignorar números complejos
Los valores propios pueden ser complejos.
Pensar que todos los vectores son propios
Solo algunos cumplen la condición.
Aplicación en deep learning
Ejemplo: matriz de pesos
👉 Los valores propios de W:
- indican qué direcciones se amplifican
- ayudan a entender estabilidad
Interpretación profunda
Los valores propios permiten:
- analizar transformaciones complejas
- entender dinámica de redes profundas
- detectar problemas de entrenamiento
- identificar direcciones importantes
👉 Son una herramienta clave para interpretar modelos.
Conclusión
Los valores propios revelan cómo una transformación lineal afecta diferentes direcciones del espacio. Son esenciales para entender estabilidad, dinámica y estructura en redes neuronales.
👉 Dominar este concepto abre la puerta a entender el comportamiento profundo de los modelos.