Espérance, variance et covariance -- Caractéristiques numériques des données

Espérance = Où se situe le centre. Variance = À quel point les données sont dispersées. Covariance = Comment deux variables évoluent ensemble.


Analyse du concept

Espérance E[X]

Moyenne pondérée = "résultat moyen à long terme"

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

Variance Var(X)

Degré de dispersion des données

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

Covariance Cov(X,Y)

Relation de co-mouvement entre deux variables

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

Matrice de covariance

La matrice de covariance d'un vecteur aléatoire de dimension d est une matrice symétrique d×d : \( \Sigma_{ij} = \text{Cov}(X_i, X_j) \).

  • Éléments diagonaux = variances des caractéristiques individuelles
  • Éléments hors diagonale = covariances entre les caractéristiques

Exemples concrets

Scores moyens de deux classes

La classe A et la classe B ont toutes deux une note moyenne en mathématiques de 75. Mais dans la classe A, tout le monde obtient entre 70 et 80, tandis que dans la classe B, certains obtiennent 30 et d'autres 100.

Les espérances sont les mêmes, mais les variances sont complètement différentes — la variance révèle des différences de « stabilité ».


Exercice pratique Python

Exemple

import numpy as np

data = np.random.normal(5, 2, 10000)
print(f"Mean={np.mean(data):.3f}, Variance={np.var(data):.3f}, Std={np.std(data):.3f}")

# Covariance
x = np.random.randn(1000)
y1 = 0.8*x + np.random.randn(1000)*0.3  # Corrélation positive
y2 = -0.8*x + np.random.randn(1000)*0.3 # Corrélation négative
print(f"Cov(X, Y+): {np.cov(x,y1)[0,1]:.3f} (positive)")
print(f"Cov(X, Y-): {np.cov(x,y2)[0,1]:.3f} (négative)")

# Matrice de covariance
data_3d = np.random.randn(100, 3)
print("\nMatrice de covariance :\n", np.round(np.cov(data_3d.T), 3))
print("Symétrique :", np.allclose(np.cov(data_3d.T), np.cov(data_3d.T).T))

Sortie :

均值=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

Scénarios d'application en IA

Les mathématiques de la normalisation par lots

Pour chaque mini-lot, calculez la moyenne μ_B et la variance σ²_B, puis normalisez \( \hat{x} = (x - \mu_B) / \sqrt{\sigma^2_B + \epsilon} \). Cela utilise deux statistiques : l'espérance (moyenne) et la variance. \( \epsilon \) est une petite constante pour éviter la division par zéro (généralement 1e-5).

Réduction de dimensionnalité ACP = Décomposition en valeurs propres de la matrice de covariance

La première étape de l'ACP : calculer la matrice de covariance \( \Sigma \) (une matrice symétrique d×d) des données. Deuxième étape : effectuer une décomposition en valeurs propres sur \( \Sigma \), et prendre les vecteurs propres correspondant aux k plus grandes valeurs propres comme directions des composantes principales. La variance le long de ces directions est maximisée → ce qui permet de conserver le plus d'informations.

Contrôle de la variance lors de l’initialisation des poids

Initialisation de Kaiming : \( Var(W) = 2/n_{in} \) (pour les réseaux ReLU) ou Xavier : \( Var(W) = 2/(n_{in}+n_{out}) \) (pour les réseaux tanh). Contrôler précisément la variance de la sortie de chaque couche afin que la variance des activations reste inchangée lors de la propagation avant et que la variance des gradients reste inchangée lors de la rétropropagation. Une initialisation inappropriée peut provoquer une disparition/explosion des gradients même au début de l’entraînement.

Estimation du moment du second ordre dans l’optimiseur Adam

Adam maintient une moyenne mobile exponentielle des gradients au carré \( v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 \). Il s’agit essentiellement d’une estimation en ligne de la « variance du gradient dans chaque direction de paramètre ». Les directions à forte variance (oscillation violente) reçoivent un taux d’apprentissage plus faible, tandis que les directions à faible variance (descente stable) reçoivent un taux d’apprentissage plus élevé.


Autres extensions