Curso de Matemáticas para IA · Lección 31 de 180

Una base da a los vectores de IA un sistema de coordenadas reversible

Comprueba si unos vectores forman una base, calcula coordenadas en un nuevo marco y observa cómo un modelo lineal mantiene la misma puntuación tras un cambio coordinado.

Comparte este artículo

El mismo punto en la representación bidimensional de un modelo puede escribirse como (1, 7) o (3, 2). Ambos pares pueden representar el vector cuya primera coordenada es 1 y la segunda es 7, siempre que indiquemos qué sistema de coordenadas usamos. El primer par utiliza los conocidos ejes horizontal y vertical. El segundo usa dos vectores de base inclinados. Una base hace que esta alternativa permita describir todos los vectores del espacio de forma completa y sin ambigüedades.

Al terminar esta lección, podrás comprobar si un conjunto de vectores es una base, calcular las coordenadas de un vector en esa base y explicar qué debe cambiar en un modelo lineal cuando cambian las coordenadas de entrada.

Objetivo de aprendizaje: Verificar una base y expresar un vector en coordenadas de esa base.

Esta lección se apoya en la independencia lineal y el espacio generado: una base combina ambas ideas. La explicación sigue la sección 2.6 de Mathematics for Machine Learning, mientras que el ejemplo numérico, el cálculo de la puntuación del modelo, el explorador y las preguntas siguientes son originales.

Una base ofrece justo las direcciones necesarias

Trabajamos en un espacio vectorial de dimensión finita. Un conjunto de vectores es una base de un espacio cuando cumple dos pruebas:

  1. Genera el espacio: todo vector del espacio se puede construir como combinación lineal del conjunto.
  2. Es linealmente independiente: ninguno de sus vectores es redundante; solo la combinación lineal con todos los coeficientes iguales a cero produce el vector cero.

En conjunto, estas condiciones indican que hay direcciones suficientes para alcanzar todos los vectores y que no hay ninguna dirección adicional que genere ambigüedad. La sección 2.6 del libro ofrece caracterizaciones equivalentes: una base es un conjunto generador mínimo y un conjunto linealmente independiente maximal, y cada vector tiene una única combinación lineal en esa base.

En Rn\mathbb{R}^n, una base tiene exactamente nn vectores. Para un subespacio menor, contiene tantos vectores como direcciones independientes tenga ese subespacio. Por ejemplo, dos vectores pueden ser una base de un plano dentro de R3\mathbb{R}^3 sin ser una base de todo R3\mathbb{R}^3.

Por qué las coordenadas son únicas

Supongamos que b1,…,bn\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n forman una base y que v\boldsymbol{v} es cualquier vector del espacio. La propiedad generadora garantiza que al menos un conjunto de coeficientes lo representa:

v=c1b1+⋯+cnbn.\boldsymbol{v}=c_1\boldsymbol{b}_1+\cdots+c_n\boldsymbol{b}_n.

Imaginemos ahora que otro conjunto, d1,…,dnd_1,\ldots,d_n, produce el mismo vector. Al restar las dos expresiones se obtiene

0=(c1−d1)b1+⋯+(cn−dn)bn.0=(c_1-d_1)\boldsymbol{b}_1+\cdots+(c_n-d_n)\boldsymbol{b}_n.

Como los vectores de la base son linealmente independientes, todos los coeficientes de esta combinación nula deben ser cero. Por tanto, ci=dic_i=d_i para cada ii. Las coordenadas son únicas porque la base no tiene direcciones redundantes.

Escribimos la columna de coordenadas como [v]B[\boldsymbol{v}]_B. El subíndice importa: indica qué base proporciona esas coordenadas. El vector y su columna de coordenadas están relacionados, pero no son objetos intercambiables.

Calcular un cambio de coordenadas

Tomemos estos dos vectores de R2\mathbb{R}^2:

b1=[11],b2=[−12].\boldsymbol{b}_1=\begin{bmatrix}1\\1\end{bmatrix},\qquad \boldsymbol{b}_2=\begin{bmatrix}-1\\2\end{bmatrix}.

Coloca los vectores de la base en las columnas de una matriz:

B=[1−112].B=\begin{bmatrix}1&-1\\1&2\end{bmatrix}.

Son linealmente independientes: el determinante es 1⋅2−(−1⋅1)=31\cdot2-(-1\cdot1)=3, distinto de cero. Como hay dos vectores linealmente independientes en R2\mathbb{R}^2, también generan el plano y forman una base.

