English · Español
Fase 03 — Álgebra lineal desde primeros principios¶
Requiere: 02 — Representación numérica Enseña:
tensors·matmul·einsum·svd·rank·normsSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Pre-escrita según A12; re-anclada a A13 (gramática verbal en inglés). Los enunciados de teoría + laboratorios son borradores estables; las soluciones aterrizan justo a tiempo en la apertura de fase.
🇪🇸 Los tensores no son "arrays con más dimensiones". Son mapas lineales coordinados, y la matmul es la composición de esos mapas. Esta fase te entrena a predecir shapes sin ejecutar código, derivar SVD, y conectar la eficiencia de matmul con la jerarquía de memoria de Fase 1. Los ejemplos viven en el universo del modelo: vectores one-hot que indexan formas verbales y matrices que actúan como tablas de búsqueda sobre el vocabulario §A13.
Objetivo¶
Interiorizar el álgebra lineal con la profundidad suficiente para que Borja pueda:
- Leer cualquier expresión einsum y predecir el shape resultante (y el número de FLOPs) sin ejecutarla — incluida la expresión batched-embedding-lookup que ancla la Fase 13.
- Derivar
||Ax|| ≤ ||A||·||x||a partir de la SVD en una página en blanco. - Medir un speedup de 50× entre matmul ingenua y
np.matmulen su i5-8250U y explicarlo como un hecho de roofline (Fase 1) compuesto por la ausencia de vectorización (anticipo de Fase 6). - Reconstruir una matriz de conteos de conjugaciones de formas verbales con
kvalores singulares y cuantificar el error de reconstrucción como función dek. - Ver, mecánicamente, cómo
M @ one_hot(i)es una búsquedaM[:, i]— la operación que toda capa de embedding realiza.
Orden de lectura¶
theory/00-motivation.md— por qué una fase de álgebra lineal antes de cualquier autograd.theory/01-tensors-and-shapes.md— escalar / vector / matriz / tensor; aritmética de shapes; einsum como gramática unificadora; codificaciones one-hot de formas verbales.theory/02-matmul-and-shapes.md— matmul como composición, distinciones dot/outer/Hadamard, batched matmul, búsqueda de embedding como matmul. La página más importante de la Fase 3.theory/03-svd-and-rank.md— SVD como rotar-escalar-rotar, rango, aproximación de bajo rango, Eckart-Young; aplicada a una matriz de conteos de conjugaciones.theory/04-norms-and-conditioning.md— normas vectoriales / matriciales, norma de operador, número de condición.lab/00-shapes-by-hand.md— predecir shapes a partir de strings einsum (sin código al principio), incluyendo patrones de embedding-lookup y batched-matmul.lab/01-matmul-perf.md— competir cuatro implementaciones de matmul en tu máquina.lab/02-svd-compression.md— comprimir una matriz sintética de conteos de conjugaciones con SVD de rango-k.lab/03-norms-by-experiment.md— verificar empíricamente||Ax|| ≤ ||A||·||x||y encontrar el caso de igualdad.
solutions/ está vacío en la pre-escritura — se rellena al abrir la fase.
Definición de hecho (DoD)¶
Ver PHASE_03_PLAN.md §6. Brevemente:
- Cuatro directorios de experimentos con manifiestos + artefactos commiteados.
- El gráfico de rendimiento de matmul muestra un gap ≥ 50× entre Python ingenuo y
np.matmulen N=1024. - Grid de reconstrucción SVD + curva de error sobre la matriz de conteos de conjugaciones commiteados.
- Borja puede predecir shapes de einsum en una página en blanco y derivar
||Ax|| ≤ ||A||·||x||a partir de la SVD.
Lo que esta fase intencionalmente NO cubre¶
- Autograd / gradientes. Fase 4 (cálculo) y Fase 7 (autograd escalar).
- Un módulo
src/minigrad/linalg.py. La Fase 3 permanece enexperiments/; los primitivos de álgebra lineal se promueven en la Fase ⅞ cuando se construya un consumidor de autograd. - Probabilidad / matrices aleatorias / proyecciones aleatorias. Fase 5 + Fase 10 (RMSNorm/init).
- Descomposición en valores propios de matrices no simétricas. Mencionada por vocabulario; el trabajo es SVD.
- Algoritmos numéricos para la propia SVD. Usamos
np.linalg.svd; derivar Jacobi / SVD basada en QR queda fuera del alcance curricular. - Matrices dispersas / estructuradas. La Fase 27 (attention eficiente) toca block-diagonal; nada aquí.
- Matmul en GPU (BLAS / cuBLAS / Triton GEMM). Fase 23+.
El alcance de la Fase 3 es entender los shapes de tensores, la mecánica de matmul y la intuición de SVD con la profundidad suficiente para que el paso de álgebra lineal de cada fase posterior sea aburrido. Nada más.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📕 Linear Algebra and Learning from Data — Strang · 2019. álgebra lineal escrita para ML, no para matemáticos.
- ✍️ Essence of Linear Algebra — 3Blue1Brown · 2016. construye la intuición geométrica antes de la gimnasia de índices.