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

Subespacios para IA: poner a prueba familias de características restringidas

Aprende la prueba de subespacio, demuestra que un plano es cerrado bajo operaciones vectoriales y usa NumPy para examinar direcciones de representación de menor dimensión.

Comparte este artículo

Un codificador puede producir cientos de coordenadas para cada entrada, aunque las representaciones cercanas solo varíen en unas pocas direcciones coherentes. Para razonar sobre esa restricción, no basta con una nube de puntos: necesitamos un conjunto que siga siendo válido al sumar y escalar sus direcciones.

Ese conjunto es un subespacio vectorial. Al terminar esta lección, podrás aplicar la prueba de subespacio, demostrar que un plano que pasa por el origen la supera, descartar contraejemplos tentadores e interpretar un modelo lineal de menor dimensión para los desplazamientos de representaciones aprendidas.

Resultado de aprendizaje: Comprobar las condiciones de subespacio e interpretar una región de menor dimensión.

Lección 27: Los espacios vectoriales definen representaciones válidas estableció las reglas del espacio ambiente para la suma de vectores y la multiplicación por escalares. Un subespacio conserva esas operaciones y restringe los vectores permitidos. El sitio oficial complementario de Mathematics for Machine Learning desarrolla los subespacios vectoriales en la sección 2.4.3 del PDF del libro. El escenario de representación, los cálculos, el código, la visualización y las evaluaciones que siguen son originales.

Una restricción debe mantenerse tras las operaciones

Sea V=R3V=\mathbb{R}^3 el espacio vectorial ambiente y sea U⊆VU\subseteq V un conjunto candidato. Decir que UU es un subespacio significa que los vectores permanecen dentro de UU al usar la suma y la multiplicación por escalares ya definidas en VV. El espacio ambiente aporta las operaciones; el subconjunto debe demostrar que es cerrado respecto de ellas.

Comprobar el vector cero es rápido y concluyente. Todo subespacio debe contenerlo, porque el cierre respecto de escalares exige 0u=00u=0 para cada u∈Uu\in U. El cierre bajo la suma permite combinar dos direcciones admitidas. El cierre bajo escalares permite que una dirección siga admitida al estirarla, reducirla, invertirla o llevarla a cero.

La prueba compacta de combinación lineal reúne esos requisitos. Al tomar α=β=1\alpha=\beta=1 se obtiene la suma; con β=0\beta=0, la multiplicación por escalares; y con ambos coeficientes iguales a cero, el vector cero. Es la misma operación de combinación lineal presentada en la lección 17, ahora usada como prueba de pertenencia para toda una familia de vectores.

Ejemplo resuelto: un plano que pasa por el origen

Considera el conjunto

U={[x1x2x3]∈R3:x3=x1+x2}.U=\left\{ \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\in\mathbb{R}^3 :x_3=x_1+x_2 \right\}.

La ecuación restringe las tres coordenadas mostradas mediante una relación. Elige libremente x1=ax_1=a y x2=bx_2=b; entonces x3=a+bx_3=a+b. Por tanto, todo vector de UU tiene la forma

[aba+b]=a[101]+b[011].\begin{bmatrix}a\\b\\a+b\end{bmatrix} =a\begin{bmatrix}1\\0\\1\end{bmatrix} +b\begin{bmatrix}0\\1\\1\end{bmatrix}.

Dos números, aa y bb, determinan las tres coordenadas. Geométricamente, el resultado es un plano dentro del espacio tridimensional. El plano pasa por el origen porque a=b=0a=b=0 produce $(0,0,0).

Ahora realiza cada parte de la prueba. Escribe dos elementos cualesquiera como

u=[aba+b],v=[cdc+d].u=\begin{bmatrix}a\\b\\a+b\end{bmatrix}, \qquad v=\begin{bmatrix}c\\d\\c+d\end{bmatrix}.

Su suma es

u+v=[a+cb+da+b+c+d].u+v =\begin{bmatrix}a+c\\b+d\\a+b+c+d\end{bmatrix}.

La tercera coordenada es la suma de las dos primeras: (a+c)+(b+d)=a+b+c+d(a+c)+(b+d)=a+b+c+d. Por tanto, u+v∈Uu+v\in U. Al escalar uu por cualquier λ\lambda real se obtiene

λu=[λaλbλ(a+b)]=[λaλbλa+λb],\lambda u =\begin{bmatrix}\lambda a\\\lambda b\\\lambda(a+b)\end{bmatrix} =\begin{bmatrix}\lambda a\\\lambda b\\\lambda a+\lambda b\end{bmatrix},

que también satisface la ecuación que lo define. Junto con la comprobación del vector cero, esto demuestra que UU es un subespacio de R3\mathbb{R}^3.

Mapa del plano en el espacio

