Visualisierung des zentralen Grenzwertsatzes

Wiederholt aus einer Gleichverteilung, die völlig nicht normal ist, Stichproben ziehen, jedes Mal den Mittelwert berechnen und beobachten, wie sich die Verteilung der Mittelwerte einer Glockenform nähert.

Nach Abschluss dieses Fallbeispiels werden Sie verstehen:Warum die Gauß-Verteilung in der KI allgegenwärtig ist — sie ist das unvermeidliche Ergebnis der Überlagerung vieler unabhängiger Faktoren.


Einführung in den Alltag

Warum ist die durchschnittliche Körpergröße der Klasse immer glockenförmig?

Messen Sie die Körpergröße von 50 Personen in der Klasse. Die Körpergröße eines Individuums wird von Hunderten von Faktoren beeinflusst: Genetik, Ernährung, Bewegung, Schlaf... Jeder Faktor hat einen großen oder kleinen Einfluss, positiv oder negativ.

Wenn viele unabhängige kleine Faktoren zusammenkommen, ist die endgültige Verteilung glockenförmig — das ist ein mathematischer Satz, kein Zufall.Der zentrale Grenzwertsatz besagt: Die Summe (oder der Mittelwert) einer großen Anzahl unabhängiger Zufallsvariablen strebt gegen eine Normalverteilung.


Intuitive Vorstellung

Wir ziehen Stichproben aus einer Gleichverteilung U(0,1) — diese Verteilung ist völlig flach und hat nichts mit einer Glockenform zu tun. Wenn wir jedoch jedes Mal mehrere Stichproben (z. B. 30) ziehen, um einen Mittelwert zu berechnen, und diesen Vorgang 5.000 Mal wiederholen — beginnt das Histogramm dieser 5.000 Mittelwerte glockenförmig auszusehen. Je größer n ist, desto näher kommt es einer perfekten Normalverteilung.


Mathematische Definition

\[ \frac{\bar{X}_n - \mu}{\sigma / \sqrt{n}} \xrightarrow{d} \mathcal{N}(0, 1) \]

Wobei \(\bar{X}_n = \frac{1}{n}\sum X_i\). Die Standardabweichung des Mittelwerts schrumpft mit einer Rate von \(1/\sqrt{n}\).


Praktische Python-Übung

Beispiel

import numpy as np
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("BEISPIEL Überprüfung des zentralen Grenzwertsatzes:\n")
print("Originalverteilung: Uniform U(0,1) (völlig flach)")
print("Theorie: Standardabweichung des Mittelwerts = 1/sqrt(12n)\n")
print(f"{'n':<6} {'Mittelwert SD':<12} {'Theorie':<12} {'Passt'}")
print("-" * 42)
for n, means in results.items():
    theo = 1 / np.sqrt(12 * n)
    ok = "Ja" if abs(means.std() - theo) < 0.01 else "Nein"
    print(f"{n:<6} {means.std():<12.4f} {theo:<12.4f} {ok}")

# Normalitätstest für 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"\nBEISPIEL n=30: Schiefe={skew:.3f} (sollte ~0 sein), Exzess-Kurtosis={kurt:.3f} (sollte ~0 sein)")
EXAMPLE 中心极限定理验证:

原始分布: 均匀分布 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

EXAMPLE n=30 时:偏度=-0.023 (应~0), 超峰度=-0.005 (应~0)

Anwendungsszenarien in der KI

SzenarioVerbindung zum zentralen Grenzwertsatz
Batch-NormalisierungAngenommen, die Aktivierungswerte innerhalb jedes Mini-Batches sind annähernd normalverteilt, dann subtrahiere den Mittelwert und dividiere durch die Standardabweichung.
GewichtsinitialisierungXavier-/He-Initialisierung zieht Anfangsgewichte aus einer Normalverteilung
FehlermodellierungIn Regressionsproblemen wird angenommen, dass Fehler einer Normalverteilung folgen – Fehler sind das Ergebnis der Überlagerung mehrerer nicht modellierter Faktoren.
Weitere Erweiterungen