Distancia (Euclidiana vs Manhattan)

Cómo medir similitud entre datos en redes neuronales

La distancia es una medida que indica qué tan similares o diferentes son dos puntos (vectores) en un espacio. En machine learning y redes neuronales, las distancias son fundamentales para comparar embeddings, agrupar datos y calcular similitudes.

Las dos distancias más importantes son:

  • Distancia Euclidiana (L2)
  • Distancia Manhattan (L1)

Definición corta

La distancia mide qué tan lejos están dos vectores en un espacio.

Definición detallada

Dados dos vectores:x=[x1,x2,...,xn]x = [x_1, x_2, …, x_n]y=[y1,y2,...,yn]y = [y_1, y_2, …, y_n]

🔹 Distancia Euclidiana (L2)

d(x,y)=(x1y1)2++(xnyn)2d(x, y) = \sqrt{(x_1 – y_1)^2 + \cdots + (x_n – y_n)^2}

👉 Es la distancia “en línea recta”.

🔹 Distancia Manhattan (L1)

d(x,y)=x1y1++xnynd(x, y) = |x_1 – y_1| + \cdots + |x_n – y_n|d(x,y)=∣x1​−y1​∣+⋯+∣xn​−yn​∣

👉 Es la distancia “por ejes” (como en una ciudad con calles en cuadrícula).

Intuición

Supongamos dos puntos:x=(0,0),y=(3,4)x = (0,0), \quad y = (3,4)

  • Euclidiana → 555 (línea recta)
  • Manhattan → 777 (3 + 4)

👉 Diferencia clave:

  • L2 → camino directo
  • L1 → suma de desplazamientos

Interpretación geométrica

Distancia Euclidiana

  • Forma círculos
  • Espacio continuo
  • Sensible a grandes diferencias

Distancia Manhattan

  • Forma diamantes
  • Movimiento por ejes
  • Más robusta a outliers

Comparación L1 vs L2

PropiedadManhattan (L1)Euclidiana (L2)
CálculoSuma absolutaRaíz cuadrada
SensibilidadMenorMayor
GeometríaDiamanteCírculo
UsoSparsityDistancia real

Distancias en redes neuronales

🔹 1. Comparación de embeddings

Ejemplo:

  • Dos frases
  • Dos imágenes

👉 Se calcula distancia entre vectores.

🔹 2. K-Nearest Neighbors (KNN)

Clasificación basada en distancia.


🔹 3. Clustering (K-means)

Agrupa puntos según cercanía.

🔹 4. Loss functions

Ejemplo:Loss=xy2\text{Loss} = ||x – y||^2

👉 Muy común en regresión.

🔹 5. Aprendizaje métrico

Modelos que aprenden a medir distancia:

  • Triplet loss
  • Contrastive loss

Ejemplo paso a paso

x=[1,2]x = [1, 2]y=[4,6]y = [4, 6]

Manhattan

14+26=3+4=7|1-4| + |2-6| = 3 + 4 = 7


Euclidiana

(14)2+(26)2=9+16=5\sqrt{(1-4)^2 + (2-6)^2} = \sqrt{9 + 16} = 5

Relación con normas

  • Distancia L1 = norma L1 de xyx – y
  • Distancia L2 = norma L2 de xyx – y

👉 Conecta directamente con el concepto de norma.

Ejemplo en Python

# Distancias manuales
x = [1, 2]
y = [4, 6]
l1 = sum(abs(x[i] - y[i]) for i in range(len(x)))
l2 = sum((x[i] - y[i])**2 for i in range(len(x))) ** 0.5
print("Manhattan:", l1)
print("Euclidiana:", l2)

Ejemplo en NumPy

import numpy as np
x = np.array([1, 2])
y = np.array([4, 6])
l1 = np.linalg.norm(x - y, ord=1)
l2 = np.linalg.norm(x - y, ord=2)
print("L1:", l1)
print("L2:", l2)

Ejemplo en PyTorch

import torch
x = torch.tensor([1.0, 2.0])
y = torch.tensor([4.0, 6.0])
l1 = torch.norm(x - y, p=1)
l2 = torch.norm(x - y, p=2)
print("Manhattan:", l1.item())
print("Euclidiana:", l2.item())

Ejemplo en embeddings

import torch
# Dos embeddings
a = torch.tensor([0.2, 0.5, 0.3])
b = torch.tensor([0.1, 0.7, 0.2])
distance = torch.norm(a - b, p=2)
print("Distancia entre embeddings:", distance.item())

Ejemplo con loss (L2)

import torch
pred = torch.tensor([2.5, 0.0, 2.1], requires_grad=True)
target = torch.tensor([3.0, -0.5, 2.0])
loss = torch.sum((pred - target) ** 2)
loss.backward()
print("Loss:", loss.item())
print("Gradiente:", pred.grad)

Qué muestra este ejemplo

  • La distancia se usa como función de error
  • Genera gradientes
  • Permite aprendizaje

Errores comunes

Usar L2 sin entender sensibilidad

Puede amplificar outliers.

Usar L1 sin considerar geometría

Puede cambiar comportamiento del modelo.

No normalizar datos

Distancias pueden ser engañosas.

Ejemplo conceptual

Dos usuarios:

Usuario A: [edad, ingresos]
Usuario B: [edad, ingresos]

👉 Distancia mide qué tan similares son.

Interpretación profunda

Las distancias permiten:

  • comparar representaciones
  • medir similitud
  • estructurar espacios de datos
  • guiar aprendizaje

👉 Son la base de cómo los modelos entienden relaciones.

Conclusión

La distancia (Euclidiana vs Manhattan) es una herramienta esencial para medir similitud entre datos. Cada tipo de distancia tiene propiedades distintas que afectan directamente el comportamiento de los modelos.

👉 Elegir la distancia correcta puede cambiar completamente los resultados.

Related Concepts