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
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