Clase interactiva

Geometría hiperbólica,
tocándola con las manos

Arrastra puntos, mueve sliders y mira cómo responde el espacio curvo. Cada herramienta calcula la geometría real (la misma del paper), no una caricatura: lo que ves medido es lo que ocurre en la bola de Poincaré.

Javier Ródenas · acompaña al documento Geometría hiperbólica paso a paso
Lección 1

Hay tres geometrías, y la curvatura las distingue

En la esfera (curvatura \(K>0\)) la suma de los ángulos de un triángulo pasa de \(180°\); en el plano (\(K=0\)) es exactamente \(180°\); en el plano hiperbólico (\(K<0\)) es menos. No podemos dibujar \(\mathbb{H}^2\) sin distorsión en una hoja plana, así que usamos mapas — igual que con la Tierra. El más famoso es el disco de Poincaré: todo cabe dentro de un círculo, y un factor de escala corrige las distancias.

Las herramientas de abajo trabajan todas en el disco de Poincaré. La regla mental: lo que el dibujo encoge cerca del borde, la geometría lo estira.

Lección 2

La métrica: una escala que crece hacia el borde

Medir es sumar pasitos (Pitágoras: \(ds^2=dx^2+dy^2\)). En el disco, cada pasito del mapa se multiplica por un factor de escala local \(\lambda_x=\dfrac{2}{1-\lVert x\rVert^2}\): vale 2 en el centro y se dispara cerca del borde. Por eso el borde está a distancia infinita aunque en el dibujo parezca pegado.

Arrastra el punto

El color es \(\log_{10}\lambda\). Fíjate: mover el punto un poco cerca del borde dispara la distancia real al origen.

Lección 3

El camino más corto se curva — y eso es "ser recta"

Como los pasos son más baratos cerca del centro, el camino más corto (la geodésica) se comba hacia dentro. "Recta" no significa 90°: significa el camino que gasta exactamente la distancia (el test del andarín). Arrastra A y B y compara el segmento recto del dibujo con la geodésica real.

Arrastra A y B

El segmento azul parece recto pero malgasta longitud; la geodésica roja es la verdadera línea recta del espacio hiperbólico.

Lección 3 (cont.)

Por un punto pasan infinitas paralelas

Niega el quinto postulado de Euclides: por \(P\) pasan infinitas geodésicas que no cortan a \(L\). Y son de dos tipos: paralelas límite (se acercan a \(L\) sin tocarla) y ultraparalelas (guardan una distancia mínima positiva). Arrastra \(P\).

Arrastra P

Todas evitan a \(L\) (la azul); que se corten entre sí en \(P\) no es un fallo: "paralela" es una relación con \(L\).

Lección 4

El espacio crece exponencialmente

La circunferencia de radio real \(\rho\) mide \(2\pi\sinh\rho\approx \pi e^{\rho}\): crece exponencialmente, frente al \(2\pi\rho\) del plano. Por eso un árbol —cuyos nodos crecen como \(b^\ell\)— cabe sin amontonarse en el plano hiperbólico, y no en el euclídeo. Mueve el radio:

Lección 5

El mapa exponencial: meter vectores en la bola (y la saturación)

Una red neuronal produce vectores euclídeos \(v\) sin límite de norma. El mapa exponencial \(\exp_0^c(v)=\tanh(\sqrt c\,\lVert v\rVert)\,\frac{v}{\sqrt c\,\lVert v\rVert}\) los mete en la bola. Sube la norma: verás que con \(c=1\) todos se aplastan contra el borde (saturación / shell collapse) — el problema real al entrenar. Activa el clipping o baja la curvatura \(c\) y mira cómo se recupera.

Controles

Clipping = techo (no normalización): los vectores cortos pasan intactos, solo se recorta el exceso.

Lección 6

El mismo espacio, tres mapas

Poincaré, Klein y el semiplano superior son el mismo espacio hiperbólico dibujado distinto. Arrastra los vértices del triángulo en el disco de Poincaré y mira cómo se ve simultáneamente en los otros dos: Klein endereza las geodésicas (a cambio de mentir en los ángulos), el semiplano manda el borde al eje real.

Poincaré (arrastra aquí)
Klein (rectas)
Semiplano superior
Lección 8

Promediar puntos: Einstein vs Fréchet

El punto medio de Einstein es una fórmula cerrada y rápida (pasa por Klein); la media de Fréchet es el verdadero minimizador de \(\sum_i d^2\), pero hay que iterar. Coinciden con 2 puntos; con 3+ no, y Einstein queda sesgado hacia los puntos del borde — exactamente el efecto que penaliza al modelo 5-shot del experimento.

Arrastra los puntos

Las líneas verdes son las geodésicas del Fréchet a cada punto. Mete un punto al borde y mira cómo Einstein se va hacia él.

Aplicación · Parte II del paper

¿Para qué sirve todo esto? Few-shot learning en CIFAR-FS

Pusimos la teoría a prueba en CIFAR-FS, un benchmark real de few-shot (imágenes de CIFAR-100). Misma red prototípica con encoder Conv4 idéntico, solo cambia la geometría de la cabeza: la euclídea usa media + distancia euclídea; la hiperbólica proyecta al disco con exp₀, promedia con el punto medio de Einstein y clasifica por distancia de Poincaré.

El primer choque con la realidad: la hiperbólica "tal cual" (c=1) se hunde, porque las normas del encoder (~17–24) saturan el tanh y todos los embeddings colapsan al borde — exactamente la saturación que viste en la herramienta del mapa exponencial. Las defensas de la lección (feature clipping, curvatura pequeña, curvatura aprendible) recuperan ~8 puntos, pero la euclídea gana igualmente: CIFAR-FS no es fuertemente jerárquico y la dimensión (256) es alta.

