Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL
min_G max_D E[log D(x)] + E[log(1 − D(G(z)))]
D*(x) = p_datos(x) / (p_datos(x) + p_G(x))
en el equilibrio D = 0,5 y la pérdida vale log 2
Una GAN enfrenta dos redes con objetivos opuestos. El generador produce muestras falsas intentando parecer real; el discriminador intenta distinguir reales de falsas. El entrenamiento es un juego minimax, y el objetivo del generador es hacer fracasar al discriminador.
El resultado teórico central es que el discriminador óptimo tiene forma cerrada: la proporción de densidad real sobre densidad total. Sustituyendo ese óptimo en el objetivo, se obtiene que el generador está minimizando 2·JS(p_datos ‖ p_G) − log 4, es decir, la divergencia de Jensen-Shannon de la clase 265. El objetivo de las GAN no se inventó como divergencia: resulta serlo.
En el equilibrio ideal, generador y datos tienen la misma distribución, el discriminador óptimo vale 0,5 en todas partes y la pérdida vale log 2 ≈ 0,693. Ese número es el diagnóstico: una pérdida de discriminador que se estabiliza cerca de 0,693 indica equilibrio; una que se va a cero indica que el discriminador ha ganado y el generador ya no recibe señal útil.
La inestabilidad práctica tiene una causa identificable en esa misma teoría: si los soportes de ambas distribuciones no se solapan, la JS es constante y su gradiente es cero. Esa observación motivó WGAN, que sustituye JS por la distancia de Wasserstein, precisamente porque esta sí da gradiente útil cuando los soportes están separados.
Tres escenarios del juego y el punto de equilibrio.
objetivo: min_G max_D E[log D(x)] + E[log(1 − D(G(z)))]
escenario "D gana":
D(real) = 0,99 D(falso) = 0,01
pérdida de D = 0,01005 muy baja
el generador recibe gradiente casi nulo
escenario de equilibrio:
D(real) = 0,50 D(falso) = 0,50
pérdida teórica = log 2 = 0,693147 ✓
D óptimo: D*(x) = p_datos / (p_datos + p_G)
si p_G = p_datos → D* = 0,5 en todas partes
El objetivo original equivale a minimizar
2·JS(p_datos ‖ p_G) − log 4.
GAN: el equilibrio del juego minimax y su punto óptimo.
python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/333-gan-y-juegos-minimax/lab.py
compmath run 333
objetivoescenariosD_optimoen_el_equilibrio_D=0.5perdida_teorica_en_equilibrioel_objetivo_original_equivale_aproblema_del_gradiente_saturadosolucion_practicacolapso_de_modos{
"objetivo": "min_G max_D E[log D(x)] + E[log(1 - D(G(z)))]",
"escenarios": {
"D_gana": {
"D(real)": 0.99,
"D(falso)": 0.01,
"perdida_D": 0.01005,
"perdida_G_saturante": -0.01005,
"perdida_G_no_saturante": 4.60517
},
"equilibrio": {
"D(real)": 0.5,
"D(falso)": 0.5,
"perdida_D": 0.693147,
"perdida_G_saturante": -0.693147,
"perdida_G_no_saturante": 0.693147
},
"G_gana": {
"D(real)": 0.4,
"D(falso)": 0.6,
"perdida_D": 0.916291,
"perdida_G_saturante": -0.916291,
"perdida_G_no_saturante": 0.510826
}
},
"D_optimo": "D*(x) = p_datos(x) / (p_datos(x) + p_G(x))",
"en_el_equilibrio_D=0.5": true,
"perdida_teorica_en_equilibrio": 0.693147,
"el_objetivo_original_equivale_a": "minimizar 2·JS(p_datos ‖ p_G) - log 4"
}
Generación de imágenes, superresolución, traducción entre dominios, aumento de datos y generación de datos sintéticos.
Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.
10.48550/arxiv.1406.2661 verificado en DataCite (2026-08-19).10.48550/arxiv.1701.07875 verificado en DataCite (2026-08-19).