🧮 Computational Mathematics

Inicio · Parte 05 — Álgebra lineal I: vectores y matrices

105 — Vectores unitarios

intermedio clase 5 de 20 4 horas demostración unit_vectors

Normalizar separa dirección de magnitud; el vector cero no tiene dirección definida.

Fórmulas

û = v / ‖v‖,  ‖û‖ = 1
v = ‖v‖ · û   (reconstrucción)

Desarrollo

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.

Ejemplo trabajado

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

Qué calcula el laboratorio

Normalizar separa dirección de magnitud.

python classes/part-05-algebra-lineal-i-vectores-y-matrices/105-vectores-unitarios/lab.py
compmath run 105

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "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
  ]
}

Errores comunes

Dónde se usa

Comparación de embeddings, normalización de gradientes (gradient clipping), vectores normales en gráficos y preparación de datos para similitud coseno.

Idea rectora de la parte

El determinante mide cuánto escala el volumen una transformación.

Error a evitar

Confundir dimensión del espacio con número de vectores.

Conexión con IA

Cada capa densa es un producto matriz-vector. Los embeddings viven en subespacios y la similitud entre ellos es producto punto normalizado.

Bibliografía de la clase

Archivos de la clase