Busquemos las coordenadas de v=(1,7)T\boldsymbol{v}=(1,7)^\mathsf{T}. La columna de coordenadas c=[v]B\boldsymbol{c}=[\boldsymbol{v}]_B debe cumplir Bc=vB\boldsymbol{c}=\boldsymbol{v}. Al escribir c=(c1,c2)T\boldsymbol{c}=(c_1,c_2)^\mathsf{T}, esa ecuación matricial se convierte en dos ecuaciones ordinarias:

c1−c2=1,c1+2c2=7.\begin{aligned} c_1-c_2&=1,\\ c_1+2c_2&=7. \end{aligned}

Restamos la primera ecuación de la segunda: 3c2=63c_2=6, así que c2=2c_2=2. Entonces c1−2=1c_1-2=1, por lo que c1=3c_1=3. Comprobemos directamente la reconstrucción:

3[11]+2[−12]=[3−23+4]=[17].3\begin{bmatrix}1\\1\end{bmatrix} +2\begin{bmatrix}-1\\2\end{bmatrix} =\begin{bmatrix}3-2\\3+4\end{bmatrix} =\begin{bmatrix}1\\7\end{bmatrix}.

El par de coordenadas (3,2)(3,2) significa «tres pasos en la dirección de b1\boldsymbol{b}_1 y dos en la de b2\boldsymbol{b}_2». Nombra el mismo punto final que las coordenadas estándar (1,7)(1,7).

Un vector, dos sistemas de coordenadas

El vector (1, 7) en dos basesSe muestra el mismo punto final con los ejes estándar o con los vectores de base inclinados (1, 1) y (−1, 2). El par de coordenadas cambia de (1, 7) a (3, 2).e₁e₂vxy

Coordenadas en la base seleccionada: (1, 7)

Vector en coordenadas estándar: (1, 7)

v = c₁b₁ + c₂b₂

Coordenadas en la base seleccionada: (1, 7)
El punto final permanece fijo en (1, 7). Al cambiar la base, cambia el par de coordenadas usado para nombrar ese punto.

El explorador empieza con las coordenadas estándar. Usa el selector accesible mediante el teclado para cambiar a la base inclinada: la flecha hacia v\boldsymbol{v} termina en el mismo punto, mientras que las coordenadas mostradas cambian de (1,7)(1,7) a (3,2)(3,2). El pie de figura y la lectura también presentan el resultado en texto, además de en el diagrama.

Deja que NumPy resuelva la ecuación de coordenadas

Para una base mayor, la misma relación es un sistema lineal. Guarda los vectores de la base como columnas y resuelve Bc=vB\boldsymbol{c}=\boldsymbol{v}:

import numpy as np

B = np.array([[1, -1],
              [1,  2]])  # columns are b1=(1, 1) and b2=(-1, 2)
v = np.array([1, 7])

rank = np.linalg.matrix_rank(B)
coordinates = np.linalg.solve(B, v)
reconstructed = B @ coordinates

print(rank)                         # 2: full rank in R^2
print(coordinates)                  # [3. 2.]
print(np.allclose(reconstructed, v)) # True

Para esta matriz cuadrada en R2\mathbb{R}^2, tener rango completo significa que sus dos columnas son linealmente independientes, lo cual basta para establecer que forman una base. numpy.linalg.solve devuelve la solución del sistema cuadrado de rango completo; NumPy genera LinAlgError cuando la matriz es singular o no es cuadrada. El resultado del rango aquí es un diagnóstico numérico: NumPy lo estima mediante valores singulares y una tolerancia, así que los datos de coma flotante casi dependientes pueden requerir una tolerancia elegida según la escala y la precisión de medida de la aplicación. Consulta las referencias oficiales de NumPy para matrix_rank y solve.

Para ejemplos pequeños y exactos con enteros, un cálculo manual como el determinante anterior ofrece una demostración concluyente. Para datos reales, comprobar la reconstrucción resulta útil, pero no basta por sí solo para verificar que se trata de una base: una matriz singular aún puede reconstruir algunos vectores. Comprueba también que la matriz tiene la forma adecuada y rango completo.

Los pesos de un modelo deben seguir a sus coordenadas

Un cambio de base puede aclarar la representación interna de un modelo, pero debe coordinarse con las operaciones que la utilizan. Consideremos la puntuación lineal s=wTvs=\boldsymbol{w}^{\mathsf T}\boldsymbol{v} con w=(2,1)T\boldsymbol{w}=(2,1)^\mathsf{T} y v=(1,7)T\boldsymbol{v}=(1,7)^\mathsf{T}. En coordenadas estándar, la puntuación es

2⋅1+1⋅7=9.2\cdot1+1\cdot7=9.

