Esperanza, varianza y covarianza — Características numéricas de los datos

Esperanza = dónde está el centro. Varianza = cuán dispersos están los datos. Covarianza = cómo se relacionan dos variables.


Análisis conceptual

Esperanza E[X]

Media ponderada = "resultado promedio a largo plazo"

\( \mathbb{E}[X] = \sum x_i P(x_i) \)

Varianza Var(X)

Grado de dispersión de los datos

\( \mathbb{E}[(X - \mu)^2] \)

Covarianza Cov(X,Y)

Relación de correlación entre dos variables

\( \mathbb{E}[(X-\mu_X)(Y-\mu_Y)] \)

Matriz de covarianza

La matriz de covarianza de un vector aleatorio de dimensión d es una matriz simétrica de d×d: \( \Sigma_{ij} = \text{Cov}(X_i, X_j) \).

  • Los elementos diagonales = varianza de cada característica
  • Los elementos no diagonales = covarianza entre características

Ejemplo cotidiano

Puntuaciones promedio de dos clases

La media matemática de las clases A y B es 75 en ambas. Pero en la clase A todos están entre 70 y 80, mientras que en la clase B hay quien saca 30 y quien saca 100.

La esperanza es la misma, pero la varianza es completamente diferente: la varianza revela la diferencia en "estabilidad".


Práctica con Python

Ejemplo

import numpy as np

data = np.random.normal(5, 2, 10000)
print(f"media={np.mean(data):.3f}, varianza={np.var(data):.3f}, desviación estándar={np.std(data):.3f}")

# covarianza
x = np.random.randn(1000)
y1 = 0.8*x + np.random.randn(1000)*0.3  # correlación positiva
y2 = -0.8*x + np.random.randn(1000)*0.3 # correlación negativa
print(f"Cov(X, Y+): {np.cov(x,y1)[0,1]:.3f} (positiva)")
print(f"Cov(X, Y-): {np.cov(x,y2)[0,1]:.3f} (negativa)")

# matriz de covarianza
data_3d = np.random.randn(100, 3)
print("\nMatriz de covarianza:\n", np.round(np.cov(data_3d.T), 3))
print("Simétrica:", np.allclose(np.cov(data_3d.T), np.cov(data_3d.T).T))

Salida:

均值=4.990, 方差=4.008, 标准差=2.002
Cov(X, Y+): 0.846 (正)
Cov(X, Y-): -0.860 (负)

协方差矩阵:
 [[ 1.03   0.035  0.033]
 [ 0.035  0.89  -0.066]
 [ 0.033 -0.066  0.933]]
对称: True

Escenarios de aplicación en IA

Las matemáticas de Batch Normalization

Para cada mini-lote se calculan la media μ_B y la varianza σ²_B, y luego se normaliza \( \hat{x} = (x - \mu_B) / \sqrt{\sigma^2_B + \epsilon} \). Aquí se utilizan dos estadísticos: la esperanza (media) y la varianza. \( \epsilon \) es una constante pequeña para evitar la división por cero (normalmente 1e-5).

Reducción de dimensionalidad con PCA = descomposición espectral de la matriz de covarianza

Primer paso de PCA: calcular la matriz de covarianza de los datos \( \Sigma \) (matriz simétrica de d×d). Segundo paso: realizar la descomposición espectral de \( \Sigma \) y tomar los autovectores correspondientes a los k autovalores más grandes como direcciones de los componentes principales. La varianza en esas direcciones es máxima → se conserva la mayor cantidad de información.

Control de varianza en la inicialización de pesos

Inicialización Kaiming: \( Var(W) = 2/n_{in} \) (redes ReLU) o Xavier: \( Var(W) = 2/(n_{in}+n_{out}) \) (redes tanh). Controlar con precisión la varianza de la salida de cada capa permite que la varianza de las activaciones permanezca constante en la propagación hacia adelante y que la varianza de los gradientes permanezca constante en la propagación hacia atrás. Una inicialización inadecuada puede provocar desaparición o explosión de gradientes desde el inicio del entrenamiento.

Estimación del momento de segundo orden en el optimizador Adam

Adam mantiene una media móvil exponencial del cuadrado de los gradientes \( v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 \). Esto es esencialmente una estimación en línea de la "varianza de los gradientes en cada dirección de parámetro". Las direcciones con varianza alta (oscilación fuerte) reciben una tasa de aprendizaje más pequeña; las direcciones con varianza baja (descenso estable) reciben una tasa de aprendizaje más grande.


Otras extensiones