Curso de Matemáticas para IA · Lección 32 de 180
La dimensión cuenta direcciones independientes
Distingue el número de coordenadas de los embeddings del número de muestras y aprende por qué la forma de una matriz no revela cuántas direcciones independientes abarcan sus vectores.
Un lote de embeddings puede tener cuatro filas y cientos de coordenadas por fila. El primer número indica cuántas entradas se codificaron; el segundo, el ancho de coordenadas de cada salida. Por sí solo, ninguno de los dos indica cuántas direcciones independientes utilizan realmente los vectores observados.
En esta lección leeremos esas cantidades por separado, relacionaremos la dimensión con el número de vectores de una base y veremos por qué dos matrices con la misma forma pueden generar espacios de distintas dimensiones. La distinción importa al leer una API de embeddings, estimar qué información puede aportar un lote o describir una representación sin confundir los ejemplos almacenados con el espacio que los contiene.
La lección anterior mostró cómo una base proporciona una descripción en coordenadas para cada vector. Lección 31: Las bases dan sistemas de coordenadas compactos estableció la idea clave que necesitamos aquí: una base genera un espacio sin direcciones redundantes. El sitio complementario oficial de Mathematics for Machine Learning desarrolla la dimensión en la sección 2.6 del PDF del libro. Los pequeños conjuntos de datos, el código, la visualización y las evaluaciones de esta lección son originales.
Una base define la dimensión mediante un recuento
Recordemos que una base es un conjunto de vectores linealmente independientes que genera un espacio vectorial. Si todos los vectores de un espacio pueden describirse usando una base , la dimensión de es el número de vectores de esa base:
La notación significa «el número de elementos del conjunto ». No cuenta las entradas que se usan para escribir cada vector de la base. Todas las bases de un espacio de dimensión finita tienen el mismo número de vectores, aunque sus vectores concretos sean distintos. Ese recuento hace que la dimensión sea una propiedad del espacio y no de un sistema de coordenadas particular.
Cada vector anterior contiene tres coordenadas, pero esa no es la definición de dimensión. Lo decisivo es que los tres vectores forman una base: juntos generan todos los vectores de y ninguno es combinación lineal de los otros dos. Otra base puede apuntar en direcciones distintas y aun así contener exactamente tres vectores.
Cuatro muestras aún pueden vivir en tres dimensiones
Supongamos que un codificador devuelve cuatro vectores de :
Almacenemos cada vector como una fila de una matriz:
Su forma es : cuatro filas y tres columnas. Aquí, las filas son muestras y las columnas contienen las tres coordenadas de cada muestra. Las tres primeras filas son la base estándar, por lo que las cuatro muestras generan todo . La cuarta fila añade otra muestra, pero no otra dirección independiente, porque . El espacio vectorial tiene dimensión tres; el lote contiene cuatro ejemplos.
Ahora comparemos este lote:
Tiene la misma forma, , pero cada fila es un múltiplo de . Un solo vector, , genera las cuatro muestras, así que su espacio generado es una recta de dimensión uno. El espacio de coordenadas ambiente sigue siendo ; estas muestras concretas solo ocupan un subespacio unidimensional.
Dimensión de embeddings y forma del lote
La misma forma de cuatro por tres puede abarcar tres direcciones o una
Ambos lotes contienen cuatro muestras con tres coordenadas cada una. Las tablas de coordenadas muestran los valores exactos; los diagramas resumen cuántas direcciones independientes utilizan sus filas.
Tres direcciones independientes
Forma: 4 muestras × 3 coordenadas
| Muestra | Coordenada 1 | Coordenada 2 | Coordenada 3 |
|---|---|---|---|
| x₁ | 1 | 0 | 0 |
| x₂ | 0 | 1 | 0 |
| x₃ | 0 | 0 | 1 |
| x₄ | 1 | 1 | 1 |
Dimensión del espacio generado por las muestras3 direcciones
Una dirección independiente
Forma: 4 muestras × 3 coordenadas
| Muestra | Coordenada 1 | Coordenada 2 | Coordenada 3 |
|---|---|---|---|
| x₁ | 1 | 0 | 0 |
| x₂ | 2 | 0 | 0 |
| x₃ | −1 | 0 | 0 |
| x₄ | 3 | 0 | 0 |
Dimensión del espacio generado por las muestras1 dirección
Las filas cuentan entradas, las columnas cuentan coordenadas almacenadas y los vectores de una base cuentan direcciones independientes. La tabla contiene los datos exactos; los pequeños esquemas de direcciones son ilustrativos.
La forma indica cómo se almacena una matriz. No revela si sus filas son independientes: la dimensión de su espacio generado depende de los valores y de las relaciones entre ellos.
El diagrama mantiene separadas tres preguntas: cuántas entradas se codificaron, cuántas coordenadas contiene cada salida y cuántas direcciones abarcan esas salidas concretas. Las matrices comparten la misma forma, pero solo el primer lote alcanza todas las direcciones de .
NumPy informa de la forma, no de una base
La propiedad ndarray.shape de NumPy es una tupla que contiene la longitud de cada eje de una matriz. Para una matriz bidimensional almacenada como filas de coordenadas, esa tupla es (N, d). La forma nos dice cómo están organizados los valores. Para identificar la dimensión de un espacio generado, también debemos razonar si algunas filas pueden construirse a partir de las demás.
Este es el ejemplo sintético codificado directamente en NumPy:
import numpy as np
full = np.array([
[1.0, 0.0, 0.0],
[0.0, 1.0, 0.0],
[0.0, 0.0, 1.0],
[1.0, 1.0, 1.0],
])
line = np.array([
[1.0, 0.0, 0.0],
[2.0, 0.0, 0.0],
[-1.0, 0.0, 0.0],
[3.0, 0.0, 0.0],
])
print(full.shape, line.shape)
print(np.allclose(full[3], full[0] + full[1] + full[2]))
print(np.allclose(
line,
np.array([1.0, 2.0, -1.0, 3.0])[:, None]
* np.array([1.0, 0.0, 0.0]),
))
El resultado es:
(4, 3) (4, 3)
True
True
La primera línea confirma que ambas matrices tienen cuatro filas y tres coordenadas por fila. El primer True verifica que la última muestra de full es la suma de las tres filas de la base. El segundo confirma que cada muestra de line es el múltiplo indicado de . Esas relaciones justifican las dimensiones de los espacios generados: tres para full y una para line.
La documentación de formas de NumPy define la forma como la tupla de dimensiones de una matriz. Es una descripción del almacenamiento, no una garantía de que todas las coordenadas varíen de manera independiente. Una consulta rápida a len(full.shape) devolvería dos porque full tiene dos ejes. Ese número también es distinto de la dimensión tres de su espacio de embeddings.
El eje del lote no es el eje del embedding
La distinción también aparece en código de IA real. La documentación de uso de Sentence Transformers codifica tres frases con all-MiniLM-L6-v2 e informa de una matriz de embeddings con forma [3, 384]. La primera longitud corresponde a las tres frases proporcionadas; la segunda es el ancho de coordenadas de salida. La API del modelo ofrece get_embedding_dimension() para consultar el ancho de salida y su método encode devuelve embeddings para las entradas proporcionadas.
Con un millón de documentos almacenados y el mismo codificador, el corpus puede tener un millón de filas, mientras cada fila sigue teniendo 384 números. Aumentar el corpus añade más vectores; no convierte el espacio de embeddings en uno de un millón de dimensiones. A la inversa, cuatro salidas en no pueden generar las 384 dimensiones, porque cuatro vectores aportan como máximo cuatro direcciones independientes. Podrían generar menos si algunas salidas repiten una dirección o son combinaciones lineales de otras.
Hay otro límite que conviene recordar: el ancho de salida describe el modelo y la configuración elegidos, no una propiedad universal de los textos. Sentence Transformers permite especificar una dimensión de truncamiento de salida en encode; si se cambia esa configuración, también cambia el ancho de coordenadas devuelto. La API de encode documenta la opción truncate_dim. Aun así, los vectores deben compararse en un espacio de coordenadas compatible. Y una dimensión mayor, por sí sola, no garantiza que un embedding conserve más significado útil; eso requiere evaluar la representación para la tarea prevista.
La dimensión cuenta las direcciones independientes de una base. Una forma cuenta las longitudes de los ejes de una matriz y un lote cuenta muestras. Cuando dejamos de usar una misma etiqueta para esas cantidades, resulta más fácil plantear la siguiente pregunta: ¿cuántas direcciones independientes contienen las filas reales? La lección 33 presenta el rango de una matriz para contar sistemáticamente esa dimensión efectiva.
Comprueba lo que has aprendido
Pregunta 1
Una base B de un espacio vectorial contiene cinco vectores. ¿Cuál es la dimensión del espacio y por qué no la define el número de coordenadas escritas dentro de un vector de la base?
Mostrar la solución paso a paso
El espacio tiene dimensión cinco porque la dimensión se define como el número de vectores de una base: . Una lista de coordenadas describe un vector con respecto a un sistema de coordenadas. Sus entradas no son vectores de base distintos de , así que contarlas responde a otra pregunta.
Pregunta 2
Un codificador devuelve una matriz de forma (7, 12), donde cada fila es un embedding. ¿Cuántas muestras hay, cuántas coordenadas tiene cada embedding y cuál es la dimensión del espacio de coordenadas ambiente?
Mostrar la solución paso a paso
La primera entrada de la forma indica siete filas, por lo que hay siete muestras. La segunda entrada indica doce coordenadas por fila. Si son vectores densos ordinarios en las coordenadas de salida del codificador, el espacio ambiente es , de dimensión 12. Las siete muestras no cambian la dimensión de ese espacio de coordenadas.
Pregunta 3
Para x₁ = (1, 0, 0), x₂ = (0, 1, 0), x₃ = (0, 0, 1) y x₄ = (1, 1, 1), ¿cuántas muestras hay y cuál es la dimensión de su espacio generado? Muestra la dependencia que utilizas.
Mostrar la solución paso a paso
Hay cuatro muestras. Las tres primeras son los vectores de la base estándar de , así que son independientes y generan un espacio tridimensional. Se cumple que , por lo que la cuarta no aporta una dirección nueva. El espacio generado tiene dimensión tres, no cuatro.
Pregunta 4
Cuatro filas tienen la forma (c, 0, 0), donde c vale 1, 2, −1 y 3. ¿Cuál es la dimensión de su espacio generado y qué base puedes dar?
Mostrar la solución paso a paso
Cada fila es igual a . Por tanto, todos los vectores están en la recta . El vector no nulo genera esa recta y el conjunto de un solo elemento es una base. El espacio generado tiene dimensión uno.
Pregunta 5
Dos matrices de datos tienen forma (4, 3). ¿Pueden tener espacios generados por sus filas de dimensiones distintas? Da una explicación concreta usando los dos ejemplos de la lección.
Mostrar la solución paso a paso
Sí. En full, las tres primeras filas son los tres vectores de la base estándar, así que generan y el espacio generado por las filas tiene dimensión tres. En line, las cuatro filas son múltiplos de , por lo que generan una recta y tienen dimensión uno. La forma registra el número de filas y columnas; no codifica las relaciones lineales entre los valores de las filas.
Pregunta 6
Si N vectores están en ℝᵈ, explica por qué la dimensión r de su espacio generado no puede superar ni N ni d.
Mostrar la solución paso a paso
Los propios vectores generan su espacio. Al eliminar los elementos redundantes, quedan como máximo vectores independientes para formar una base, así que . Además, el espacio generado es un subespacio de , cuya dimensión es , por lo que . Juntando ambos límites obtenemos .
Pregunta 7
Sentence Transformers documenta una forma de salida [3, 384] para tres frases codificadas. ¿Qué número es el total de muestras, cuál es el ancho de los embeddings y pueden esas tres salidas generar todo ℝ³⁸⁴? Explica tu respuesta.
Mostrar la solución paso a paso
Hay tres muestras de frases y cada vector de salida tiene 384 coordenadas. El espacio ambiente de embeddings es . Tres vectores pueden generar como máximo tres direcciones independientes, así que no pueden generar las 384 dimensiones. Podrían generar menos de tres si algunas salidas fueran dependientes.
Pregunta 8
Una matriz NumPy X tiene forma (5, 9). ¿Por qué len(X.shape) es igual a 2 sin que eso implique que los embeddings tengan dimensión dos?
Mostrar la solución paso a paso
X.shape tiene una entrada por cada eje de la matriz: cinco filas y
nueve columnas. Por eso la matriz tiene dos ejes y len(X.shape)
cuenta esos dos ejes. Si cada fila es un embedding con nueve coordenadas, el
espacio de embeddings ambiente es y tiene dimensión nueve. Los
ejes de la matriz y las direcciones de una base vectorial son recuentos
distintos.