Autovalores y autovectores

Autovalores, autovectores y cambio de base: conceptos clave de álgebra lineal para reducción de dimensionalidad y PCA.
Autor/a

Santi López Pavón

Palabras clave

machine learning, aprendizaje automatico, Python, algebra lineal, optimizacion, regresion lineal, clasificacion, estadistica

1 Vectores base

Los vectores base son aquellos que tienen la capacidad de generar cualquier otro vector dentro del espacio vectorial al que pertenecen. Para que un conjunto de vectores constituya una base, debe cumplir estrictamente con dos condiciones fundamentales:

  • Independencia lineal: Ninguno de los vectores de la base puede expresarse como combinación lineal de los demás. Esto garantiza que no haya información redundante y que cada vector aporte una dirección única y necesaria en el espacio.
  • Capacidad generadora: Mediante el uso de las dos operaciones fundamentales del álgebra lineal —la multiplicación por un escalar y la suma de vectores— se puede alcanzar y representar absolutamente cualquier vector de ese universo.

Si estás en un espacio 2D y tus vectores base son los vectores canónicos:

\[\vec{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \quad \text{y} \quad \vec{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}\]

Para construir el vector \(\begin{bmatrix} 4 \\ -3 \end{bmatrix}\), debes usar la base y operar con esos vectores:

\[\mathbf{4} \cdot \begin{bmatrix} 1 \\ 0 \end{bmatrix} + (\mathbf{-3}) \cdot \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 4 \\ -3 \end{bmatrix}\]

El espacio generado (también conocido como span o cápsula lineal) es el conjunto infinito de todas las combinaciones lineales posibles que se pueden construir a partir de un conjunto de vectores base.Este espacio tiene una propiedad fundamental llamada dimensión, la cual está intrínsecamente ligada a la matriz que contiene a esos vectores mediante la siguiente triple equivalencia:

\[\text{Dimensión del Espacio} = \text{Rango de la Matriz} = \text{Número de Vectores Independientes}\]

2 Eigen bases

2.1 ¿Qué es un Vector Propio y un Valor Propio?

En una transformación lineal definida por una matriz \(A\), un vector propio es un vector no nulo que, tras ser multiplicado por la matriz, experimenta una modificación sencilla: se estira o contrae pero mantiene su dirección original exacta en el espacio.

El efecto de la matriz sobre un vector propio se reduce a una multiplicación por un número real. A este número escalar, que determina cuánto se estira, se contrae o si se invierte el vector original, se le conoce como valor propio (\(\lambda\)).

\[A \cdot \vec{v} = \lambda \cdot \vec{v}\]

  • \(A \cdot \vec{v}\): Representa el vector fruto de la transformación (el vector final).
  • \(\lambda \cdot \vec{v}\): Demuestra que ese resultado final es idéntico a haber tomado el vector original \(\vec{v}\) y haberlo multiplicado simplemente por el escalar \(\lambda\).

2.1.1 Demostración numérica de escalado

Imaginemos que tenemos esta matriz de transformación \(A\):

\[A = \begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix}\]

Multiplicamos la matriz por nuestro vector (\(A \cdot \vec{v}_1\)):

\[\vec{w}_1 = \begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = 1 \cdot \begin{bmatrix} 3 \\ 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 \\ 2 \end{bmatrix} = \begin{bmatrix} \mathbf{3} \\ \mathbf{0} \end{bmatrix}\]

El vector original era \(\begin{bmatrix} 1 \\ 0 \end{bmatrix}\) y el vector final es \(\begin{bmatrix} 3 \\ 0 \end{bmatrix}\)

Matemáticamente, vemos que se cumple la ecuación fundamental:

\[A \cdot \vec{v}_1 = 3 \cdot \vec{v}_1\]

Por lo tanto, \(\begin{bmatrix} 1 \\ 0 \end{bmatrix}\) es un Vector Propio de la matriz, y su Valor Propio asociado es \(\lambda = 3\).

2.1.2 Construcción de la Eigen Base y Diagonalización