Un subespacio mantiene cada combinación lineal en el plano

El plano azul contiene el origen y todos los vectores cuya tercera coordenada es la suma de las dos primeras. Las flechas continuas permanecen en el plano; la flecha discontinua no satisface la ecuación.

Subespacio plano dentro de un espacio de coordenadas tridimensionalUn plano azul que pasa por el origen muestra el conjunto x tres igual a x uno más x dos. Los vectores u, v y u menos v están en el plano. El vector discontinuo r termina fuera del plano y se une a su punto correspondiente en el plano mediante una separación discontinua.U: x₃ = x₁ + x₂u = [1, 0, 1]v = [0, 1, 1]u − v = [1, −1, 0]r = [1, 0, 0]no cumple 0 = 1 + 00
El plano necesita dos coordenadas elegidas libremente, aunque sus vectores se escriban con tres. Pasar por cero y ser cerrado bajo la suma y la multiplicación por escalares lo convierten en un subespacio.
Comprobaciones de coordenadas representadas en el diagrama
VectorCoordenadasPrueba de pertenenciaResultado
u[1, 0, 1]1 = 1 + 0Dentro de U
v[0, 1, 1]1 = 0 + 1Dentro de U
u − v[1, −1, 0]0 = 1 + (−1)Dentro de U
r[1, 0, 0]0 ≠ 1 + 0Fuera de U

La imagen sugiere el resultado, pero el álgebra lo demuestra: un dibujo puede mostrar algunas flechas, aunque el cierre debe cumplirse para cada par de vectores y cada coeficiente real.

El diagrama responde a la pregunta geométrica: «¿Hacia dónde pueden moverse estas características?». El plano tiene menor dimensión que su espacio ambiente porque una coordenada queda determinada por las otras dos. Aun así, la demostración importa más que el dibujo en perspectiva. Unas pocas flechas que llegan al plano no establecen el cierre para los infinitos vectores posibles.

Tres conjuntos atractivos que no superan la prueba

Los subespacios son casos especiales entre los subconjuntos. La forma, la simetría y la apariencia plana no bastan.

Primero, traslada una unidad el plano del ejemplo:

W={x∈R3:x3=x1+x2+1}.W=\{x\in\mathbb{R}^3:x_3=x_1+x_2+1\}.

Sigue siendo un plano, pero (0,0,0)(0,0,0) no cumple la ecuación porque 0≠0+0+10\neq0+0+1. Por tanto, WW no es un subespacio vectorial. La multiplicación por escalares también revela el problema: si w∈Ww\in W, entonces 2w2w generalmente satisface x3=x1+x2+2x_3=x_1+x_2+2, no la ecuación que define WW.

En segundo lugar, los vectores de longitud uno no forman un subespacio. Una representación embebida normalizada ee puede cumplir ∥e∥=1\lVert e\rVert=1, mientras que 2e2e tiene longitud 22 y 0e0e, longitud 00. El conjunto no es cerrado bajo escalares y excluye el vector cero. Por eso, las representaciones normalizadas analizadas en la lección 27 pueden servir como entradas del modelo sin formar un espacio vectorial ni un subespacio.

En tercer lugar, un conjunto de datos finito normalmente no es un subespacio. Aunque cada representación registrada cumpla x3=x1+x2x_3=x_1+x_2, las filas almacenadas no tienen por qué incluir sus sumas, sus opuestos ni todos sus múltiplos reales. La familia definida por la restricción UU es un subespacio; la muestra finita usada para descubrirla o estimarla es solo un subconjunto de UU.

NumPy puede comprobar ejemplos, pero no sustituir la demostración

Para el plano del ejemplo, almacena las dos direcciones generadoras como filas. Cada fila de coefficients indica a NumPy cuánto combinar de cada dirección:

import numpy as np

directions = np.array([
    [1.0, 0.0, 1.0],
    [0.0, 1.0, 1.0],
])

coefficients = np.array([
    [2.0, -1.0],
    [-1.0, 3.0],
    [0.5, 0.25],
])

offsets = coefficients @ directions
constraint = np.array([1.0, 1.0, -1.0])
constraint_residuals = offsets @ constraint

print(offsets)
print(constraint_residuals)
print(np.allclose(
    constraint_residuals,
    0.0,
    rtol=0.0,
    atol=1e-12,
))

La salida es

[[ 2.   -1.    1.  ]
 [-1.    3.    2.  ]
 [ 0.5   0.25  0.75]]
[0. 0. 0.]
True

El primer @ forma tres combinaciones lineales. El segundo calcula x1+x2−x3x_1+x_2-x_3 para cada resultado. La documentación de NumPy matmul define la regla de dimensiones que implementa @; aquí, una matriz de coeficientes de 3×23\times2 multiplicada por una matriz de direcciones de 2×32\times3 produce tres vectores en R3\mathbb{R}^3.

