Curso de Matemáticas para IA · Lección 27 de 180
Espacios vectoriales: comprueba si las representaciones de IA cumplen las reglas
Comprueba el vector cero y la clausura bajo suma y multiplicación escalar; después, usa embeddings normalizados como contraejemplo para distinguir un conjunto útil de representaciones de un espacio vectorial.
Un proceso de embeddings puede forzar que cada vector de salida distinto de cero tenga longitud . Esto facilita los cálculos de similitud, pero crea una trampa sutil: las salidas normalizadas no forman un espacio vectorial con la suma de vectores y la multiplicación por escalares habituales. Si sumas dos o cambias la escala de uno, el resultado puede salir del conjunto permitido.
Esta lección convierte «espacio vectorial» en una prueba y no en una etiqueta. Al terminar, podrás comprobar el vector cero y la clausura bajo suma y multiplicación escalar; construir un contraejemplo decisivo cuando falla una regla; y explicar por qué los embeddings normalizados pertenecen a un espacio vectorial ambiente sin constituir uno por sí mismos.
Objetivo de aprendizaje: comprobar si un conjunto satisface las reglas de clausura de un espacio vectorial.
Lección 17: Las combinaciones lineales construyen nuevos vectores (en inglés) presentó la operación . Lección 26: Grupos, anillos y cuerpos explican las operaciones válidas (en inglés) mostró por qué un conjunto y sus operaciones deben considerarse conjuntamente. La sección 2.4 del libro oficial Mathematics for Machine Learning formaliza esa combinación como un espacio vectorial. Las pruebas, el contraejemplo de embeddings, el código, la ilustración y los ejercicios siguientes son originales.
Un espacio vectorial garantiza que las combinaciones lineales permanecen dentro
Sea un conjunto cuyos elementos se llaman vectores. En un espacio vectorial real se dispone de dos operaciones:
La primera operación suma dos vectores. La segunda multiplica un vector por un número real, o escalar. Las flechas que terminan en expresan la clausura: ambas operaciones deben devolver otro elemento del mismo conjunto.
La clausura por sí sola no constituye la definición completa. La suma vectorial también debe tener un vector cero e inversos aditivos; la suma debe ser asociativa y conmutativa; la multiplicación escalar debe asociarse correctamente; y deben cumplirse las conocidas reglas distributivas y de identidad.
La regla para cada escalar es exigente. Un conjunto que admite la multiplicación por pero no por , o admite escalares positivos pero no el , no es un espacio vectorial real.
Las operaciones heredadas simplifican la prueba
La mayoría de las preguntas prácticas parte de un conjunto candidato que usa la suma y la multiplicación escalar ordinarias ya definidas en . Las leyes algebraicas se heredan del espacio ambiente. Solo queda determinar si los resultados llegan a salir de .
Hay una asimetría importante en el uso de esta prueba:
- Para demostrar que es un espacio vectorial, el argumento de clausura debe abarcar todas las entradas permitidas.
- Para demostrar que no es un espacio vectorial, basta con un contraejemplo válido.
Comprobar tres vectores convenientes no demuestra la clausura universal. Encontrar un par cuya suma salga del conjunto basta para refutarla de inmediato.
Ejemplo resuelto: una restricción que se conserva en las combinaciones
Considera el conjunto
Todo vector de tiene la forma . El vector cero pertenece a si se elige . Ahora toma vectores cualesquiera
and arbitrary scalars .
Para comprobarlo numéricamente, elige , , y :
El cálculo ilustra la regla, mientras que el argumento simbólico la demuestra para todos los valores.
Los embeddings normalizados no superan la misma prueba
Ahora definamos el conjunto de longitud unitaria
Esta es la esfera unitaria del espacio vectorial ambiente . Una biblioteca de embeddings puede devolver intencionadamente vectores de este conjunto. Por ejemplo, la documentación actual de encode de Sentence Transformers describe la opción normalize_embeddings, que normaliza los vectores devueltos a longitud .
En dos dimensiones, toma
Ambos tienen norma euclídea , así que pertenecen a . Su suma es
Como , la suma queda fuera de . También falla la clausura bajo multiplicación escalar:
El vector cero constituye un tercer fallo porque su norma es , no .
Contraejemplo estático de clausura
El círculo unitario no admite combinaciones lineales ordinarias
El círculo azul contiene todos los vectores bidimensionales de norma euclídea 1. Los vectores unitarios de línea continua y discontinua empiezan dentro del conjunto, mientras que su suma, un vector duplicado y el vector cero no cumplen la condición de pertenencia.
| Prueba de clausura | Entradas en S | Resultado | Norma del resultado | Veredicto |
|---|---|---|---|---|
| Suma | e₁ y e₂ | e₁ + e₂ = (1, 1) | √2 | Fuera de S |
| Multiplicación escalar | 2 y e₁ | 2e₁ = (2, 0) | 2 | Fuera de S |
| Vector cero | Identidad aditiva requerida | 0 = (0, 0) | 0 | No pertenece a S |
Cualquiera de las filas basta para refutar que sea un espacio vectorial. Las tres filas muestran requisitos distintos, por lo que corregir un fallo no resolvería los demás.
La ilustración usa porque la geometría cabe en una página. El mismo contraejemplo escalar funciona en cualquier dimensión: si , entonces . Por tanto, los embeddings normalizados a longitud unitaria en no son un espacio vectorial con las operaciones habituales.
Volver a normalizar cambia la operación
Un proceso habitual suma o promedia embeddings normalizados y después vuelve a normalizar el resultado. El procedimiento puede ser útil, pero la normalización final es una nueva operación no lineal:
siempre que el denominador no sea cero. La suma sin normalizar primero sale de la esfera unitaria; la normalización la devuelve. Volver a llevar el resultado a no hace que sea cerrado bajo la operación de suma original.
El caso cero importa. Si , then , y dividirlo por su norma implicaría dividir por cero. La implementación necesita una política explícita para las filas nulas o casi nulas.
La documentación de linalg.norm de NumPy especifica los controles axis y keepdims que se usan a continuación para calcular una norma por embedding y conservar una forma de columna compatible con la difusión:
import numpy as np
def normalize_rows(vectors):
vectors = np.asarray(vectors, dtype=float)
norms = np.linalg.norm(vectors, axis=1, keepdims=True)
normalized = np.divide(
vectors,
norms,
out=np.zeros_like(vectors),
where=norms > 0,
)
return normalized
embeddings = np.array([
[3.0, 4.0],
[-4.0, 3.0],
[0.0, 0.0],
])
normalized = normalize_rows(embeddings)
print(normalized)
print(np.linalg.norm(normalized, axis=1))
La salida es
[[ 0.6 0.8]
[-0.8 0.6]
[ 0. 0. ]]
[1. 1. 0.]
Las dos primeras filas quedan en el círculo unitario. La fila cero permanece en cero porque la función usa deliberadamente ese valor como alternativa técnica. Ese valor pertenece a , pero no a , por lo que no se debe afirmar que todas las salidas tengan norma unitaria.
Una revisión fiable de la clausura analiza las operaciones reales
Cuando la descripción de un modelo llama «espacio» a un conjunto de representaciones, identifica el conjunto y sus operaciones antes de suponer que tiene estructura lineal. Los embeddings sin procesar pueden pertenecer a . Los embeddings normalizados a longitud unitaria están en una esfera. Los vectores de probabilidad con coordenadas no negativas que suman están en otro conjunto restringido. Todos pueden servir para algoritmos útiles, pero la suma ordinaria y la multiplicación por cualquier escalar real no necesariamente mantienen el resultado dentro del conjunto.
La lección siguiente estudia los subespacios: subconjuntos restringidos que sí superan la prueba de clausura y, por tanto, conservan la estructura lineal ambiente. Antes de continuar, usa las preguntas siguientes para practicar cómo demostrar la clausura universal y detectar fallos decisivos.
Comprueba lo que has aprendido
Pregunta 1
Para un subconjunto no vacío de Rⁿ con las operaciones vectoriales habituales, ¿qué tres comprobaciones de pertenencia establecen que es un espacio vectorial?
Mostrar la solución paso a paso
Primero, comprueba que el vector cero pertenece al conjunto. Segundo, elige e cualesquiera del conjunto y demuestra que sigue en él. Tercero, elige un escalar real y un cualquiera del conjunto y demuestra que sigue en él. Las demás leyes del espacio vectorial se heredan de .
Pregunta 2
Demuestra que U = {(t, −t): t ∈ R} es cerrado bajo la combinación lineal a u + b v.
Mostrar la solución paso a paso
Toma y cualesquiera de , con y reales cualesquiera. Entonces
Define . El resultado es , que coincide con la forma que define . Como las entradas y los escalares eran arbitrarios, esto demuestra la clausura y no solo comprueba un ejemplo.
Pregunta 3
Usa e₁ = (1, 0) y e₂ = (0, 1) para refutar la clausura bajo suma de los vectores normalizados a longitud unitaria.
Mostrar la solución paso a paso
Ambas entradas tienen norma , por lo que pertenecen al conjunto normalizado a longitud unitaria. Su suma es y su norma es , que no es . Así, dos elementos válidos producen un resultado fuera del conjunto. Un solo par como este refuta la clausura bajo suma.
Pregunta 4
¿Multiplicar cada vector unitario por −1 refuta la clausura escalar? Si no, elige un escalar que sí lo haga.
Mostrar la solución paso a paso
No. Si , entonces , por lo que el escalar mantiene cada vector unitario en la esfera. Sin embargo, la clausura escalar debe cumplirse para todo escalar real. Al elegir , se obtiene , así que queda fuera de la esfera unitaria y refuta la clausura.
Pregunta 5
¿Por qué la normalización por filas debe tratar explícitamente el vector cero?
Mostrar la solución paso a paso
La fórmula habitual divide por . Para , la norma es , así que la fórmula exige dividir por cero y no está definida. El código debe detectar ese caso y elegir una política documentada, como devolver cero, producir un error o filtrar la fila. Devolver cero es práctico en algunos procesos, pero el resultado no está normalizado a longitud unitaria.
Pregunta 6
Un proceso calcula el promedio de dos embeddings unitarios y lo normaliza. ¿Por qué eso no demuestra que la esfera unitaria sea un espacio vectorial?
Mostrar la solución paso a paso
Primero se calcula el promedio ordinario: . Su norma no tiene por qué ser , por lo que esta combinación lineal puede salir de la esfera. Después, el proceso aplica el mapa de normalización independiente para devolverla a la esfera. La clausura evalúa la suma y la multiplicación escalar originales; añadir un paso correctivo cambia la operación estudiada.
Pregunta 7
El cuadrante no negativo Q = {(x₁, x₂): x₁ ≥ 0 y x₂ ≥ 0} contiene el cero y es cerrado bajo la suma. ¿Es Q un espacio vectorial real?
Mostrar la solución paso a paso
No. Elige , que pertenece a , y el escalar real . Entonces , cuya primera coordenada es negativa, así que el resultado queda fuera de . El conjunto no cumple la clausura escalar aunque contenga el cero y sea cerrado bajo la suma.