user@devops:~$ cat README.md
Mixture Density Networks -- p(y|x) multimodal desde cero
# Descripción
Mixture Density Networks (Bishop 1994) implementadas desde cero en PyTorch: en vez de una media condicional, la red predice los parametros de una mixtura de gaussianas p(y|x) = sum_k pi_k(x) * N(y | mu_k(x), sigma_k(x)) con cabezas pi (softmax), mu (lineal) y sigma (softplus). Parte 1: problema uno-a-muchos 1D con dos ramas cruzadas (rama A y = 2.2*tanh(x/1.2) + 1.8*sin(1.6x), rama B su simetrica, ruido 0.12, 2.600 puntos, seed 42). Parte 2: red MSE clasica 1-32-32-1 --- predice el punto medio de las dos ramas (RMSE 1.727) y su NLL gaussiana es 1.966: la bimodalidad es invisible para una gaussiana unica. Parte 3: MDN K=8 componentes hidden 32, NLL test 0.050 (vs 1.966): la mixtura coloca componentes en AMBAS ramas (5 activos). Parte 4: densidad predictiva p(y|x) en rejilla (estructura en X que se cruza en x=0) y muestreo: 99.7% de las muestras caen en una rama u otra. Parte 5: MDN one-to-many en MNIST (Salakhutdinov & Hinton 2009): input = una clase (10 one-hot), output = distribucion sobre imagenes 784d con K=8 gaussianas diagonales, hidden 64, 2.500 muestras, 25 epocas, NLL val -1.688 nats/px = -2.436 bits/px (densidad continua, sigma medio 0.231). Parte 6: imagen modal (mu del componente dominante) por clase y 3 digitos generados por clase vs reales; 3.31 componentes efectivos de 8. Hallazgo: para p(y|x) multimodal una gaussiana unica es insuficiente; la mixtura reparte masa entre modos y da NLL muy inferior. CPU: MSE 0.6s + MDN 1D 1.5s + MNIST 18s. 7 visualizaciones.
# Características principales
$ Cabezas de mixtura desde cero: pi (softmax), mu (lineal), sigma (softplus) en PyTorch puro
$ Problema uno-a-muchos 1D: dos ramas cruzadas; el MSE predice el medio (NLL 1.97) y el MDN 0.05
$ Densidad predictiva p(y|x) en rejilla: estructura en X con picos en ambas ramas; 99.7% de muestras en un modo
$ MDN one-to-many en MNIST: 1 clase -> distribucion 784d con 8 gaussianas diagonales (NLL -1.688 nats/px)
$ Generacion: imagen modal por clase + digitos muestreados de la mixtura que imitan a los reales
$ 3.31 componentes efectivos de 8 por clase: cada estilo de escritura es un componente
$ Checkpoint determinista (seed 42): re-run regenera metricas y figuras sin reentrenar
$ 7 visualizaciones: datos, MSE vs MDN, componentes, muestras, curvas, modos, generadas-vs-reales
# Galería
# Tecnologías utilizadas