El ejemplo exacto produce ceros, pero las activaciones de modelos reales usan aritmética de precisión finita. La documentación de NumPy allclose define la comparación con tolerancia y advierte que su tolerancia absoluta predeterminada puede ser inadecuada para valores mucho menores que uno. Establecer rtol=0.0 y elegir un atol explícito hace visible la prueba de cero deseada. La tolerancia debe corresponderse con la escala de activación y el error que la aplicación pueda aceptar; 1e-12 es adecuado para este ejemplo float64 construido, no es un umbral universal.

Este programa comprueba vectores elegidos frente a una restricción conocida. No demuestra que una nube arbitraria de activaciones del modelo pertenezca al plano. Esa afirmación más amplia requiere un modelo ajustado, análisis de residuos y evidencia de que la aproximación lineal elegida es adecuada para la región estudiada.

Las variedades de representación suelen ser planas solo localmente

Sea un codificador que asigna a la entrada xx una representación h(x)∈Rdh(x)\in\mathbb{R}^d. Elige una representación ancla h0h_0 y examina los desplazamientos cercanos

Δh=h(x)−h0.\Delta h=h(x)-h_0.

Si esos desplazamientos se aproximan bien mediante combinaciones de unas pocas direcciones, un subespacio UU proporciona un modelo lineal local útil. En las coordenadas originales, la aproximación es el conjunto trasladado

h0+U={h0+u:u∈U}.h_0+U=\{h_0+u:u\in U\}.

La familia de desplazamientos UU pasa por cero. El parche de representación trasladado h0+Uh_0+U pasa por h0h_0 y, en general, no es un subespacio de Rd\mathbb{R}^d. Centrar los datos es lo que separa una dirección válida de una ubicación absoluta.

Esta perspectiva es una aproximación, no afirma que todas las representaciones aprendidas estén en un único plano global. En el artículo principal de Yoshua Bengio sobre representaciones profundas, el aprendizaje de variedades se describe como la búsqueda de regiones de alta densidad y baja dimensión, y de sistemas de coordenadas para ellas. El artículo presenta PCA como un antecedente lineal del aprendizaje de variedades y explica por qué una hipótesis lineal global puede pasar por alto estructuras curvas. Localmente, un plano puede resumir las direcciones que varían cerca de un ancla; a mayor distancia, las direcciones útiles pueden girar o el error de aproximación puede crecer.

Para quienes trabajan en IA, esto establece una regla concreta de interpretación:

  • un subespacio describe una familia de desplazamientos permitidos, cerrada bajo mezclas y escalados;
  • un plano trasladado describe representaciones posibles cerca de un ancla; y
  • una variedad de representación curva puede requerir planos locales distintos en diferentes vecindades.

La prueba de subespacio indica si el objeto lineal es internamente coherente. No indica si representa bien los datos, si captura una característica causal o si conserva la información que necesita una tarea posterior.

Los casos límite afinan la prueba

Hay dos subespacios que es fácil pasar por alto. El conjunto que solo contiene el vector cero, {0}\{0\}, cumple todas las condiciones: cero más cero es cero y cualquier escalar por cero es cero. Todo el espacio ambiente VV también es un subespacio de sí mismo. Se denominan subespacios triviales, aunque ambos son casos límite útiles al revisar un argumento.

El conjunto vacío no supera la prueba porque no contiene el cero. Un conjunto con un único vector no nulo, {u}\{u\}, también falla sobre los números reales: 2u2u no pertenece al conjunto salvo que u=0u=0. En cambio, la recta completa {λu:λ∈R}\{\lambda u:\lambda\in\mathbb{R}\} sí la supera porque incluye todos los múltiplos reales, sus sumas y el cero.

Los subespacios proporcionan un lenguaje preciso para familias restringidas de características. Una vez que un conjunto supera la prueba, cualquier combinación lineal sigue siendo válida. La siguiente lección plantea otra pregunta sobre las direcciones usadas para describir ese conjunto: si algunas son redundantes.

Comprueba lo que has aprendido

Pregunta 1

¿Qué tres condiciones debe cumplir un subconjunto no vacío U de un espacio vectorial real para ser un subespacio?

Mostrar la solución paso a paso

Primero, comprueba que 0∈U0\in U. Segundo, toma u,v∈Uu,v\in U arbitrarios y demuestra que u+v∈Uu+v\in U. Tercero, toma un escalar real arbitrario λ\lambda y un u∈Uu\in U cualquiera, y demuestra que λu∈U\lambda u\in U. Los vectores y el escalar deben ser arbitrarios, porque comprobar unos pocos ejemplos no demuestra el cierre de todo el conjunto.

