Münzwurf-Simulation der Bayes'schen Aktualisierung
Simulieren Sie den Prozess des wiederholten Werfens einer Münze und verwenden Sie die Bayes-Formel, um in Echtzeit die Überzeugungsverteilung darüber zu aktualisieren, ob die Münze verzerrt ist.
After completing this case study, you will understand:Der Kern der Bayes'schen Methode — jedes Mal, wenn neue Daten beobachtet werden, aktualisieren Sie Ihre Überzeugung einmal mithilfe der Likelihood-Funktion.
Einführung aus dem Alltag
Ist der neue Kollege vertrauenswürdig?
Am ersten Tag kennen Sie den neuen Kollegen nicht (Prior: Er könnte zuverlässig oder unzuverlässig sein, jeweils 50%). In der ersten Woche erledigt er jedes Mal Aufgaben pünktlich (neue Evidenz), und Sie beginnen zu denken: „Er ist wahrscheinlich zuverlässig“. In der zweiten Woche erledigt er sie wieder pünktlich (mehr Evidenz), und Ihr Urteil wird sicherer.
Ihr Urteil ist die Posterior-Wahrscheinlichkeit — das Ergebnis davon, das anfängliche Urteil mit neuen Evidenzen kontinuierlich zu revidieren. Das ist die Intuition der Bayes'schen Aktualisierung.
Intuitive Vorstellung
Wir haben eine Münze, kennen aber ihre Wahrscheinlichkeit für Kopf nicht. Prior: Vor dem Werfen halten wir jede Kopfwahrscheinlichkeit (0 bis 1) für möglich. Likelihood: Jedes Mal, wenn wir ein Ergebnis sehen, aktualisieren wir mit „der Wahrscheinlichkeit, dieses Ergebnis zu sehen, wenn die Kopfwahrscheinlichkeit theta ist“. Posterior: die aktualisierte Überzeugungsverteilung — je mehr Daten, desto stärker konzentriert sich die Verteilung um den wahren Wert.
Mathematische Definition
\[ P(\theta \mid \text{data}) = \frac{P(\text{data} \mid \theta) \cdot P(\theta)}{P(\text{data})} \] \[ \text{posterior}_t \propto \text{likelihood}(\text{the } t\text{-th result} \mid \theta) \times \text{posterior}_{t-1} \]Praktische Python-Übung
Beispiel
np.random.seed(1)
true_p = 0.75 # Wahrscheinlichkeit für Kopf der echten Münze (wir tun so, als wüssten wir es nicht)
theta_grid = np.linspace(0, 1, 200)
# Prior: alle theta gleich behandeln
prior = np.ones_like(theta_grid)
prior /= prior.sum()
# Simuliere 40 Münzwürfe
flips = np.random.binomial(1, true_p, size=40)
posterior = prior.copy()
print("BEISPIEL Bayes'scher Aktualisierungsprozess (wahres theta=0.75):\n")
for i, outcome in enumerate(flips, start=1):
likelihood = theta_grid if outcome == 1 else (1 - theta_grid)
posterior = posterior * likelihood
posterior /= posterior.sum()
if i % 10 == 0:
est = theta_grid[np.argmax(posterior)]
print(f" Nach {i:2d} Würfen, wahrscheinlichstes theta={est:.3f}")
# Unsicherheitsvergleich
prior_std = np.sqrt(np.sum(theta_grid**2 * prior) - np.sum(theta_grid * prior)**2)
post_std = np.sqrt(np.sum(theta_grid**2 * posterior) - np.sum(theta_grid * posterior)**2)
print(f"\nBEISPIEL Prior-Standardabweichung: {prior_std:.4f} -> Posterior-Standardabweichung: {post_std:.4f} (um Faktor {prior_std/post_std:.1f} reduziert))
EXAMPLE 贝叶斯更新过程 (真实 theta=0.75): 抛 10 次后,最可能的 theta=0.754 抛 20 次后,最可能的 theta=0.769 抛 30 次后,最可能的 theta=0.759 抛 40 次后,最可能的 theta=0.774 EXAMPLE 先验标准差: 0.2890 -> 后验标准差: 0.0642 (缩小了 4.5 倍)
Anwendungsszenarien in der KI
| Szene | Die Rolle Bayesscher Methoden |
|---|---|
| Naive-Bayes-Klassifikation | Bayes-Theorem + Annahme der Merkmalsunabhängigkeit → klassischer Klassifikator |
| Bayessche Optimierung | Prior + beobachtete Daten nutzen → posteriorer Gauß-Prozess → Hyperparametersuche steuern. |
| Variationsinferenz | Approximation komplexer Posterior-Verteilungen durch einfache Verteilungen: Die mathematischen Grundlagen von VAE |