🧮 Computational Mathematics

Inicio · Parte 17 — Frontera matemática para IA e investigación

353 — Score matching

frontera-investigacion clase 13 de 20 4 horas demostración score_matching

El score no depende de la constante de normalización, y esa es precisamente la parte intratable.

Fórmulas

score: s(x) = ∇ₓ log p(x)
log p(x) = log p̃(x) − log Z
∇ₓ log Z = 0, luego el score ignora Z

Desarrollo

El score es el gradiente del logaritmo de la densidad respecto de la entrada. Apunta hacia las regiones de mayor densidad, y su magnitud indica cuán pronunciada es la subida. Es un campo vectorial que describe la distribución tan completamente como la densidad misma.

Su propiedad decisiva es que no depende de la constante de normalización. Como el logaritmo convierte el producto en suma y la constante no depende de x, su gradiente es cero y desaparece. Eso importa muchísimo porque Z es una integral sobre todo el espacio, intratable en cualquier modelo interesante, y es lo que bloqueaba históricamente el entrenamiento de modelos basados en energía.

La demostración numérica es directa: multiplicar la densidad por una constante arbitraria no cambia el score en ningún punto. Se puede modelar la distribución salvo un factor y aun así caracterizarla completamente.

Conocido el score, la dinámica de Langevin genera muestras: seguir el score con un poco de ruido converge a la distribución. Combinar esa idea con múltiples niveles de ruido es exactamente lo que hacen los modelos de difusión de la clase 335 —la red que predice el ruido está estimando el score— y esa equivalencia unifica dos líneas de trabajo que parecían distintas.

Ejemplo trabajado

Score de una normal, con y sin constante arbitraria.

distribución: Normal(1,5 ; 0,7)
score analítico: −(x − μ)/σ²

x        analítico     numérico
0,0      3,061224      3,061224                      ✓
1,5      0,000000      0,000000                      ✓
2,5     −2,040816     −2,040816                      ✓

Con la densidad multiplicada por una constante:
  score en x = 1,0:  1,020408
  idéntico al de la densidad normalizada             ✓

El score en el máximo vale 0: es donde la densidad
deja de crecer.

Por eso importa: Z es una integral intratable,
y el score no la necesita.

Qué calcula el laboratorio

Score matching: aprender ∇ log p sin conocer la constante de normalización.

python classes/part-17-frontera-matematica-para-ia-e-investigacion/353-score-matching/lab.py
compmath run 353

Salidas del laboratorio (10)

Muestra de la ejecución real

{
  "distribucion": "Normal(1.5, 0.7)",
  "score": "∇ₓ log p(x)",
  "comparacion": {
    "x=0.0": {
      "analitico": 3.061224,
      "numerico": 3.061224
    },
    "x=1.5": {
      "analitico": -0.0,
      "numerico": 0.0
    },
    "x=3.0": {
      "analitico": -3.061224,
      "numerico": -3.061224
    }
  },
  "score_con_constante_arbitraria": 1.020408,
  "es_el_mismo": true,
  "por_que_importa": "el score no necesita la constante de normalización Z"
}

Errores comunes

Dónde se usa

Modelos de difusión, modelos basados en energía, dinámica de Langevin, estimación de densidad y generación de imágenes.

Idea rectora de la parte

La distancia de Wasserstein compara distribuciones sin exigir soporte común.

Error a evitar

Reportar resultados de MCMC sin diagnóstico de convergencia.

Conexión con IA

Score matching fundamenta los modelos de difusión; el transporte óptimo aparece en flow matching; la teoría estadística del aprendizaje explica el scaling.

Bibliografía de la clase

Archivos de la clase