Pregunta 2

Usa la prueba compacta para demostrar que U = {(a, b, a + b): a, b son reales} es cerrado bajo combinaciones lineales.

Mostrar la solución paso a paso

Elige u=(a,b,a+b)u=(a,b,a+b) y v=(c,d,c+d)v=(c,d,c+d) en UU, con α\alpha y β\beta reales. Entonces

αu+βv=(αa+βc,  αb+βd,  α(a+b)+β(c+d)).\alpha u+\beta v =(\alpha a+\beta c,\;\alpha b+\beta d,\; \alpha(a+b)+\beta(c+d)).

La tercera coordenada es la suma de las dos primeras. Por tanto, el resultado tiene la forma requerida y pertenece a UU. Como UU no está vacío, la prueba compacta también garantiza el vector cero.

Pregunta 3

Para u = (2, -1, 1) y v = (-1, 3, 2), calcula -u + 2v y comprueba si el resultado pertenece al plano de la lección.

Mostrar la solución paso a paso

Primero escala: −u=(−2,1,−1)-u=(-2,1,-1) y 2v=(−2,6,4)2v=(-2,6,4). Al sumarlos se obtiene −u+2v=(−4,7,3)-u+2v=(-4,7,3). La ecuación de pertenencia es x3=x1+x2x_3=x_1+x_2; aquí, 3=−4+73=-4+7. La ecuación se cumple, así que el resultado pertenece al plano, como predice el cierre.

Pregunta 4

¿Por qué el plano trasladado W = {x in R^3: x_3 = x_1 + x_2 + 1} falla de inmediato la prueba de subespacio?

Mostrar la solución paso a paso

Comprueba el vector cero antes de hacer cálculos más largos. Al sustituirlo se obtiene 0=0+0+10=0+0+1, que es falso, así que 0∉W0\notin W. Todo subespacio vectorial debe contener el cero; por tanto, WW no puede ser un subespacio. La constante adicional desplaza el plano fuera del origen.

Pregunta 5

¿Forman un subespacio todos los vectores de representación de longitud unitaria? Muestra qué operación falla.

Mostrar la solución paso a paso

No. Sea ee un vector de longitud unitaria, de modo que ∥e∥=1\lVert e\rVert=1. El cierre bajo escalares exigiría que 2e2e y 0e0e siguieran en el conjunto. Sus longitudes son 2 y 0, respectivamente, así que ninguno tiene longitud unitaria. El conjunto también excluye el vector cero. La normalización es útil, pero su familia de salidas no es un subespacio vectorial.

Pregunta 6

El código NumPy informa residuos de restricción [0, 0, 0]. ¿Qué se ha establecido y qué sigue sin demostrarse?

Mostrar la solución paso a paso

Se ha establecido que los tres desplazamientos construidos satisfacen x1+x2−x3=0x_1+x_2-x_3=0 con la tolerancia numérica elegida. También se verifican las dimensiones de las matrices y las operaciones de esos ejemplos. No se demuestra que todas las activaciones reales del modelo estén en este plano, que el plano se ajuste bien a un conjunto de datos mayor ni que las direcciones representadas importen para una tarea posterior. Esas afirmaciones empíricas requieren más evidencia.

Pregunta 7

¿Por qué restamos un ancla h_0 antes de modelar las representaciones cercanas con un subespacio U?

Mostrar la solución paso a paso

Los subespacios describen direcciones y deben pasar por cero. Las representaciones cercanas suelen agruparse alrededor de un ancla no nula h0h_0. Restarla produce desplazamientos Δh=h(x)−h0\Delta h=h(x)-h_0, cuyo vector cero significa «ningún movimiento desde el ancla». Podemos modelar esos desplazamientos con UU y luego sumar el ancla para obtener el parche local trasladado h0+Uh_0+U.

Pregunta 8

Clasifica cada conjunto como subespacio de R^3 o no: {0}, R^3, el conjunto vacío y {lambda u: lambda es real} para un u fijo no nulo.

Mostrar la solución paso a paso

{0}\{0\} es un subespacio porque la suma y la multiplicación por escalares nunca salen del cero. R3\mathbb{R}^3 es un subespacio de sí mismo porque sus operaciones vectoriales son cerradas. El conjunto vacío no es un subespacio porque carece del cero. Por último, {λu:λ∈R}\{\lambda u:\lambda\in\mathbb{R}\} es un subespacio: contiene cero cuando λ=0\lambda=0, escalar solo cambia el coeficiente y sumar λu+μu=(λ+μ)u\lambda u+\mu u=(\lambda+\mu)u produce otro elemento del mismo conjunto.

Fuentes

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.matmul
  4. NumPy documentation: numpy.allclose
  5. Deep Learning of Representations