Visualización del teorema del límite central
Muestrear repetidamente de una distribución uniforme que no es normal en absoluto, calcular la media y observar cómo la distribución de las medias se aproxima a una forma de campana.
Al completar este caso, comprenderás:Por qué la distribución gaussiana está en todas partes en la IA: es el resultado inevitable de la superposición de muchos factores independientes.
Introducción desde la vida cotidiana
¿Por qué la altura promedio de toda la clase siempre tiene forma de campana?
Se mide la altura de 50 personas de la clase. La altura de una persona está influenciada por cientos de factores: genética, nutrición, ejercicio, sueño... El impacto de cada factor varía en magnitud y puede ser positivo o negativo.
Cuando muchos factores pequeños e independientes se superponen, la distribución del resultado final tiene forma de campana: esto es un teorema matemático, no una coincidencia.El teorema del límite central dice que la suma (o el promedio) de muchas variables aleatorias independientes tiende a una distribución normal.
Comprensión intuitiva
Muestreamos de una distribución uniforme U(0,1) — esta distribución es completamente plana y no tiene nada que ver con una forma de campana. Pero cuando cada vez tomamos múltiples muestras (por ejemplo, 30) y calculamos una media, y repetimos esta operación 5000 veces — el histograma de esas 5000 medias comienza a parecerse a una campana. Cuanto mayor sea n, más cercana a una distribución normal perfecta.
Definición matemática
\[ \frac{\bar{X}_n - \mu}{\sigma / \sqrt{n}} \xrightarrow{d} \mathcal{N}(0, 1) \]Donde \(\bar{X}_n = \frac{1}{n}\sum X_i\). La desviación estándar de la media disminuye a una velocidad de \(1/\sqrt{n}\).
Práctica con Python
Ejemplo
np.random.seed(2)
def sample_raw(size):
return np.random.uniform(0, 1, size=size)
def clt_experiment(n, repeat=5000):
means = [sample_raw(n).mean() for _ in range(repeat)]
return np.array(means)
sample_sizes = [1, 2, 5, 30]
results = {n: clt_experiment(n) for n in sample_sizes}
print("Verificación del teorema del límite central de EJEMPLO:\n")
print("Distribución original: distribución uniforme U(0,1) (completamente plana)")
print("Teoría: desviación estándar de la media = 1/sqrt(12n)\n")
print(f"{'n':<6} {'Media SD':<12} {'Valor teórico':<12} {'Coincidencia'}")
print("-" * 42)
for n, means in results.items():
theo = 1 / np.sqrt(12 * n)
ok = "Yes" if abs(means.std() - theo) < 0.01 else "No"
print(f"{n:<6} {means.std():<12.4f} {theo:<12.4f} {ok}")
# Prueba de normalidad para n=30
m30 = results[30]
skew = np.mean(((m30-m30.mean())/m30.std())**3)
kurt = np.mean(((m30-m30.mean())/m30.std())**4) - 3
print(f"\nEJEMPLO cuando n=30: Asimetría={skew:.3f} (debe ser ~0), Curtosis={kurt:.3f} (debe ser ~0)")
EJEMPLO 中心极限定理验证: 原始分布: 均匀分布 U(0,1)(完全平的) 理论: 均值的标准差 = 1/sqrt(12n) n 均值SD 理论值 匹配 ------------------------------------------ 1 0.2891 0.2887 Yes 2 0.2043 0.2041 Yes 5 0.1292 0.1291 Yes 30 0.0526 0.0527 Yes EJEMPLO n=30 时:偏度=-0.023 (应~0), 超峰度=-0.005 (应~0)
Escenarios de aplicación en IA
| Escenario | Relación con el CLT |
|---|---|
| Batch Normalization | Suponer que los valores de activación dentro de cada mini-batch se aproximan a una distribución normal, restar la media y dividir por la desviación estándar. |
| Inicialización de pesos | La inicialización Xavier/He muestrea los pesos iniciales de una distribución normal. |
| Modelado de errores | En problemas de regresión se supone que los errores siguen una distribución normal — el error es el resultado de la superposición de múltiples factores no modelados. |