En la base inclinada, v=Bc\boldsymbol{v}=B\boldsymbol{c} con c=(3,2)T\boldsymbol{c}=(3,2)^\mathsf{T}. Entonces

wTv=wTBc=(BTw)Tc.\boldsymbol{w}^{\mathsf T}\boldsymbol{v} =\boldsymbol{w}^{\mathsf T}B\boldsymbol{c} =(B^{\mathsf T}\boldsymbol{w})^{\mathsf T}\boldsymbol{c}.

Los pesos correspondientes en las coordenadas nuevas son BTw=(3,0)TB^{\mathsf T}\boldsymbol{w}=(3,0)^\mathsf{T}, y la puntuación sigue siendo 3⋅3+0⋅2=93\cdot3+0\cdot2=9. Si aplicáramos directamente los pesos originales (2,1)(2,1) al nuevo par de coordenadas, la puntuación pasaría a ser 2⋅3+1⋅2=82\cdot3+1\cdot2=8. Se ha descrito de nuevo la representación, pero los parámetros del modelo no se han actualizado para adaptarse.

Esta igualdad es exacta para la puntuación lineal mostrada. Una red neuronal que aplica activaciones no lineales, normalización u otras operaciones entre capas quizá no conserve su comportamiento ante un cambio de base arbitrario. En la práctica, las coordenadas de una representación están ligadas a los parámetros aprendidos y a las operaciones que las rodean; cambiar una sola pieza puede modificar las predicciones.

Cuando un conjunto candidato no cumple

Dos vectores candidatos pueden apuntar en la misma dirección y aun así parecer dos elementos distintos de una lista:

a1=[11],a2=[22].\boldsymbol{a}_1=\begin{bmatrix}1\\1\end{bmatrix},\qquad \boldsymbol{a}_2=\begin{bmatrix}2\\2\end{bmatrix}.

El segundo es el doble del primero. Su determinante es cero y su espacio generado es solo la recta y=xy=x, no todo el plano. No es posible alcanzar el vector (1,7)(1,7) con ellos. Incluso un vector alcanzable puede tener coordenadas ambiguas: (2,2)(2,2) se puede escribir como 2a1+0a22\boldsymbol{a}_1+0\boldsymbol{a}_2 o como 0a1+1a20\boldsymbol{a}_1+1\boldsymbol{a}_2.

Unos vectores casi paralelos pueden superar una prueba exacta de independencia y aun así producir coordenadas sensibles a pequeños cambios de medición o redondeo. Es un problema de condicionamiento numérico: las coordenadas matemáticas quizá sean únicas, aunque los valores calculados sean frágiles. La estimación del rango y el residuo de reconstrucción responden a preguntas distintas; interpreta ambos teniendo en cuenta la precisión de los datos.

Por tanto, una base es más que una lista compacta de vectores. Es un contrato: se puede alcanzar todo vector del espacio elegido y, una vez fijada la base, cada vector tiene una única tupla de coordenadas. El número de vectores de la base proporciona entonces la dimensión del espacio, el siguiente paso para conectar el álgebra lineal con las representaciones de modelos.

Comprueba lo que has aprendido

Pregunta 1

¿Forman (2, 0) y (1, 3) una base de ℝ²? Muestra la prueba de independencia y explica por qué aquí es suficiente.

Mostrar la solución paso a paso

Coloca los vectores como columnas de una matriz:

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

Su determinante es 2⋅3−1⋅0=62\cdot3-1\cdot0=6, que no es cero; por tanto, las columnas son linealmente independientes. Hay dos vectores linealmente independientes en R2\mathbb{R}^2; generan el plano y forman una base.

Pregunta 2

Con b₁=(1, 1) y b₂=(−1, 2), calcula las coordenadas de v=(1, 7) en esa base. Verifica la respuesta mediante la reconstrucción.

Mostrar la solución paso a paso

Plantea c1b1+c2b2=(1,7)c_1\boldsymbol{b}_1+c_2\boldsymbol{b}_2=(1,7). Al comparar componentes se obtiene c1−c2=1c_1-c_2=1 y c1+2c2=7c_1+2c_2=7. Resta la primera ecuación de la segunda: 3c2=63c_2=6, así que c2=2c_2=2. Entonces c1=3c_1=3. Reconstruye: 3(1,1)+2(−1,2)=(3−2,3+4)=(1,7)3(1,1)+2(-1,2)=(3-2,3+4)=(1,7). Las coordenadas son (3,2)(3,2).

Pregunta 3

En la misma base inclinada, ¿qué vector representan las coordenadas (−2, 4) en coordenadas estándar?

Mostrar la solución paso a paso