Un vector propio define una dirección en el espacio donde los vectores alineados con ella sufren únicamente transformaciones de escalado. Por tanto, cualquier vector en esa misma dirección es también un vector propio. Por ejemplo, al probar con el vector \((5, 0)\) —que es colineal al vector canónico \((1, 0)\)— vemos que el resultado de la transformación es el propio vector escalado por el autovalor ya encontrado (\(\lambda = 3\)), dando como resultado \((15, 0)\)

\[\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix} \begin{bmatrix} 5 \\ 0 \end{bmatrix} = \begin{bmatrix} 15 \\ 0 \end{bmatrix}\] \[\begin{bmatrix} 15 \\ 0 \end{bmatrix} = 3 \cdot \begin{bmatrix} 5 \\ 0 \end{bmatrix}\]

Si tienes un espacio vectorial de dimensión \(n\) (por ejemplo, un espacio 3D) y una matriz de transformación \(A\), y eres capaz de encontrar suficientes vectores propios que sean linealmente independientes para llenar esa dimensión (en este caso, 3 vectores propios), puedes usarlos para construir una nueva base del espacio.A esta base especial se le conoce como Base de Vectores Propios o Eigen Base.

\[A = P \cdot D \cdot P^{-1}\]

  • \(A\) (La Matriz Original): Es la transformación del mundo real.
  • \(P^{-1}\): Es la matriz inversa de los vectores propios. Su función es traducir un vector del mundo real al “idioma de la Eigenbase” (el mundo simple).
  • \(D\) (La Matriz Diagonal): Es el motor del proceso en el mundo simple. Contiene los autovalores (\(\lambda\)) en su diagonal. Como no tiene números cruzados, aplica la transformación de forma rápida mediante multiplicaciones directas.
  • \(P\) (El Traductor de Salida): Es la matriz formada por los vectores propios (eigenvectores) en sus columnas. Su función es devolver el resultado final desde el “idioma simple” al mundo real con las coordenadas normales.

Supongamos esto:

\[A = \begin{pmatrix} 3 & 1 \\ 0 & 2 \end{pmatrix}, \quad P = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix}, \quad D = \begin{pmatrix} 3 & 0 \\ 0 & 2 \end{pmatrix}, \quad P^{-1} = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix}\]

Además

  • Autovector \(\begin{pmatrix} 1 \\ 0 \end{pmatrix}\) con su autovalor 3.
  • Autovector \(\begin{pmatrix} 1 \\ -1 \end{pmatrix}\) con su autovalor 2.

Vamos a demostrar como utilizando la matrz de vectores propios y la matríz diagonal podemos llegar al mismo resultado que usando la transformación con la matriz original.

\[A \cdot \vec{v} = \begin{pmatrix} 3 & 1 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} (3\cdot1) + (1\cdot1) \\ (0\cdot1) + (2\cdot1) \end{pmatrix} = \begin{pmatrix} 4 \\ 2 \end{pmatrix}\]

Aplicando la transformación con la matriz original se llega al vector \(\begin{pmatrix} 4 \\ 2 \end{pmatrix}\). Ahora vamos a ver el camino altenrativo:

\[\vec{v}_{B} = P^{-1} \cdot \vec{v} = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 2 \\ -1 \end{pmatrix}\]

\[\text{Resultado}_{B} = D \cdot \vec{v}_{B} = \begin{pmatrix} 3 & 0 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 2 \\ -1 \end{pmatrix} = \begin{pmatrix} 3 \cdot 2 \\ 2 \cdot (-1) \end{pmatrix} = \begin{pmatrix} 6 \\ -2 \end{pmatrix}\]

Como vemos multiplicar por D es una operación muy sencilla, porque cada coordenada del vector se multiplica por el valor propio correspondiente.

\[\text{Resultado Final} = P \cdot \text{Resultado}_{B} = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} 6 \\ -2 \end{pmatrix} = \begin{pmatrix} (1\cdot6) + (1\cdot(-2)) \\ (0\cdot6) + ((-1)\cdot(-2)) \end{pmatrix} = \begin{pmatrix} 4 \\ 2 \end{pmatrix}\]

2.2 Optimización de Transformaciones Repetidas

Uno de los puntos fuertes de esto es que si necesitamos realizar la misma transformación A varias veces, el cálculo se simplifica, para ilustrarlo vamos a suponer que vamos a realizar la transformación A dos veces.

