Geometría y trigonometría
Este capítulo desarrolla la intuición de los vectores como "dirección + longitud", comprende las funciones trigonométricas básicas y utiliza la intuición espacial del sistema de coordenadas como base para aprender el "espacio vectorial" del álgebra lineal.
El embedding de palabras, el cálculo de similitud en sistemas de recomendación y la codificación posicional del Transformer se basan todos en la intuición geométrica de este capítulo.
Vectores planos: dirección + longitud
¿Qué es un vector?
Un número ordinario (escalar) solo lleva una información: su "magnitud", por ejemplo, "la temperatura es de 25 grados".
VectorLleva dos informaciones a la vez:DirecciónyLongitud (módulo)。
En el sistema de coordenadas cartesianas del plano, un vector se escribe en forma de coordenadas, lo que indica la posición alcanzada "partiendo del origen, moviéndose x unidades en la dirección x e y unidades en la dirección y"; la flecha en sí misma codifica la dirección y la longitud.
Longitud de un vector (módulo)
Esto es el teorema de Pitágoras: la longitud de un vector es la hipotenusa del triángulo rectángulo formado por sus componentes en los ejes x e y.
Suma de vectores y multiplicación por un escalar
| Operación | Regla algebraica | Significado geométrico |
|---|---|---|
| Suma | Cabeza con cola: une el punto inicial del segundo vector con el punto final del primer vector. | |
| Multiplicación por un escalar | Solo cambia la longitud (si k es negativo, invierte la dirección), pero no cambia la línea en la que se encuentra la dirección. |
Producto punto de vectores: mide "qué tan cercanas están dos direcciones"
dondees el ángulo entre los dos vectores. El signo del producto punto tiene un significado geométrico claro:
| Signo del producto punto | Rango del ángulo | Significado geométrico |
|---|---|---|
| Direcciones aproximadamente iguales | ||
| Los dos vectores son perpendiculares (ortogonales) | ||
| Direcciones aproximadamente opuestas |
Por qué los vectores son cruciales para la IA
En el aprendizaje automático, un dato de muestra (una imagen, el embedding de un texto, las características de un usuario) es, en esencia,un vector。
Cuanto mayor sea el producto punto (o el coseno del ángulo) de los vectores embedding de dos palabras, más similares suelen ser semánticamente; esta es la base matemática del "cálculo de similitud" en los vectores de palabras y en los sistemas de recomendación.
Lo que hace cada capa de la red neuronal, en esencia, es el producto punto entre el vector de pesos y el vector de entrada.
Ejemplo
import math
# Dos "vectores de palabras": supongamos que son los embeddings de dos palabras (simplificados a 2D)
king = (3, 4)
queen = (4, 3)
# Módulo |v| = sqrt(x² + y²)
norm_king = math.sqrt(3**2 + 4**2) # 5
norm_queen = math.sqrt(4**2 + 3**2) # 5
print(norm_king, norm_queen)
# Producto punto a·b = a₁b₁ + a₂b₂
dot = king[0] * queen[0] + king[1] * queen[1]
print(dot)
# Coseno del ángulo cos θ = (a·b) / (|a||b|); cuanto más cercano a 1, más cercanas son las direcciones de los dos vectores
cos_theta = dot / (norm_king * norm_queen)
print(cos_theta)
El resultado de ejecutar el código anterior es:
5.0 5.0 24 0.96
Una similitud coseno de 0.96 significa que las direcciones de los dos vectores son muy cercanas; esto es precisamente la expresión geométrica de "similitud semántica".
Ejercicio: vector, calcula su longitud。
Haz clic para ver la respuesta
Funciones trigonométricas básicas: sin y cos
Del triángulo rectángulo al círculo unitario
Al principio, al aprender funciones trigonométricas, normalmente se parte de las razones entre los lados de un triángulo rectángulo:
Una forma de entenderlo más general y más adecuada para escenarios de IA esla definición del círculo unitario: en un círculo de radio 1, girando en sentido antihorario desde la dirección positiva del eje x un ánguloel punto correspondiente tiene como coordenadas。
Las ventajas de esta definición son:Puede tomar cualquier ángulo (no limitado a 0°~90°); sin y cos "dan vueltas" continuamente a medida que θ cambia, mostrandoperiodicidad(Cada vuelta completa de 360°, es decirradianes, los valores se repiten una vez).
Haz clic en "Reproducir" para ver cómo un punto del círculo unitario traza una onda sinusoidal.
Propiedades clave
| Propiedad | Expresión | Significado |
|---|---|---|
| Acotación | Sin importar cuán grande sea el ángulo, el valor siempre se encuentra en [-1, 1] | |
| Periodicidad | Por cada vuelta completa, los valores se repiten | |
| Relación pitagórica | Consecuencia directa de que el radio del círculo unitario sea 1 (teorema de Pitágoras) |
sin, cos y la codificación posicional
El modelo Transformer, al procesar una secuencia de texto, no conoce de forma innata el "orden de las palabras" (procesa todas las palabras en paralelo).
Para codificar la información de "posición" en el modelo, Transformer usa la siguiente fórmula:
Aquí se usan dos propiedades clave de sin/cos:
Acotación: Sin importar cuán larga sea la secuencia, los valores de la codificación posicional no explotan; siempre están entre [-1, 1] y no interfieren con otros cálculos numéricos.
Periodicidad + superposición de diferentes frecuencias: Diferentes dimensiones usan ondas sin/cos de diferentes frecuencias; el modelo puede distinguir "posiciones adyacentes" (las ondas de alta frecuencia cambian rápido) y también percibir "relaciones de posiciones lejanas" (las ondas de baja frecuencia cambian lento).
Detrás de esto, y con la idea de laTransformada de Fourierdel procesamiento de señales, el pensamiento está conectado: cualquier señal compleja puede representarse mediante la superposición de una serie de ondas sinusoidales de diferentes frecuencias.
Ejemplo
import math
d = 16 # Dimensión total de codificación (solo para ilustrar; el modelo real usa 512+)
# La frecuencia angular de la dimensión 2i es 1 / 10000^(2i/d)
# Las dimensiones bajas tienen alta frecuencia (distinguen posiciones adyacentes); las dimensiones altas tienen baja frecuencia (perciben distancias lejanas)
for i in [0, 2, 4]:
freq = 1 / (10000 ** (i / d))
print(i, round(freq, 6))
# Valor de codificación sin de pos=3 en la dimensión 0: sin(3 * 1.0)
print(round(math.sin(3 * 1.0), 6))
El resultado de ejecutar el código anterior es:
0 1.0 2 0.316228 4 0.1 0.14112
La frecuencia de la dimensión 0 es 1.0, y la dimensión 4 decae a 0.1: la frecuencia decae exponencialmente a lo largo de las dimensiones. Esta es precisamente la disposición de "alta frecuencia al principio, baja frecuencia al final".
Sistema de coordenadas e intuición espacial
El sistema de coordenadas bidimensional es el punto de partida para entender el "espacio de alta dimensión"
Sistema de coordenadas cartesianas del planoUsa dos ejes numéricos perpendiculares entre sí para dar a cada punto del plano una "dirección" única.
Esta idea intuitiva se puede generalizar directamente: el espacio tridimensional añade un eje z; el espacio n-dimensional es。
Aunque el espacio n-dimensional no se pueda dibujar directamente, la forma de tratarlo algebraicamente es exactamente la misma: cada eje de coordenadas ("dimensión") sigue siendo una dirección independiente.
Qué significa esto para entender el "espacio vectorial" del álgebra lineal
| Intuición bidimensional | Generalización a alta dimensión | Aplicaciones en IA |
|---|---|---|
| Proyección: componente de un vector sobre un eje | Proyección de un vector de alta dimensión en cualquier dirección | El producto punto / la descomposición ortogonal es la base de los algoritmos de reducción de dimensionalidad |
| Ortogonalidad: dos direcciones perpendiculares que no interfieren entre sí | "Base ortogonal" del espacio de alta dimensión | PCA en la reducción de dimensionalidad busca direcciones principales mutuamente ortogonales |
| Base: el eje x y el eje y son las direcciones de referencia más básicas | Cualquier vector se escribe como una combinación de vectores base | La dimensión del espacio de embedding es el número de bases |
Muchos modelos de lenguaje tienen dimensiones de embedding de cientos a miles (por ejemplo, 768 dimensiones). No puedes dibujar este espacio en papel, pero puedes usar operaciones familiares en 2D y 3D para "imaginarlo".
Una analogía concreta
Imagina que describes una película; puedes puntuarla en muchas dimensiones como "cantidad de escenas de acción", "nivel de humor", "complejidad de la trama".
Cada película corresponde a un punto (vector) en este "espacio de puntuación multidimensional".
Cuanto más similares son dos películas, más "cercanos" están sus vectores correspondientes en el espacio (producto punto grande, ángulo pequeño).
Esta es exactamente la intuición geométrica detrás de la "recomendación de contenido similar" en los sistemas de recomendación, y la fuente de esta intuición es el sentido espacial de "si dos puntos están cerca" en un sistema de coordenadas bidimensional.
Ejercicio: Si un vector tiene una proyección grande en el eje x y una proyección casi cero en el eje y, ¿esto indica hacia dónde apunta aproximadamente la dirección del vector?
Haz clic para ver la respuesta
La dirección es casi a lo largo del eje x: su "contribución" en la dirección y es muy pequeña, lo que indica que es casi perpendicular al eje y y casi paralela al eje x.
Resumen del capítulo
| Tema | Idea central en una frase |
|---|---|
| Vector plano | Lleva información tanto de "dirección" como de "longitud", y es la unidad básica de los datos de alta dimensión (embedding). |
| Producto punto | Mide "qué tan cerca" están dos direcciones; es la base matemática para el cálculo de similitud. |
| sin / cos | Las coordenadas en el círculo unitario tienen periodicidad y acotación, y son una herramienta matemática para la codificación posicional. |
| Sistema de coordenadas | La intuición espacial de 2D/3D es el punto de partida para comprender conceptos como espacios vectoriales n-dimensionales, proyección y ortogonalidad. |