Inicio · Parte 05 — Álgebra lineal I: vectores y matrices
û = v / ‖v‖, ‖û‖ = 1
v = ‖v‖ · û (reconstrucción)
Un vector codifica dos informaciones: hacia dónde apunta y cuánto mide. Normalizar —dividir por la norma— conserva la primera y descarta la segunda. La reconstrucción es inmediata: v = ‖v‖·û, lo que muestra que la descomposición no pierde nada, solo separa.
La operación tiene una excepción que hay que tratar: el vector cero no se puede normalizar, porque no tiene dirección. En una implementación, dividir por su norma da NaN o inf (clase 033), así que hay que comprobar el caso explícitamente. El motor del programa devuelve el vector cero sin modificar, decisión que hay que declarar porque no es la única razonable.
Normalizar es lo que hace que la comparación entre embeddings sea justa. También es lo que hace la normalización de capa (clase 308), aunque allí se normaliza por media y desviación en lugar de solo por norma. En ambos casos el objetivo es el mismo: que la escala no domine la comparación.
Un detalle numérico: normalizar un vector de norma muy pequeña amplifica su error relativo, porque se divide por un número cercano a cero. En cálculos sensibles conviene comprobar que la norma supera un umbral antes de dividir.
Normalizar y reconstruir.
v = (6, 8)
‖v‖ = √(36 + 64) = 10
û = (0.6, 0.8)
‖û‖ = √(0.36 + 0.64) = 1.0 ✓
Reconstrucción: 10 · (0.6, 0.8) = (6, 8) ✓
Caso límite:
normalizar (0, 0) → división por cero
el motor devuelve (0, 0) y lo declara
Normalizar separa dirección de magnitud.
python classes/part-05-algebra-lineal-i-vectores-y-matrices/105-vectores-unitarios/lab.py
compmath run 105
v|v|v_normalizado|v_normalizado|reconstruccionvector_cero_no_se_normalizauso{
"v": [
6.0,
8.0
],
"|v|": 10.0,
"v_normalizado": [
0.6000000000000001,
0.8
],
"|v_normalizado|": 1.0,
"reconstruccion": [
6.000000000000001,
8.0
],
"vector_cero_no_se_normaliza": [
0.0,
0.0
]
}
Comparación de embeddings, normalización de gradientes (gradient clipping), vectores normales en gráficos y preparación de datos para similitud coseno.
Cada capa densa es un producto matriz-vector. Los embeddings viven en subespacios y la similitud entre ellos es producto punto normalizado.
9781733146678 verificado en International ISBN Agency (2026-08-19).10.48550/arxiv.1607.06450 verificado en DataCite (2026-08-19).