Sustituye las coordenadas en la combinación lineal: −2(1,1)+4(−1,2)-2(1,1)+4(-1,2). La primera componente es −2−4=−6-2-4=-6; la segunda es −2+8=6-2+8=6. Por tanto, el vector representado es (−6,6)(-6,6).

Pregunta 4

¿Por qué una base solo puede dar una tupla de coordenadas para cada vector?

Mostrar la solución paso a paso

Supongamos que tanto v=∑icibi\boldsymbol{v}=\sum_i c_i\boldsymbol{b}_i como v=∑idibi\boldsymbol{v}=\sum_i d_i\boldsymbol{b}_i. Al restar las expresiones se obtiene ∑i(ci−di)bi=0\sum_i(c_i-d_i)\boldsymbol{b}_i=0. La independencia lineal establece que la única forma de producir el vector cero es que todos los coeficientes sean cero. Por tanto, ci=dic_i=d_i para cada vector de la base.

Pregunta 5

Sean a₁=(1, 2) y a₂=(2, 4). ¿Pueden representar (3, 1)? Da un vector alcanzable que tenga más de una descripción de coordenadas.

Mostrar la solución paso a paso

Ambos vectores están en la recta y=2xy=2x, así que cualquier combinación lineal también pertenece a ella. Como (3,1)(3,1) no cumple 1=2⋅31=2\cdot3, no se puede alcanzar. El vector alcanzable (2,4)(2,4) tiene dos descripciones: 2a1+0a22\boldsymbol{a}_1+0\boldsymbol{a}_2 y 0a1+1a20\boldsymbol{a}_1+1\boldsymbol{a}_2. La dependencia provoca tanto la incapacidad de generar todo el plano como coordenadas no únicas para algunos vectores alcanzables.

Pregunta 6

En ℝ³, sean a₁=(1, 0, 1), a₂=(0, 1, 1) y a₃=(1, 1, 2). ¿Forman una base de todo ℝ³? ¿Podrían a₁ y a₂ formar una base de un espacio menor?

Mostrar la solución paso a paso

Observa que a3=a1+a2\boldsymbol{a}_3=\boldsymbol{a}_1+\boldsymbol{a}_2, de modo que el conjunto de tres vectores es dependiente. No puede ser una base de R3\mathbb{R}^3; como máximo genera un plano. Los dos primeros vectores son linealmente independientes, así que forman una base de su espacio generado: el plano generado por a1\boldsymbol{a}_1 y a2\boldsymbol{a}_2.

Pregunta 7

Para B=[[1, −1], [1, 2]], con los vectores de la base almacenados como columnas, ¿qué devuelve `np.linalg.solve(B, [1, 7])` y qué conviene comprobar después?

Mostrar la solución paso a paso

El sistema es c1−c2=1c_1-c_2=1 y c1+2c2=7c_1+2c_2=7. Su solución es c=(3,2)\boldsymbol{c}=(3,2). Reconstruye con BcB\boldsymbol{c} para comprobar que devuelve (1,7)(1,7); una comprobación numérica del residuo, como np.allclose(B @ coordinates, v), puede detectar un error de transposición o de índices. Comprueba también que BB sea cuadrada y tenga rango completo antes de considerar sus columnas una base de R2\mathbb{R}^2.

Pregunta 8

Un modelo lineal calcula la puntuación de v=(1, 7) con w=(2, 1). Si las coordenadas cambian a c=(3, 2) en la base inclinada, ¿qué pesos correspondientes mantienen la puntuación? ¿Qué ocurre si se conservan los pesos antiguos?

Mostrar la solución paso a paso

Escribe v=Bc\boldsymbol{v}=B\boldsymbol{c}. Entonces wTv=(BTw)Tc\boldsymbol{w}^{\mathsf T}\boldsymbol{v}=(B^{\mathsf T}\boldsymbol{w})^{\mathsf T}\boldsymbol{c}, así que los nuevos pesos son BTw=(3,0)B^{\mathsf T}\boldsymbol{w}=(3,0). La puntuación es 3⋅3+0⋅2=93\cdot3+0\cdot2=9, igual a la anterior, 2⋅1+1⋅7=92\cdot1+1\cdot7=9. Si se aplican sin cambios los pesos antiguos (2,1)(2,1) a (3,2)(3,2), la puntuación es 2⋅3+1⋅2=82\cdot3+1\cdot2=8 y la salida del modelo cambia.

Fuentes

  1. Mathematics for Machine Learning book PDF
  2. NumPy documentation: numpy.linalg.solve
  3. NumPy documentation: numpy.linalg.matrix_rank