\[\vec{v}_{\text{después 1}} = A \cdot \vec{v} = \begin{pmatrix} 3 & 1 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} (3\cdot1)+(1\cdot1) \\ (0\cdot1)+(2\cdot1) \end{pmatrix} = \begin{pmatrix} 4 \\ 2 \end{pmatrix}\]

\[\vec{v}_{\text{final}} = A \cdot \begin{pmatrix} 4 \\ 2 \end{pmatrix} = \begin{pmatrix} 3 & 1 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 4 \\ 2 \end{pmatrix} = \begin{pmatrix} (3\cdot4)+(1\cdot2) \\ (0\cdot4)+(2\cdot2) \end{pmatrix} = \begin{pmatrix} 12+2 \\ 0+4 \end{pmatrix} = \begin{pmatrix} 14 \\ 4 \end{pmatrix}\]

Ahora con la eigenbase, simplemente hay que elevar D, al número de transformaciones a realizar de tal forma que indpendiente de que se hagan 1.000 transformaciones, solo necesito realizar 3 transformaciones.

\[A \cdot A = (P \cdot D \cdot P^{-1}) \cdot (P \cdot D \cdot P^{-1})\] \[A^2 = P \cdot D^2 \cdot P^{-1}\]

\[\vec{v}_{B} = P^{-1} \cdot \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 2 \\ -1 \end{pmatrix}\]

\[\text{Resultado}_{B} = D^2 \cdot \vec{v}_{B} = \begin{pmatrix} 9 & 0 \\ 0 & 4 \end{pmatrix} \begin{pmatrix} 2 \\ -1 \end{pmatrix} = \begin{pmatrix} 9 \cdot 2 \\ 4 \cdot (-1) \end{pmatrix} = \begin{pmatrix} 18 \\ -4 \end{pmatrix}\]

\[\vec{v}_{\text{final}} = P \cdot \begin{pmatrix} 18 \\ -4 \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} 18 \\ -4 \end{pmatrix} = \begin{pmatrix} (1\cdot18) + (1\cdot(-4)) \\ (0\cdot18) + ((-1)\cdot(-4)) \end{pmatrix} = \begin{pmatrix} 18-4 \\ 0+4 \end{pmatrix} = \begin{pmatrix} 14 \\ 4 \end{pmatrix}\]

2.3 Reducción de la Dimensionalidad

Otro de los usos es la reducción de la dimensionalidad, tenemos una matriz de covarianza

\[A = \begin{pmatrix} 6 & 4 & 0 \\ 4 & 6 & 0 \\ 0 & 0 & 0.1 \end{pmatrix}\]

Se encuentras los vectores y valores propios:

  • Para \(\lambda_1 = 10\): \(\vec{u}_1 = \begin{pmatrix} 0.71 \\ 0.71 \\ 0 \end{pmatrix}\) (Eje Principal: movimiento diagonal Norte-Este).
  • Para \(\lambda_2 = 2\): \(\vec{u}_2 = \begin{pmatrix} -0.71 \\ 0.71 \\ 0 \end{pmatrix}\) (Eje Secundario: movimiento cruzado).
  • Para \(\lambda_3 = 0.1\): \(\vec{u}_3 = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}\) (Eje de la Altura pura).

Los valores propios nos indican la fuerza de ese eje, a más valor propio más variabilidad y por tanto mayor relevancia, si el eje tiene un valor propio bajo podemos omitirlo para reducir la dimensión. En este caso formamos una nueva matriz de 2D.

\[\text{Base 2D} = \begin{pmatrix} 0.71 & -0.71 \\ 0.71 & 0.71 \\ 0 & 0 \end{pmatrix}\]

Entonces dado un vector, lo transformamos a esa nueva base con la matriz transpuesta.

\(\text{v} = \begin{pmatrix} 5 \\ 3 \\ 4 \end{pmatrix}\)

\[\text{Posición 2D} = \begin{pmatrix} 0.71 & 0.71 & 0 \\ -0.71 & 0.71 & 0 \end{pmatrix} \begin{pmatrix} 5 \\ 3 \\ 4 \end{pmatrix}\]

\[\text{Posición 2D} = \begin{pmatrix} 5.68 \\ -1.42 \end{pmatrix}\]