Cabeza (CIFAR-FS, 5-way)1-shot5-shot
Euclídea50.8%71.9%
Hiperbólica vanilla (c=1)41.7%50.0%
Hiperbólica + clip + curvatura aprendible48.5%57.3%

Repetimos en FC100 (CIFAR-100 partido por superclase): mismo patrón, la euclídea gana (33.1/47.7 vs 30.8/37.5). Y a gran escala en tieredImageNet (351/160 clases, super-categorías WordNet): otra vez la euclídea (46.1/67.1 vs 43.5/53.6 la hiperbólica afinada) — y la curvatura aprendible converge a c≈0.0001, casi el límite euclídeo: sin jerarquía dentro del episodio, el propio modelo apaga la hiperbolicidad. Tres benchmarks reales, misma conclusión: partir por superclase no basta; faltaba la dimensión baja.

La prueba decisiva: bajar la dimensión

Añadimos un cuello de botella (proyección a d dimensiones tras el encoder) y barrimos d. Aparece el cruce que predice la teoría: en dimensión 2–3 el hiperbólico ADELANTA al euclídeo sobre imágenes reales; el cruce está en d ≈ 4–8.

emb_dim (CIFAR-FS 5-way)Euclídea 1s / 5sHiperbólica 1s / 5s
235.7 / 45.841.0 / 49.5
339.0 / 51.043.2 / 52.0
847.2 / 63.046.3 / 56.9
6450.4 / 69.647.4 / 55.8
Cruce euclídea/hiperbólica vs dimensión

A dimensión alta el euclídeo va sobrado de sitio y gana; la ventaja hiperbólica vive en la dimensión baja.

El caso límite: jerarquía profunda real (WordNet)

Para verlo en su forma extrema, embebemos el subárbol de mamíferos de WordNet (1170 nodos, profundidad 9 — el benchmark de Nickel & Kiela 2017). Aquí la jerarquía es la tarea: medimos cuán bien se reconstruye el árbol (MAP) según la dimensión.

dimEuclídeo (MAP)Hiperbólico (MAP)
50.230.91
100.390.93
50–2000.920.90–0.92
Reconstrucción de WordNet vs dimensión

El titular: el hiperbólico en 5 dimensiones iguala al euclídeo en 50–200 — una reducción de 10–40×. Conclusión de todo el proyecto: el espacio hiperbólico es un sesgo inductivo para representaciones compactas de datos jerárquicos, no una mejora universal. La historia completa —saturación, las tres defensas, FC100, el cruce de dimensión y WordNet— en EXPERIMENTS.md.

Crear la jerarquía

¿De dónde sacamos la jerarquía? Tres formas, dibujadas

Si la jerarquía no sobrevive al episodio, hay que dársela. La construimos sobre las 100 clases de CIFAR-100 de tres maneras y las comparamos con las 20 superclases humanas (Adjusted Rand Index). Primero, cómo se distribuyen las clases en el disco aprendido (sin guía jerárquica): emerge estructura, pero parcial.

CIFAR-100 en el disco de Poincaré

1 · Clustering de los prototipos (similitud visual)

Dendrograma por clustering

2 · WordNet (semántica léxica)

Árbol WordNet

3 · LLM (Claude agrupa los nombres)

Árbol LLM

Comparación (ARI): el LLM ≈ jerarquía humana (0.85), WordNet 0.41 (semántica con ruido léxico), y el clustering solo 0.26 — captura similitud visual, no taxonomía.

Comparación ARI

Conclusión: si quieres una jerarquía semántica para guiar al modelo, no la saques de las features (dan grupos visuales) — un LLM da, gratis y solo con los nombres, una taxonomía casi idéntica a la humana.

Imponer la jerarquía con una pérdida

El paso final: añadir un loss jerárquico al entrenamiento. Diseñé una pérdida auxiliar simple (inspirada en prototipos jerárquicos / conos de implicación): además del objetivo few-shot, mantengo prototipos de grupo aprendibles en la bola y empujo cada imagen hacia el prototipo de su grupo por distancia de Poincaré:

\( \mathcal{L} = \underbrace{\mathrm{CE}\big(\mathrm{softmax}_k(-d_c(z_q, p_k)),\, y_q\big)}_{\text{few-shot}} + \lambda\,\underbrace{\mathrm{CE}\big(\mathrm{softmax}_g(-d_c(z_i, G_g)),\, g(i)\big)}_{\text{grupo (jerarquía)}} \)

con prototipos de episodio \(p_k\) (punto medio de Einstein), prototipos de grupo aprendibles \(G_g\), y el grupo \(g(i)\) tomado de cada fuente. Resultado, comparando las 4 fuentes contra el baseline:

Resultados del loss jerárquico
Fuente del grupo1-shot / 5-shotpureza vecino
baseline (sin loss)48.3 / 58.543%
clustering41.7 / 51.835% ↓
WordNet43.4 / 52.953%
LLM44.2 / 55.673%
CIFAR-superclase44.1 / 54.579%

Tres conclusiones: (1) el loss jerárquico organiza el espacio muchísimo (pureza 43→79%), (2) pero cuesta ~4 puntos de accuracy plana — es estructura a cambio de precisión, no una mejora gratis, (3) la fuente es decisiva: el clustering visual hace daño; el LLM iguala a la jerarquía humana. El código del loss está en src/exp_hier_loss.py.