Erwartungswert, Varianz und Kovarianz -- Numerische Eigenschaften von Daten

Erwartungswert = Wo das Zentrum liegt. Varianz = Wie weit gestreut es ist. Kovarianz = Wie sich zwei Variablen gemeinsam bewegen.


Konzeptanalyse

Erwartungswert E[X]

Gewichteter Durchschnitt = "langfristiges durchschnittliches Ergebnis"

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

Varianz Var(X)

Grad der Datenstreuung

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

Kovarianz Cov(X,Y)

Zusammenhang der gemeinsamen Bewegung zwischen zwei Variablen

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

Kovarianzmatrix

Die Kovarianzmatrix eines d-dimensionalen Zufallsvektors ist eine d×d-symmetrische Matrix: \( \Sigma_{ij} = \text{Cov}(X_i, X_j) \).

  • Diagonalelemente = Varianzen einzelner Merkmale
  • Nichtdiagonalelemente = Kovarianzen zwischen Merkmalen

Beispiele aus der Praxis

Durchschnittliche Punktzahlen zweier Klassen

Sowohl Klasse A als auch Klasse B haben eine durchschnittliche Mathe-Punktzahl von 75. Aber in Klasse A erzielt jeder eine Punktzahl zwischen 70 und 80, während in Klasse B einige 30 und einige 100 erreichen.

Die Erwartungswerte sind gleich, aber die Varianzen sind völlig unterschiedlich – die Varianz offenbart Unterschiede in der "Stabilität".


Praktische Python-Übung

Beispiel

import numpy as np

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

# Kovarianz
x = np.random.randn(1000)
y1 = 0.8*x + np.random.randn(1000)*0.3  # Positive Korrelation
y2 = -0.8*x + np.random.randn(1000)*0.3 # Negative Korrelation
print(f"Cov(X, Y+): {np.cov(x,y1)[0,1]:.3f} (positiv)")
print(f"Cov(X, Y-): {np.cov(x,y2)[0,1]:.3f} (negativ)")

# Kovarianzmatrix
data_3d = np.random.randn(100, 3)
print("\nKovarianzmatrix:\n", np.round(np.cov(data_3d.T), 3))
print("Symmetrisch:", np.allclose(np.cov(data_3d.T), np.cov(data_3d.T).T))

Ausgabe:

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

Anwendungsszenarien in der KI

Die Mathematik der Batch-Normalisierung

Für jeden Mini-Batch berechne den Mittelwert μ_B und die Varianz σ²_B, dann normalisiere \( \hat{x} = (x - \mu_B) / \sqrt{\sigma^2_B + \epsilon} \). Dies verwendet zwei Statistiken: Erwartungswert (Mittelwert) und Varianz. \( \epsilon \) ist eine kleine Konstante, um Division durch null zu verhindern (üblicherweise 1e-5).

PCA-Dimensionsreduktion = Eigenzerlegung der Kovarianzmatrix

Der erste Schritt von PCA: Berechne die Kovarianzmatrix \( \Sigma \) (eine symmetrische d×d-Matrix) der Daten. Zweiter Schritt: Führe eine Eigenzerlegung auf \( \Sigma \) durch und nimm die Eigenvektoren, die den k größten Eigenwerten entsprechen, als Richtungen der Hauptkomponenten. Die Varianz entlang dieser Richtungen wird maximiert → wodurch die meisten Informationen erhalten bleiben.

Varianzkontrolle bei der Gewichtsinitialisierung

Kaiming-Initialisierung: \( Var(W) = 2/n_{in} \) (für ReLU-Netze) oder Xavier: \( Var(W) = 2/(n_{in}+n_{out}) \) (für tanh-Netze). Steuere die Varianz der Ausgabe jeder Schicht präzise, sodass die Varianz der Aktivierungen während der Vorwärtspropagation unverändert bleibt und die Varianz der Gradienten während der Rückwärtspropagation unverändert bleibt. Eine unsachgemäße Initialisierung kann selbst in der frühen Trainingsphase verschwindende/explodierende Gradienten verursachen.

Schätzung des zweiten Moments im Adam-Optimierer

Adam führt einen exponentiell gleitenden Durchschnitt der quadrierten Gradienten \( v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 \). Dies ist im Wesentlichen eine Online-Schätzung der "Varianz des Gradienten in jeder Parameterrichtung". Richtungen mit großer Varianz (heftige Oszillation) erhalten eine kleinere Lernrate, während Richtungen mit kleiner Varianz (stabiler Abstieg) eine größere Lernrate erhalten.


Weitere Erweiterungen